en waar precies staat dan dit deel
want dat kan ik echt niet terugvinden...www kán een subdomein zijn maar is meestal gewoon een hostnaam. Als het wel een subdomein is dan moet er ook een wildcard record in DNS zijn
Dit topic is onderdeel van een reeks. Ga naar het meest recente topic in deze reeks.
en waar precies staat dan dit deel
want dat kan ik echt niet terugvinden...www kán een subdomein zijn maar is meestal gewoon een hostnaam. Als het wel een subdomein is dan moet er ook een wildcard record in DNS zijn
Niet met zoveel woorden maar dat spreekt vanzelf. Je hebt een A-record nodig (eventueel in combinatie met een CNAME) of een wildcard om een naam te kunnen resolven. Je wilt geen A-record gebruiken want domain.tld is mooier? Dan wordt het dus een wildcard.roeleboel schreef op vrijdag 7 september 2018 @ 15:47:
[...]
want dat kan ik echt niet terugvinden...
[ Voor 16% gewijzigd door downtime op 07-09-2018 16:06 ]
Heb je ook nog een specifiek artikel ?
Ik denk dat je teveel focust op www. Het gebruik van www is een conventie en geen RFC AFAIK. Zoek dan liever op DNS wildcard.gekkie schreef op vrijdag 7 september 2018 @ 16:53:
[...]
Heb je ook nog een specifiek artikel ?
Een search op "www" levert exact nul hits op.
Ik mis nog steeds waar ik in de stukjes over wildcards kan afleiden dat dit een vereiste ergens is:downtime schreef op vrijdag 7 september 2018 @ 17:13:
[...]
Ik denk dat je teveel focust op www. Het gebruik van www is een conventie en geen RFC AFAIK. Zoek dan liever op DNS wildcard.
www kán een subdomein zijn maar is meestal gewoon een hostnaam. Als het wel een subdomein is dan moet er ook een wildcard record in DNS zijn.
Het is alleen een vereiste als je wilt dat het iets nuttigs doet. Dus strikt genomen is het geen vereiste.gekkie schreef op vrijdag 7 september 2018 @ 17:36:
[...]
Ik mis nog steeds waar ik in de stukjes over wildcards kan afleiden dat dit een vereiste ergens is:
[ Voor 5% gewijzigd door Alex) op 07-09-2018 20:08 ]
We are shaping the future
Ik heb genoeg mensen gezien die zo afhankelijk zijn van de IDE, dat ze niet meer zelf nadenken over wat er eigenlijk gebeurd of moet gebeuren. Het moment dat de IDE niet meer weet wat te doen, zijn ze hulpeloos en vallen terug op "geen idee" in plaats van zelf het probleem uitwerken.diabolofan schreef op vrijdag 7 september 2018 @ 09:20:
[...]
Identatie leren? Daar heb je toch een IDE voor?
I'm not a complete idiot. Some parts are missing.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!
Ik zou een losse functie kunnen maken die een environment variabele ophaalt en een ConfigurationError geeft als hij leeg is. Sowieso zou ik ook niet alleen op None maar ook op "leeg" moeten controleren.Koenvh schreef op donderdag 6 september 2018 @ 20:07:
@Lethalis Wil je ook PEP 8 feedback? Dan horen er namelijk twee witregels tussen de imports en de rest van de code te zetten, en ook twee witregels tussen de functies. Er hoort ook nog een witregel te zitten na main() (dus nog een lege regel 109)![]()
Zelf zou ik die main() op het einde binnen een if __name__ == "__main__" zetten. Of misschien de hele main() functie weghalen.
Maar da's natuurlijk allemaal muggenzifterij
Meer inhoudelijk: Ik vraag me af of een aantal ConfigurationErrors te combineren zijn (MAILTO, MAILFROM en JOBNAME), maar daar weet ik zo 1-2-3 ook geen elegantere oplossing voor. Daarnaast zou ik de output van de subprocess naar een tijdelijk bestand schrijven (Python heeft hier tempfile voor) om geheugenproblemen te voorkomen.
[ Voor 3% gewijzigd door Lethalis op 08-09-2018 10:23 ]
Ask yourself if you are happy and then you cease to be.
Dat is wel een wat vreemd argument. Natuurlijk helpt het om te snappen hoe iets werkt en waarom je iets doet, maar als je dat weet heeft het echt nul meerwaarde om handmatig methodes, variabelen of interfaces te gaan extraheren en dergelijke.Firesphere schreef op vrijdag 7 september 2018 @ 23:55:
[...]
Ik heb genoeg mensen gezien die zo afhankelijk zijn van de IDE, dat ze niet meer zelf nadenken over wat er eigenlijk gebeurd of moet gebeuren. Het moment dat de IDE niet meer weet wat te doen, zijn ze hulpeloos en vallen terug op "geen idee" in plaats van zelf het probleem uitwerken.
"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim" - Edsger Dijkstra
I'm not a complete idiot. Some parts are missing.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!
Nee hoor, jij haalt het aan in de context van indentation. Dat is een cosmetisch iets, behalve bij talen als Python, maar dan gaat de IDE ook niet magisch de indentation voor je 'goedzetten'.Firesphere schreef op zondag 9 september 2018 @ 13:38:
Je onderstreept bijna letterlijk mijn argument, terwijl je het probeert te ontkrachten. Thanks
"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim" - Edsger Dijkstra
Upside-down-face-confused-smileyMugwump schreef op zondag 9 september 2018 @ 13:48:
[...]
Nee hoor, jij haalt het aan in de context van indentation. Dat is een cosmetisch iets, behalve bij talen als Python, maar dan gaat de IDE ook niet magisch de indentation voor je 'goedzetten'.
[ Voor 8% gewijzigd door Firesphere op 09-09-2018 13:55 ]
I'm not a complete idiot. Some parts are missing.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!
Je hele verhaal draait om de claim dat je "indentation moet leren" en waarom dat volgens anderen waaronder ik een vrij onzinnige claim is.Firesphere schreef op zondag 9 september 2018 @ 13:55:
[...]
Upside-down-face-confused-smiley
Ehhhh, wut? Een genoemd voorbeeld maakt mijn hele argument een feit gebaseerd op dat voorbeeld? Sure thing honey. Goodnight.
*edit*
Mijn rijmkunst met betrekking tot de Nederlandse taal is vrij tanend.
"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim" - Edsger Dijkstra
Nee, heb ik nooit gezegd. Het is een voorbeeld wat ik nam om een punt te maken dat volledig over je hoofd vliegt.Mugwump schreef op zondag 9 september 2018 @ 13:59:
[...]
Je hele verhaal draait om de claim dat je "indentation moet leren" en waarom dat volgens anderen waaronder ik een vrij onzinnige claim is.
I'm not a complete idiot. Some parts are missing.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!
ho ho, jullie zitten zelf te discussiëren.Mugwump schreef op zondag 9 september 2018 @ 13:59:
[...]
Je hele verhaal draait om de claim dat je "indentation moet leren" en waarom dat volgens anderen waaronder ik een vrij onzinnige claim is.
[ Voor 23% gewijzigd door .oisyn op 09-09-2018 15:32 ]
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Ja ik zal de loze discussie verder laten voor wat hij is..oisyn schreef op zondag 9 september 2018 @ 14:07:
Ik vond het proloog argument interessanter dan het indentationverhaal. Jammer dat ervoor is gekozen om daar dan op verder te gaan.
Kunnen we de conclusie maken dat verschillende talen niet hetzelfde zijn?
"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim" - Edsger Dijkstra
Ook voor de imperatieve talen wil men tegenwoordig meer op een hoger nivo doen. Dus streams ipv loopjes (in java).Mugwump schreef op zondag 9 september 2018 @ 14:40:
[...]
Mensen die in de praktijk software ontwikkelden deden dat lange tijd hoofdzakelijk in imperatieve talen, waarin je feitelijk de computer vertelt wat hij moet doen. Tegenwoordig zitten ook in de "grote imperatieve talen" vaak wel de nodige concepten uit functioneel programmeren.
let the past be the past.
Ik zou een functionele syntax niet direct "op een hoger niveau" willen noemen. Het is vooral een andere aanpak. Een goede functionele aanpak maakt de boel voorspelbaarder doordat er geen mutable state is, hoewel dat in Java gewoon mogelijk blijft.SPee schreef op zondag 9 september 2018 @ 17:42:
[...]
Ook voor de imperatieve talen wil men tegenwoordig meer op een hoger nivo doen. Dus streams ipv loopjes (in java).
Maakt het beter leesbaar, maar redundancy ligt op de loer. B.v. lijsten die in verschillende methodes op dezelfde manier gefilterd worden. Dus of dat positief is, hangt sterk van de programmeur af; Weet die wel goed wat er onder water gebeurd en wat voor impact dat heeft?
Wat heeft low code er precies mee te maken? In mijn ogen zijn dat meer platforms waarmee je applicaties meer genereert dan programmeert op basis van modellen of grafische interfaces. Of bedoel je dat dit pogingen zijn om een taal minder verbose te maken?Aan de ene kant zie je dat die manier aansluit op 'low code', maar er toch een weerstand blijft om het echt 'low code' te maken.
"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim" - Edsger Dijkstra
Uhm... Dat zijn twee compleet verschillende concepten dus dat "kán" inderdaad gezien ze verder niks met elkaar te maken hebben.downtime schreef op vrijdag 7 september 2018 @ 12:57:
[...]
www kán een subdomein zijn maar is meestal gewoon een hostnaam. Als het wel een subdomein is dan moet er ook een wildcard record in DNS zijn. Als dat wildcard record naar hetzelfde IP verwijst als het www-record dan zal www.domein.tld naar dezelfde site wijzen als domein.tld.
"Doubt—the concern that my views may not be entirely correct—is the true friend of wisdom and (along with empathy, to which it’s related) the greatest enemy of polarization." -- Václav Havel
Absoluut. Ik nam indentatie als voorbeeld, niet als feit.oisyn schreef op zondag 9 september 2018 @ 14:07:
Ik vond het prolog argument interessanter dan het indentationverhaal. Jammer dat ervoor is gekozen om daar dan op verder te gaan.
Kunnen we de conclusie maken dat verschillende talen niet hetzelfde zijn?
I'm not a complete idiot. Some parts are missing.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!
Even voor iemand die LINQ zelf niet echt kent, maar FP wel: mogen LINQ-expressies gewoon samengevat worden als functionele expressies, toegepast op collections?Mugwump schreef op zondag 9 september 2018 @ 18:47:
Streams zitten ook vooral in Java omdat men goed gekeken de opkomst van Scala zag in mijn ogen.
C# heeft al meer dan tien jaar LINQ.
Mutable state 'verstoppen' is een vorm van abstractie, en conceptueel is abstractie wat een aanpak high-level maakt. Net zoals dat een while-loop een abstractie is van (conditionele) GOTO-statements. En net zoals dat je in een OO-aanpak methodes gebruikt als abstractie voor een pointer naar de data die je object voorstelt als argument doorgeven aan functies, en inheritance als abstractie voor het dynamisch opzoeken van de juiste functie.Mugwump schreef op zondag 9 september 2018 @ 18:47:
Ik zou een functionele syntax niet direct "op een hoger niveau" willen noemen. Het is vooral een andere aanpak. Een goede functionele aanpak maakt de boel voorspelbaarder doordat er geen mutable state is, hoewel dat in Java gewoon mogelijk blijft.
[ Voor 8% gewijzigd door bwerg op 10-09-2018 11:34 ]
Heeft geen speciale krachten en is daar erg boos over.
Ja. En IEnumerable<T> (waar heel LINQ om draait, samen met IQueryable<T>) is een monad, SelectMany is de bind. Veel functioneler wordt het niet.bwerg schreef op maandag 10 september 2018 @ 10:59:
[...]
Even voor iemand die LINQ zelf niet echt kent, maar FP wel: mogen LINQ-expressies gewoon samengevat worden als functionele expressies, toegepast op collections?
Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.
Het hoeven geen collecties te zijn. De LINQ syntax wordt door de compiler blindweg herschreven naar methode-aanroepen (Select, SelectMany, Where, etc.) en daarna pas gecontroleerd of wat er staat zinnige code is. Het maakt de compiler niet uit of het een collectie is of dat het om iets als een vectorruimte gaat.bwerg schreef op maandag 10 september 2018 @ 10:59:
[...]
Even voor iemand die LINQ zelf niet echt kent, maar FP wel: mogen LINQ-expressies gewoon samengevat worden als functionele expressies, toegepast op collections?
Ipsa Scientia Potestas Est
NNID: ShinNoNoir
Misschien dat het aan mij ligt, maar ik heb nog nooit een LINQ-expressie gezien die niet op een IEnumerable (of derivaat) van toepassing is.RayNbow schreef op maandag 10 september 2018 @ 13:24:
[...]
Het hoeven geen collecties te zijn. De LINQ syntax wordt door de compiler blindweg herschreven naar methode-aanroepen (Select, SelectMany, Where, etc.) en daarna pas gecontroleerd of wat er staat zinnige code is. Het maakt de compiler niet uit of het een collectie is of dat het om iets als een vectorruimte gaat.
Edwin__ schreef op maandag 10 september 2018 @ 21:13:
[...]
Misschien dat het aan mij ligt, maar ik heb nog nooit een LINQ-expressie gezien die niet op een IEnumerable (of derivaat) van toepassing is.
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
| class Program { static void Main(string[] args) { var good = from x in 50.Divide(2) from y in x.Divide(3) select y; var bad = from x in 50.Divide(2) from y in x.Divide(0) from z in y.Divide(2) select z; Console.WriteLine($"Good = {good}"); Console.WriteLine($"Bad = {bad}"); } } struct Maybe<T> { public static Maybe<T> Nothing = new Maybe<T>(); public T Value { get; } public bool HasValue { get; } public Maybe(T value) { Value = value; HasValue = true; } public override string ToString() { return HasValue ? Value.ToString() : "<nothing>"; } } static class MaybeExtensions { public static Maybe<T> ToMaybe<T>(this T value) => new Maybe<T>(value); private static Maybe<U> Bind<T, U>(this Maybe<T> value, Func<T, Maybe<U>> func) { return value.HasValue ? func(value.Value) : Maybe<U>.Nothing; } public static Maybe<V> SelectMany<T, U, V>(this Maybe<T> value, Func<T, Maybe<U>> collectionSelector, Func<T, U, V> resultSelector) { return value.Bind(x => collectionSelector(x).Bind(y => resultSelector(x, y).ToMaybe())); } public static Maybe<int> Divide(this int value, int divisor) { return divisor == 0 ? Maybe<int>.Nothing : (value / divisor).ToMaybe(); } } |
[ Voor 14% gewijzigd door kenneth op 10-09-2018 22:22 ]
Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.
https://fgheysels.github.io/
Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.
...maar die Maybe<T> zou je evt. een IEnumerable<T> van kunnen maken.kenneth schreef op maandag 10 september 2018 @ 22:20:
[...]
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 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 class Program { static void Main(string[] args) { var good = from x in 50.Divide(2) from y in x.Divide(3) select y; var bad = from x in 50.Divide(2) from y in x.Divide(0) from z in y.Divide(2) select z; Console.WriteLine($"Good = {good}"); Console.WriteLine($"Bad = {bad}"); } } struct Maybe<T> { public static Maybe<T> Nothing = new Maybe<T>(); public T Value { get; } public bool HasValue { get; } public Maybe(T value) { Value = value; HasValue = true; } public override string ToString() { return HasValue ? Value.ToString() : "<nothing>"; } } static class MaybeExtensions { public static Maybe<T> ToMaybe<T>(this T value) => new Maybe<T>(value); private static Maybe<U> Bind<T, U>(this Maybe<T> value, Func<T, Maybe<U>> func) { return value.HasValue ? func(value.Value) : Maybe<U>.Nothing; } public static Maybe<V> SelectMany<T, U, V>(this Maybe<T> value, Func<T, Maybe<U>> collectionSelector, Func<T, U, V> resultSelector) { return value.Bind(x => collectionSelector(x).Bind(y => resultSelector(x, y).ToMaybe())); } public static Maybe<int> Divide(this int value, int divisor) { return divisor == 0 ? Maybe<int>.Nothing : (value / divisor).ToMaybe(); } }
Ipsa Scientia Potestas Est
NNID: ShinNoNoir
Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.
Buck Hodges heeft een blog geschreven over het hoe, wat en waarom rondom de VSTS/Azure DevOps downtime van afgelopen week: MSDN: Postmortem: VSTS 4 September 2018 – Service Blog – Visual S...InZane schreef op dinsdag 4 september 2018 @ 14:41:
[...]
Het werkt hier in z'n geheel niet. Ik krijg alleen maar de pagina met het robotje met daaronder: 'Sorry! Our services aren't available right now'.
Mijn privé account heeft verder ook geen problemen.
Ik wil m'n eigen post nog een keer onder de aandacht brengen; direct na het plaatsen van deze post volgde de www-post van @DevWouter en de daaropvolgende discussie en ik heb het idee dat niemand daarom mijn post heeft gezienHarrie_ schreef op vrijdag 7 september 2018 @ 12:12:
Even een ordinaire crosspost naar het grote enquete-topic.
Wij hebben hier een stagiair die een onderzoek doet specifiek gericht op devven dus dit lijkt me de uitgelezen plek om buiten het enquete-topic de juiste doelgroep aan te spreken![]()
Hoeder van het Noord-Meierijse dialect
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Ducky 9008S2 met bruine switches. Op die manier weet het halve pand wanneer ik aan het typen ben
"Doubt—the concern that my views may not be entirely correct—is the true friend of wisdom and (along with empathy, to which it’s related) the greatest enemy of polarization." -- Václav Havel
[ Voor 200% gewijzigd door Olaf van der Spek op 11-09-2018 13:03 ]
Je verstopt mutable state niet, het is er gewoon niet. Dat is een keuze die bepaalde voordelen heeft, maar ook andere zaken veel lastiger maakt.bwerg schreef op maandag 10 september 2018 @ 10:59:
[...]
Even voor iemand die LINQ zelf niet echt kent, maar FP wel: mogen LINQ-expressies gewoon samengevat worden als functionele expressies, toegepast op collections?
[...]
Mutable state 'verstoppen' is een vorm van abstractie, en conceptueel is abstractie wat een aanpak high-level maakt. Net zoals dat een while-loop een abstractie is van (conditionele) GOTO-statements. En net zoals dat je in een OO-aanpak methodes gebruikt als abstractie voor een pointer naar de data die je object voorstelt als argument doorgeven aan functies, en inheritance als abstractie voor het dynamisch opzoeken van de juiste functie.
OO valt gewoon onder het imperatieve paradigma, dus het is nogal vreemd om te stellen dat er een ordening imperatief > FP > OO zou bestaan.Dus ik zou FP wel een hoger niveau noemen dan imperatief programmeren. Of FP nou een hoger niveau is dan OO is discutabel, het zijn verschillende abstracties.
Dat wil je vaak wel degelijk. "No side-effects" is gewoon een nadeel als je bijvoorbeeld te maken krijgt met I/O of persistence. Er zijn wel manieren om in puur functionele talen om te gaan met IO, maar dat wordt toch al vrij snel vrij complex. Wat dat betreft zijn imperatieve talen ook juist een vrij goede fit met de manier waarop mensen redeneren, terwijl (puur) functionele talen toch vaak wel lastig gevonden worden. Heel vaak wil je als applicatie(ontwikkelaar) ook wel degelijk state muteren op een harde schijf of in een database.Al heb ik als ik OO zit te doen meer behoefte aan FP-constructies dan aan OO-constructies als ik FP zit te doen, maar dat kan ook aan de persoonlijke voorkeuren van deze theoreet liggen.[small]Al ben ik schijnbaar niet de enige, gezien LINQ en lambda's in C#/Java.
Je wil niet handmatig GOTO-statements en dynamic dispatch aanroepen. En dus ook niet handmatig state beheren. Althans, dat is het idee als je deze vormen van abstracties gebruikt, en daarmee het idee van high-level programmeren.
"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim" - Edsger Dijkstra
De cheapste Microsoft keyboards die ik kan vinden
Ik heb dus letterlijk een collega gehad die programmeerde met het onscreen toetsenbord via zijn touch screen.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!
RSI in 3,2,1PrisonerOfPain schreef op dinsdag 11 september 2018 @ 13:18:
[...]
De cheapste Microsoft keyboards die ik kan vinden
Ik gebruik voor serieuze softwareprojecten voornamelijk C# (op mijn werk en voor Windows), maar voor het snel even schrijven van tooltjes of scripts is Python gewoon koning. Vaak heb ik het in Python al af, terwijl ik met C# nog bezig ben de classes te ontwerpenDouweegbertje schreef op vrijdag 7 september 2018 @ 09:50:
[...]
Dit is ook exact mijn mening.
Zodra mn python script > 50 lines heeft ga ik namelijk huilen van ellende.
Hoewel ik het zelf erg tof vind is er nog een ander negatief punt;
python2.7 vs 3 en dan nog die dependency hell. De 1 required v1.2 en de ander 1.4 en dan sloop je de rest en dan zet je pip erop en dan valt heel python uit elkaar.![]()
Zeker op een system waar je toch al snel diverse python-based dingen gebruikt kan je best tegen dit soort grappen aanlopen.
[ Voor 4% gewijzigd door Lethalis op 11-09-2018 14:06 ]
Ask yourself if you are happy and then you cease to be.
Uitendelijk compileert het naar een set instructies op variabelen/registers. Je programma representeert een stateful berekening, maar niet expiciet, dat bedoel ik met 'verstoppen'. En state is er wel, aangetoond door middel van back doors.Mugwump schreef op dinsdag 11 september 2018 @ 13:18:
Je verstopt mutable state niet, het is er gewoon niet. Dat is een keuze die bepaalde voordelen heeft, maar ook andere zaken veel lastiger maakt.
Daarom ook "als je deze vormen van abstracties gebruikt". Als je vooral IO doet wil je misschien helemaal geen FP, maar wil je lekker scripten in bash. Als je een smart-card met nul komma niks aan rekenkracht programmeert, of een cryptografische library, wil je misschien ook GOTO-statements en directe toegang tot registers in plaats van loops en functiecalls. Geen enkele abstractie is bruikbaar als je programma zich nou juist richt op zaken die worden weggeabstraheerd.Dat wil je vaak wel degelijk. "No side-effects" is gewoon een nadeel als je bijvoorbeeld te maken krijgt met I/O of persistence.
Mwah, de do-syntax in haskell lijkt héél erg sterk op de syntax van een imperatieve taal, met als grootste verschil dat er geen verschil meer is tussen statements en expressies. Als je een programmeur zonder haskell-voorkennis aan het werk zet gaat 'ie gewoon "imperatief" programmeren. Ik zie hierin echt geen verschil in complexiteit.Er zijn wel manieren om in puur functionele talen om te gaan met IO, maar dat wordt toch al vrij snel vrij complex.
Heeft geen speciale krachten en is daar erg boos over.
Zie daar de reden waarom we geen Github gebruiken op mijn werk, maar zelf een git server hosten.Koetjeboe schreef op dinsdag 11 september 2018 @ 14:14:
Eerst downtime bij Slack, en nu bij Github...mijn wereld stort vandaag in elkaar
Ask yourself if you are happy and then you cease to be.
Ik had niet verwacht dat de overname door Microsoft zo snel effect zou sorteren.Koetjeboe schreef op dinsdag 11 september 2018 @ 14:14:
Eerst downtime bij Slack, en nu bij Github...mijn wereld stort vandaag in elkaar
"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim" - Edsger Dijkstra
Mugwump schreef op dinsdag 11 september 2018 @ 14:17:
[...]
Ik had niet verwacht dat de overname door Microsoft zo snel effect zou sorteren.
Ask yourself if you are happy and then you cease to be.
We are shaping the future
Die wil ik ook aan gaan schaffen, met deze muis. Bij Nederlandse webshops zag ik 'm alleen nog zonder fingerprint reader. Hoe bevalt dit keyboard? (en hoe fijn is de fingerprint voor het ontgrendelen?)
Ik heb mijn toetsenbord door een vriend laten kopen toen hij toch in de VS wasorf schreef op dinsdag 11 september 2018 @ 15:26:
[...]
Die wil ik ook aan gaan schaffen, met deze muis. Bij Nederlandse webshops zag ik 'm alleen nog zonder fingerprint reader.
Ik ben er blij mee, het toetsenbord typt lekker en de functietoetsen zijn handig in gebruik.Hoe bevalt dit keyboard? (en hoe fijn is de fingerprint voor het ontgrendelen?)
We are shaping the future
Tjolk is lekker. overal en altijd.
Dan raad ik je LinqPad aan. Je wilt niet weten hoeveel scripts ik heb waar ik on the fly een dynamisch class creëer.Lethalis schreef op dinsdag 11 september 2018 @ 13:58:
[...]
Ik gebruik voor serieuze softwareprojecten voornamelijk C# (op mijn werk en voor Windows), maar voor het snel even schrijven van tooltjes of scripts is Python gewoon koning. Vaak heb ik het in Python al af, terwijl ik met C# nog bezig ben de classes te ontwerpen
1
2
3
4
5
6
7
8
9
10
| new[] { new { x =12, y = 34 }, new { x =56, y = 78 }, } .Select(src => new { x = src.x, y = src.y, z = src.x + src.y }) .Where(src => src.z > 50) |
"Doubt—the concern that my views may not be entirely correct—is the true friend of wisdom and (along with empathy, to which it’s related) the greatest enemy of polarization." -- Václav Havel
Uiteindelijk is een toetsenbord gewoon een toetsenbord, en een muis gewoon een muis. Het apparaat stuurt commando's over de USB-interface of via Bluetooth naar de pc.Tjolk schreef op dinsdag 11 september 2018 @ 15:33:
Enig idee hoe goed die microsoft dingen werken op Ubuntu? Het schijnen geweldige producten te zijn, maar de prijs is dermate hoog dat ik het niet even ga proberen en er genoegen mee neem als de extra's ff niet (lekker) werken.
We are shaping the future
De media keys zullen ook wel out of the box werken(mijn logitech k800 deed het in ieder geval prima), en anders zijn ze waarschijnlijk wel te configureren.Alex) schreef op dinsdag 11 september 2018 @ 15:38:
[...]
Uiteindelijk is een toetsenbord gewoon een toetsenbord, en een muis gewoon een muis. Het apparaat stuurt commando's over de USB-interface of via Bluetooth naar de pc.
De basisfunctionaliteit zal allemaal wel werken op Linux, maar hoe het zit met media keys of de fingerprintreader durf ik je niet te zeggen.
No trees were harmed in the creation of this message, but several thousand electrons were mildly inconvenienced.
Die heb ik ook. Eens in de zoveel keer staan de LEDs aan bij het booten van m'n pc en registreert 'ie alle toetsaanslagen dubbel. Maar een reboot lost dat gelukkig weer op.Kobus Post schreef op dinsdag 11 september 2018 @ 18:10:
Heb thuis zelf de Das Keyboard Prime 13 https://www.daskeyboard.com/p/prime13-mechanical-keyboard/
Tikt heerlijk weg, een verademing vergeleken met het standaard HP toetsenbord dat er eerst lag. En makkelijker in het donker
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...
Mijn grootste probleem is eigenlijk een mismatch tussen wat ik probeer te doen, en waar ik de meeste ervaring in heb.DevWouter schreef op dinsdag 11 september 2018 @ 15:36:
[...]
Dan raad ik je LinqPad aan. Je wilt niet weten hoeveel scripts ik heb waar ik on the fly een dynamisch class creëer.
Ask yourself if you are happy and then you cease to be.
"Doubt—the concern that my views may not be entirely correct—is the true friend of wisdom and (along with empathy, to which it’s related) the greatest enemy of polarization." -- Václav Havel
Dat is momenteel simpelweg Python blijven gebruikenDevWouter schreef op woensdag 12 september 2018 @ 10:05:
Ik adviseer altijd om de makkelijkste route te nemen en gezien jouw laatste reactie denk ik wel dat je kan gokken wat mijn advies aan jou zal zijn
In de crontab wordt het dan dit: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 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 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 using System; using System.Diagnostics; using System.IO; using System.Linq; using System.Net; using System.Net.Mail; using System.Text; using System.Xml.Serialization; namespace Mailer { public class MailConfiguration { public string Server { get; set; } = "127.0.0.1"; public int Port { get; set; } = 25; public bool UseSSL { get; set; } public bool UseCredentials { get; set; } public string Username { get; set; } public string Password { get; set; } public static MailConfiguration Initialize() { var homeDir = Environment.GetFolderPath(Environment.SpecialFolder.Personal); var configFile = Path.Combine(homeDir, ".Mailer.Config"); if (File.Exists(configFile)) { var xml = File.ReadAllText(configFile); return MailConfiguration.CreateFromXml(xml); } else { var defaultConfiguration = new MailConfiguration(); var xml = defaultConfiguration.ToXml(); File.WriteAllText(configFile, xml); return defaultConfiguration; } } public static MailConfiguration CreateFromXml(string xml) { var serializer = new XmlSerializer(typeof(MailConfiguration)); using (var reader = new StringReader(xml)) { return (MailConfiguration)serializer.Deserialize(reader); } } public string ToXml() { var serializer = new XmlSerializer(typeof(MailConfiguration)); using (var writer = new StringWriter()) { serializer.Serialize(writer, this); return writer.ToString(); } } public void SendMail(string destination, MailMessage message) { var client = new SmtpClient(); client.Host = this.Server; client.Port = this.Port; if (this.UseCredentials) { client.Credentials = new NetworkCredential(this.Username, this.Password); } client.EnableSsl = this.UseSSL; client.Send(message); } } public class JobDetails { public string MailTo { get; set; } public string MailFrom { get; set; } public string JobName { get; set; } public string FileName { get; set; } public string Arguments { get; set; } public static JobDetails Initialize(string[] args) { var result = new JobDetails(); result.MailTo = Environment.GetEnvironmentVariable("MAILTO"); result.MailFrom = Environment.GetEnvironmentVariable("MAILFROM"); result.JobName = Environment.GetEnvironmentVariable("JOBNAME"); if (string.IsNullOrEmpty(result.MailTo)) throw new ApplicationException("MAILTO environment variable is not set."); if (string.IsNullOrEmpty(result.MailFrom)) throw new ApplicationException("MAILFROM environment variable is not set."); if (string.IsNullOrEmpty(result.JobName)) throw new ApplicationException("JOBNAME environment variable is not set."); if (args.Length == 0) throw new ApplicationException("Please specify a command."); result.FileName = args.First(); if (args.Length > 1) result.Arguments = args.Skip(1).Aggregate((i, j) => $"{i} {j}"); return result; } } class Program { static void Main(string[] args) { try { // In powershell testen met: // // $env:MAILTO="test@test.nl" // $env:MAILFROM="test@test.nl" // $env:JOBNAME="test" var jobDetails = JobDetails.Initialize(args); var psi = new ProcessStartInfo { FileName = jobDetails.FileName, Arguments = jobDetails.Arguments, UseShellExecute = false, RedirectStandardOutput = true, RedirectStandardError = true, CreateNoWindow = true }; var process = new Process(); process.StartInfo = psi; process.Start(); var output = new StringBuilder(); output.Append(process.StandardOutput.ReadToEnd()); output.Append(process.StandardError.ReadToEnd()); process.WaitForExit(); var success = process.ExitCode == 0; var description = $"{Environment.MachineName}: {jobDetails.JobName} {(success ? "succeeded" : "failed")}"; var mailConfiguration = MailConfiguration.Initialize(); var message = new MailMessage(); message.From = new MailAddress(jobDetails.MailFrom); message.To.Add(new MailAddress(jobDetails.MailTo)); message.Subject = description; if (!success) message.Priority = MailPriority.High; var content = new StringBuilder(); content.AppendLine("<html>"); content.AppendLine("<body>"); content.AppendLine($"<h1>{description}</h1>"); content.AppendLine("<pre><code>"); content.Append(output); content.AppendLine("</code></pre>"); content.AppendLine("</body>"); content.AppendLine("</html>"); message.IsBodyHtml = true; message.Body = content.ToString(); mailConfiguration.SendMail(jobDetails.MailTo, message); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } }
1
| 0 5 * * * dotnet /opt/mailer/Mailer.dll /scripts/usbbackup.py |
Ask yourself if you are happy and then you cease to be.
Jij hebt tijd teveelLethalis schreef op woensdag 12 september 2018 @ 10:47:
Ik doe sommige hobbyprojecten wel 3 keer opnieuw in verschillende talen om te kijken wat nou het beste werkt...
Exact expert nodig?
Was het maar zo
Ask yourself if you are happy and then you cease to be.
Never attribute to malice that which can be adequately explained by stupidity. - Robert J. Hanlon
60% of the time, it works all the time. - Brian Fantana
Na 15+ jaar programmeren nog steeds geen last van gehad, heb wel een voorraadje logitech M500 muizen liggen want alle andere zijn dus wel super vervelend.
Je hebt tegenwoordig ook een Powershell shell voor linuxCloud schreef op woensdag 12 september 2018 @ 12:54:
Ik deed sommige hobby scripts wel vaak in python, voornamelijk voor de nieuwsgierigheid maar ook omdat het op veel plaatsen makkelijk gedraaid kan worden.
Ben nu eigenlijk wel een beetje uitgekeken op python en pak nu toch vaak .NET core als ik iets geinigs voor de hobby wil bouwenVoor scripts pak ik tegenwoordig vaak PowerShell als het niet ook op Linux hoeft te draaien. En soms bouw ik zo'n 'script' gewoon in C# in m'n al draaiende hobby project (wat draait op .NET core in Docker op m'n Synology).
[ Voor 8% gewijzigd door ThomasG op 12-09-2018 13:37 . Reden: url ]
$insert mother of god$ThomasG schreef op woensdag 12 september 2018 @ 13:36:
[...]
Je hebt tegenwoordig ook een Powershell shell voor linux
Never attribute to malice that which can be adequately explained by stupidity. - Robert J. Hanlon
60% of the time, it works all the time. - Brian Fantana
Het sloeg ook op een touchscreen gebruiken om te programmeren ipv een fisiek toetsenbordPrisonerOfPain schreef op woensdag 12 september 2018 @ 13:01:
[...]
Na 15+ jaar programmeren nog steeds geen last van gehad, heb wel een voorraadje logitech M500 muizen liggen want alle andere zijn dus wel super vervelend.
....Waarom quotte je hem dan? Want hij had het over het gebruik van "het goedkoopste keyboard wat ik kan vinden".hackerhater schreef op woensdag 12 september 2018 @ 16:18:
[...]
Het sloeg ook op een touchscreen gebruiken om te programmeren ipv een fisiek toetsenbord
MisquoteMerethil schreef op woensdag 12 september 2018 @ 16:22:
[...]
....Waarom quotte je hem dan? Want hij had het over het gebruik van "het goedkoopste keyboard wat ik kan vinden".
Ik heb dus letterlijk een collega gehad die programmeerde met het onscreen toetsenbord via zijn touch screen.
ja.. ik vind het op zich wel ok dat dingen cross platform werken maar om nou te zeggen dat ik powershell een toegevoegd waarde vindt voor Linux?.. mehCloud schreef op woensdag 12 september 2018 @ 14:34:
[...]
$insert mother of god$
Ik heb wel Linux in mijn PowerShell Console (wat ook een aanrader is trouwens!) maar dat je ook PowerShell in je Linux kan stoppen wist ik nietGa ik ook eens bekijken!
Ik zal eens testen hoe volwassen het is.Douweegbertje schreef op vrijdag 14 september 2018 @ 01:15:
[...]
ja.. ik vind het op zich wel ok dat dingen cross platform werken maar om nou te zeggen dat ik powershell een toegevoegd waarde vindt voor Linux?.. meh
Overigens wel enorme hulde voor de docs. Dat ziet er dan wel weer goed uit
Ask yourself if you are happy and then you cease to be.
Hmm Ubuntu 18.10? Zijn ze dit jaar een maand te vroeg dan?Douweegbertje schreef op vrijdag 14 september 2018 @ 01:15:
[...]
Overigens wel enorme hulde voor de docs. Dat ziet er dan wel weer goed uit
Er staat "Er is ondersteuning voor Ubuntu 18.10 toegevoegd na 6.1.0-preview.3"bauke1994 schreef op vrijdag 14 september 2018 @ 11:01:
[...]
Hmm Ubuntu 18.10? Zijn ze dit jaar een maand te vroeg dan?
Met Linux shell/bash kun je natuurlijk ook echt gruwelijk veel maar de api van PS is denk ik wel een stukje netter. Bij Linux shell is het toch een kwestie van alle commando's leren kennen, alleen zijn die vaak gewoon verschrikkelijk cryptisch in de naamgeving.Douweegbertje schreef op vrijdag 14 september 2018 @ 01:15:
[...]
ja.. ik vind het op zich wel ok dat dingen cross platform werken maar om nou te zeggen dat ik powershell een toegevoegd waarde vindt voor Linux?.. meh
Overigens wel enorme hulde voor de docs. Dat ziet er dan wel weer goed uit
Never attribute to malice that which can be adequately explained by stupidity. - Robert J. Hanlon
60% of the time, it works all the time. - Brian Fantana
Ik zie trouwens (nu pas) dat Java 10 type inference heeft gekregen.Hydra schreef op woensdag 12 september 2018 @ 12:48:
@Lethalis : Kotlin
Alle voordelen van Java zonder de nadelen.
Ask yourself if you are happy and then you cease to be.
Ergodox met Gateron Browns erin. Ben nog steeds aan het twijfelen om een Ergodox Ez te kopen en dan met Zealios erin. Maarja mijn portemonnee is het daar niet zo mee eens, om nog maar te zwijgen over mijn vriendin.
Ikzelf werk momenteel op een DasKeyboard 4 Pro met blue cherry's.
Dat komt omdat de "glue" in Unix text is. Daarom zijn er ook zoveel losse commando's die niets anders doen dan tekst wranglen, zodat je de output van een commando weer als input voor de volgende kunt gebruiken. Doe iets en doe het goed en laat de rest aan iets anders over, komt bij dat er in Unix redelijk wat conventies zijn over hoe een programma parameters moet krijgen en hoe deze zich moet gedragen. In Powershell ben je afhankelijk van de API en commandlets die gespecificeerd zijn anders wordt het al flink lastig.Cloud schreef op vrijdag 14 september 2018 @ 11:55:
[...]
Met Linux shell/bash kun je natuurlijk ook echt gruwelijk veel maar de api van PS is denk ik wel een stukje netter. Bij Linux shell is het toch een kwestie van alle commando's leren kennen, alleen zijn die vaak gewoon verschrikkelijk cryptisch in de naamgeving.
PS heeft ook absoluut zijn eigenaardigheden (ik kan nog nooit aan de pipe -> foreach syntax wennen en de return vanuit een function vind ik niet nice) maar het is wel een stuk duidelijker in de naamgeving omdat je niet tegen allerlei executables loopt te praten. En, je kunt inderdaad gewoon .NET gebruiken in je scripts.
[ Voor 6% gewijzigd door Sandor_Clegane op 14-09-2018 12:27 ]
Less alienation, more cooperation.
Op het werk een CM Storm quickfire XT met Cherry browns. Thuis een Ducky Zero 9008, ook met brown switches.
Waarom niet als een los topic? Is waarschijnlijk een stukje handiger. Kunnen we hier doorgaan over shells.MaxVMH schreef op vrijdag 14 september 2018 @ 12:18:
Ik ben JavaScript aan het leren op mezelf en heb als een soort van leeroefening een web app gemaakt. Ik zou de code graag laten nakijken om te weten te komen wat er beter kan qua programmeerstijl (code review). De ‘main’ file is 140 lijnen, de code in html die daarmee omgaat nog eens 50 lijnen.
Kan/mag ik de code in de Devschuur posten?
Dit is ook echt iets wat meer mensen moeten gaan begrijpen... Te veel frameworks en standaarden die hetzelfde proberen te bereiken en maar een eigen ding zijn gestart omdat het net niet 100% doet wat ze willen. Af en toe moet je gewoon je willen bijstellenSandor_Clegane schreef op vrijdag 14 september 2018 @ 12:25:
[...]
Doe iets en doe het goed en laat de rest aan iets anders over
[...]
Ik denk niet dat hij bedoelde om die files in deze thread te plempen.Gropah schreef op vrijdag 14 september 2018 @ 12:35:
[...]
Waarom niet als een los topic? Is waarschijnlijk een stukje handiger. Kunnen we hier doorgaan over shells.
Less alienation, more cooperation.
In het boek designing data-intenisve applications beschrijft Martin Kleppman wel aardig hoe Unix pipelines werken en hoe dat eigenlijk op veel vlakken een voorloper is van bijvoorbeeld hadoop en stream processing technologieën die je vandaag de dag veel ziet. Dat boek is sowieso wel een aanrader trouwens voor een aardig overzicht van databasetechnologie in de breedste zin van het woord.Sandor_Clegane schreef op vrijdag 14 september 2018 @ 12:25:
[...]
Dat komt omdat de "glue" in Unix text is. Daarom zijn er ook zoveel losse commando's die niets anders doen dan tekst wranglen, zodat je de output van een commando weer als input voor de volgende kunt gebruiken. Doe iets en doe het goed en laat de rest aan iets anders over, komt bij dat er in Unix redelijk wat conventies zijn over hoe een programma parameters moet krijgen en hoe deze zich moet gedragen. In Powershell ben je afhankelijk van de API en commandlets die gespecificeerd zijn anders wordt het al flink lastig.
Het is een elegante manier van naar een systeem kijken en wat nog veel belangrijker is dit dan ook doorvoeren in alles ( alles is een file ) zodat dit in alle facetten van het systeem is te gebruiken. Zie proc. SystemD daargelaten.
"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim" - Edsger Dijkstra
Gooi het op Github en link ernaar. En een eigen topicje aanmaken kan ook geen kwaad, houdt het wat overzichtelijker voor jezelf en de andere onderwerpen die hier gaande zijn.MaxVMH schreef op vrijdag 14 september 2018 @ 12:18:
Ik ben JavaScript aan het leren op mezelf en heb als een soort van leeroefening een web app gemaakt. Ik zou de code graag laten nakijken om te weten te komen wat er beter kan qua programmeerstijl (code review). De ‘main’ file is 140 lijnen, de code in html die daarmee omgaat nog eens 50 lijnen.
Kan/mag ik de code in de Devschuur posten?
Ubuntu 18.10 is nog niet uit, maar ubuntu 18.04 wordt bovenaan niet (meer) getoond.Douweegbertje schreef op vrijdag 14 september 2018 @ 11:23:
[...]
Er staat "Er is ondersteuning voor Ubuntu 18.10 toegevoegd na 6.1.0-preview.3"
Ik ben hier geen expert in maar de "preview" build lijkt mij de 'beta'.
[ Voor 26% gewijzigd door bauke1994 op 14-09-2018 12:51 ]
Gropah schreef op vrijdag 14 september 2018 @ 12:35:[...]
Waarom niet als een los topic? Is waarschijnlijk een stukje handiger. Kunnen we hier doorgaan over shells.
Het is inderdaad de bedoeling om in een eigen / los topic te posten. Nu kan je het terug rustig over shells hebbenSandor_Clegane schreef op vrijdag 14 september 2018 @ 12:37:
[...]
Ik denk niet dat hij bedoelde om die files in deze thread te plempen.
Geen probleem, komt in orde!bauke1994 schreef op vrijdag 14 september 2018 @ 12:45:
[...]
Gooi het op Github en link ernaar. En een eigen topicje aanmaken kan ook geen kwaad, houdt het wat overzichtelijker voor jezelf en de andere onderwerpen die hier gaande zijn.
[ Voor 23% gewijzigd door TheMaxMan op 14-09-2018 12:49 ]
Op kantoor een Filco Majestouch 2 met Cherry MX Blue, thuis een Max Keyboard Nighthawk x7 met Cherry MX Brown. M'n vriendin heeft een Ducky met Cherry MX Red.
Less alienation, more cooperation.
Dan ken je er nu twee. Ik vind https://ohmyz.sh/ heerlijk om te gebruiken. Wel was ik de eerste dagen aan het spelen met plugins en themes om "de perfecte shell" te maken om vervolgens het opnieuw te installeren en het vrij basic te houden.Gropah schreef op vrijdag 14 september 2018 @ 12:35:
BTW: gebruikt er iemand zsh? en hoe bevalt het? Zie het wel eens langs komen, maar ken maar 1 iemand die het gebruikt.
Mijn probleem is dat ik met MX Brown vrij makkelijk tot de bodem ga. Nu heb ik geen ervaring met andere switches, maar jij wel. Dus... is dat voor jou ook de reden dat jij blue fijner vindt of heeft dat een andere reden?TheNephilim schreef op vrijdag 14 september 2018 @ 12:49:
Cherry MX Brown zou ik niet snel weer voor kiezen; Red is lekker smooth voor gamen en Blue lekker hard voor typen. Brown zit er weer net tussenin.
"Doubt—the concern that my views may not be entirely correct—is the true friend of wisdom and (along with empathy, to which it’s related) the greatest enemy of polarization." -- Václav Havel
Wablief? Ik heb net 2 weken terug een keyboard met numpad en een draadje bij Apple zelf besteld.. Het nieuwe Bluetooth keyboard werkt ook puur via lightning kabel, zonder bluetooth (zou ook bijzonder zijn, mijn desktop heeft geen bluetooth dongle).Sandor_Clegane schreef op vrijdag 14 september 2018 @ 12:52:
Apple wired keyboard met numpad. Zijn ze ermee gestopt, hondjes.
Ja, hier. Icm met Oh My Zsh. Ik vind het eigenlijk niet heel anders dan Bash, al mis ik wel functionaliteit als ik een keer geen zsh kan gebruiken. Ik vind vooral Oh My Zsh's git integratie ideaal, je ziet direct of je repo changes heeft of up to date is.Gropah schreef op vrijdag 14 september 2018 @ 12:35:
[...]
BTW: gebruikt er iemand zsh? en hoe bevalt het? Zie het wel eens langs komen, maar ken maar 1 iemand die het gebruikt.
[ Voor 3% gewijzigd door Lye op 14-09-2018 13:15 ]
Welke bedoel je? Die van 140 Euro oid? Ik bedoel die van 60 met een USB hub. Man wat een fijn ding is dat.Lye schreef op vrijdag 14 september 2018 @ 13:13:
[...]
Wablief? Ik heb net 2 weken terug een keyboard met numpad en een draadje bij Apple zelf besteld.. Het nieuwe Bluetooth keyboard werkt ook puur via lightning kabel, zonder bluetooth (zou ook bijzonder zijn, mijn desktop heeft geen bluetooth dongle).
Less alienation, more cooperation.
Echt een probleem heb ik er niet mee, maar die Red en Blue switches hebben echt een bepaald gevoel; smooth en clicky. Brown doet beide eigenlijk niet.DevWouter schreef op vrijdag 14 september 2018 @ 13:05:
[...]
Mijn probleem is dat ik met MX Brown vrij makkelijk tot de bodem ga. Nu heb ik geen ervaring met andere switches, maar jij wel. Dus... is dat voor jou ook de reden dat jij blue fijner vindt of heeft dat een andere reden?
Wat ik er juist van weet zijn Clears juist Blue's maar met minder geluidTheNephilim schreef op vrijdag 14 september 2018 @ 13:48:
[...]
Bottomen ga ik nooit afleren denk ik, waren Clears niet de wat zwaardere Blue switch? Misschien is dat een idee.
Jup, misselijk duur. Maar er is nog steeds een Apple keyboard met kabel dusSandor_Clegane schreef op vrijdag 14 september 2018 @ 13:30:
[...]
Welke bedoel je? Die van 140 Euro oid? Ik bedoel die van 60 met een USB hub. Man wat een fijn ding is dat.
zsh isGropah schreef op vrijdag 14 september 2018 @ 12:35:
[...]
BTW: gebruikt er iemand zsh? en hoe bevalt het? Zie het wel eens langs komen, maar ken maar 1 iemand die het gebruikt.
zsh + iterm2 hierThomasG schreef op vrijdag 14 september 2018 @ 14:14:
[...]
zsh isHet heeft een hoop features die het allemaal een stuk aangenamer maken, vooral in combinatie met bijvoorbeeld zpresto.
Iets wat ik zelf veelvuldig gebruik is dat je commando's kunt completen op basis van je history. Normaal gesproken als je pijl omhoog gebruikt, krijg je het vorige commando. Typ ik eerst bijvoorbeeld: $ mvn clean, en druk dan pijl omhoog krijg ik de history op dat specifieke commando en kan daar tussen cyclen. Nu kun je dat ook deels doen met reverse-i-search, maar dat werkt niet zo gemakkelijk.
Verwijderd
Kotlin:
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 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 package mailer import com.fasterxml.jackson.databind.SerializationFeature import com.fasterxml.jackson.dataformat.xml.XmlMapper import java.nio.file.Files import java.nio.file.Paths import org.apache.commons.mail.DefaultAuthenticator import org.apache.commons.mail.HtmlEmail import java.io.BufferedReader import java.io.InputStreamReader import java.net.InetAddress class MailConfiguration { var server: String = "127.0.0.1" var port: Int = 25 var useSSL: Boolean = false var useCredentials: Boolean = false var username: String? = null var password: String? = null } fun initMailConfiguration(): MailConfiguration { val xmlMapper = XmlMapper() xmlMapper.enable(SerializationFeature.INDENT_OUTPUT) val homePath = Paths.get(System.getProperty("user.home")) val configPath = homePath.resolve("Mailer.Config") if (Files.exists(configPath)) { val result = xmlMapper.readValue(configPath.toFile(), MailConfiguration::class.java) return result } else { var defaultConfiguration = MailConfiguration() xmlMapper.writeValue(configPath.toFile(), defaultConfiguration) return defaultConfiguration } } data class JobDetails ( val mailTo: String, val mailFrom: String, val jobName: String, val arguments: Array<String> ) class JobException(override var message: String) : Exception(message) fun initJobDetails(args: Array<String>): JobDetails { val mailTo = System.getenv("MAILTO") val mailFrom = System.getenv("MAILFROM") val jobName = System.getenv("JOBNAME") if (mailTo == null) throw JobException("MAILTO environment variable not set") if (mailFrom == null) throw JobException("MAILFROM environment variable not set") if (jobName == null) throw JobException("JOBNAME environment variable not set") if (args.count() == 0) throw JobException("Please specify a command") return JobDetails(mailTo, mailFrom, jobName, args) } data class JobResult(val exitCode: Int, val output: String) fun runJob(job: JobDetails): JobResult { val builder = ProcessBuilder(job.arguments.toList()) builder.redirectErrorStream(true) val process = builder.start() val sb = StringBuilder() BufferedReader(InputStreamReader(process.inputStream)).use { reader -> var line = reader.readLine() while (line != null) { sb.append(line) sb.append(System.getProperty("line.separator")) line = reader.readLine() } } process.waitFor() return JobResult(process.exitValue(), sb.toString()) } fun main(args: Array<String>) { try { val cfg = initMailConfiguration() val job = initJobDetails(args) val jobResult = runJob(job) val address = InetAddress.getLocalHost() val description = "${address.hostName}: ${job.jobName} ${if (jobResult.exitCode == 0) "succeeded" else "failed"}" val html = """ <html> <body> <h1>${description}</h1> <pre><code>${jobResult.output}</code></pre> </body> </html> """.trimIndent() // Mail the results val email = HtmlEmail() email.hostName = cfg.server email.setSmtpPort(cfg.port) if (cfg.useSSL) { email.isStartTLSEnabled = true } if (cfg.useCredentials) { email.setAuthenticator(DefaultAuthenticator(cfg.username, cfg.password)) } email.setFrom(job.mailFrom) email.addTo(job.mailTo) email.subject = description email.setHtmlMsg(html) email.send() } catch (ex: Exception) { println(ex.message) } }
[ Voor 12% gewijzigd door Lethalis op 15-09-2018 14:38 ]
Ask yourself if you are happy and then you cease to be.
Dit topic is gesloten.
Apple iPhone 16e LG OLED evo G5 Google Pixel 10 Samsung Galaxy S25 Star Wars: Outlaws Nintendo Switch 2 Apple AirPods Pro (2e generatie) Sony PlayStation 5 Pro
Tweakers is onderdeel van
DPG Media B.V.
Alle rechten voorbehouden - Auteursrecht © 1998 - 2025
•
Hosting door TrueFullstaq