Good to know: don't do except on e:Exception do ... raise e;
2020-12-28 13:29 dontraisee [permalink]
Good to know. At work, I inherited a smaller project. It started firing access violation errors reading from 00000000 (that tells you there's a nil pointer involved somewhere) at some address that didn't put me somewhere in the source code when I did Search > Find address in the IDE...
I was lucky I got the program running in a debugger when this happens, and the root cause was something completely different. (An SQL unique index constraint violation if you're really interested.) I got that fixed soon enough, but that didn't explain where the access violation comes from.
I followed the exception with the debugger, and before the exception was handled by anything that outputs like a logger or an error display, sure enough an access violation happend, but the debugger didn't show me anywhere else in the source code than it was already debugging, strange.
It took me a long hard look at the code before I spotted it, but with some luck you'll be able to spot what's wrong faster. The original author had the strange habit of writing exception handlers like this:
//important stuff here
on e:Exception do
//stuff to do in case of an exception here, (e.g. transaction rollback)
And they were all over the place. Nothing bad about that per sé, with raising the exception again, you can centralise the actual exception handling on the 'highest level' where all the calls are made. But while you're able to raise a specific exception if you create a new one*, apparently there's a difference between
raise e; and
raise; at least in this Delphi version I was on. Delphi handles the destruction of exception objects for you, and apparently that throws something off and causes the nil access violation somewhere deep inside...
*: Fun fact: Did you know that the Delphi runtime system creates an EOutOfMemory exception instance at the start of your programs, just to have it ready when it actually runs out of memory anytime later? Forgot where I read about that though...
Google is too big! Time to split it up in pieces.
2020-12-18 23:42 splitgoog [permalink]
I've tought and written before about splitting up Microsoft. With the recent lawsuits against Google, there's talk about splitting up Google. But how? My mind starts to wonder. If you would ask me, this is what I would say, based on what I know (which may not be the full picture, but I'm just trying to do the same to Google what I did to Microsoft before, let's see where it takes us.)
Products: online ads and banners
Revenue: price per exposure
Let's start with the cash cow. I know there's a bit if 'advertising' tied into 'selling' keywords with the search results, but I'm not considering that in this department. So specifically the online ads and banners shown on all kinds of websites, should separate into something independent. The sweet talk that proclaimed benefit from keeping it tied into the big mix is about being able to offer you more relevant ads, but we know what that means. Your e-mails and search queries go through a farm of computer centers, and you get advertisements for the stuff you just bought. (Or a brand of dental prosthetics you're orthodontist doesn't even work with...) So back to basics, one trustworthy entity you can call upon to fill a side-bar of your website to show a marketing message of some other company (that's not on your black-list). (Or perhaps that is on your white-list, but I guess you would have to agree to review newcomers soon enough or your percentage might suffer, or something...)
Products: anything Android
Open source and big companies are a complicated subject. If we stick to the basics, and perhaps compare to something different but somewhat similar, I still think an independant corporate identity could be the steward of the Android project and sell licenses to get permission to use the Android name, and get a hand on a curated build by the central authority of the project. If you really want, you can fork the project and roll it all yourself, but if you pay a reasonable price, you could get feedback if you're doing it right, get certifiers from the central authority to guarantee you the binding with your hardware devices is just right and is future-proofed for at least a version or three.
Products: Chrome, ChromeOS, (Fuchsia?)
Revenue: not for profit foundation
Department: Search engine
Products: search engine
Revenue: keywords auctioning
There's this story online of an ex-employee of a search service provider, that knew the end was near when fellow employees were using Google themselves. Search for it online, you'll find it. Google cut out the middle man and the search service market evaporated. It started with a thing called PageRank, but what it did was offer better results to anyone's search queries. If you take all the text on the web, and search for bits of text, you're off to one side of the ideal result set. If you think you could catalog all of the web in an extensive category system, you end up on the other side of the ideal result set. (And put a lot of effort in for limited returns.) You could try and build something intelligent that organically aims at this center sweet spot, but remember Goodhart's law. If you succeed, your new system will get gamed. In other words, SEO was born.
So the search engine part of Google living on its own could and should still offer to show 'paid for' search results on the keywords stakeholders select and/or organic statistics indicate as good candidates. Since there's money envolved, the engine needs to be transparent (of the crystal clear kind). In tune with the new spirit, it should be based on anonymity and respect privacy to a high degree. Even so, it could and should still actively promote societal inclusivity and combat (internationally?) criminal behaviour like enciting violence or popular misleading.
Department: Productivity Software
Products: G-Suite apps
It will need a new name though. I guess it started with GMail (which itself may be a response to Outlook Web Access) that hit a sweet spot for people in search of a low bar to clear to get started with e-mail, and also with established users that appreciate improved defaults in e-mail handling. (Yes, Outlook has a threaded conversation view, but not by default, I remember it was buried in the custom column sort group view something in Outlook 2000.) A logical extension was a calendar and the rest of the usual apps in an office suite typical attachments are made with (word-processor, spreadsheet, slide show). That it would all get delivered through the browser, now looks like an evolution that would have happened anyway. But it may be easy to take heavy-hitting modern browsers for granted these days. Anyway, their office suite has managed to catch up fast and is almost feature complete with most other office suites out there.
Department: Cloud Services
Products: anything cloud
Revenue: pay for what you use
It takes a lot of resources and effort to put up all this machinery in data centers to churn away and convert network traffic to and from storage. It takes a specific organisation to make it all work, and it's inceasingly done with a distance to what it is you're clients are actually up to. As a provider you've got a set of virtual machines running, and everything everywhere has the hell encrypted out of it. In the ideal case, you couldn't even get to know what you're clients are actually working on if you really wanted to, by design. (Though some find this too ideal.) What I noticed is that much of the cloud offerings out there like AWS and Microsoft Azure, are getting a lot of parity: for everything cloud, there's a roughly similar offering from each of the providers. In an ideal world, you can mix and match to your benifit, but since they're still tied to the data-centers they run in, we're still stuck in one of the silo's unless we pay extra to set up a dedicated link between them.
Being Google, the research that's been done ends up all over the place, or nowhere (Wave? Glass?). They start a thing called SPDY (pronounced "speedy"), and it ends up parts in HTTP 3 and part in a kind-of successor to TCP? They're building cars, and also a boat, or is it a barge?
To their credit, it's actually OK that Alphabet Inc. was created as a group with Google as a member. It opens up the endeavours thet get 'promoted' into members of Alphabet of their own for a possible future on their own, or under another corporate parent. One of these is "X", which apparently handles any undefined research going on. Anyway, things like that may be going on in any large young tech firm, so why not out of one of the newly formed ex-Google-chunks outline above.
And I'm sure I forgot some things that Google is also doing, but I think I've listed the most important things here.
QuickReports: R.I.P. Lut
2020-12-18 16:26 invoicetemplates [permalink]
Oh my, I didn't know. I guess we'll see this more and more with one-person open-source projects, that people stop with the project for all kinds of reasons.
But about reports, I've made this really elegant thing at work to script the design of a report with just a few basic commands (line, text, image, matrix, block, repeat...) that allows you to write what the report should look like, and make lots of small alterations later. If you really need your reports just right, I've always found a graphical designer to introduce minor artefacts that you sometimes need to work around...
I know there are tons of similar things out there, like TeX and PostScript, and even HTML or MetaFiles, but it was grown out of neccessity and suffered "dogfooding" from the very start, which shows in its design and execution. And thanks to SynPDF, (or "Print to PDF" for that matter) you can just exports PDF's with it as well. So I really should take some time and re-do it on my own time and open source it... If I can make it even better and cleaner, I might introduce the open-source version as a replacement at work! (... Oh-oh!) (... or was it this one?)
Soundcloud link to my profile
2020-12-18 12:55 catsc [permalink]
Look, I've added a SoundCloud icon to the header bar on the home page, with a link to my profile there: !
I don't intend to publish music myself though. It's just you can follow artists there that do. Like Du Tonc and Alex Cruz, just to name a few...
Porter Robinson & Madeon - Shelter
2020-12-12 18:18 shelter [permalink]
→ Anime & Manga — What does (present) Rin mouth when she sees her father and her past self at the shrine?
Sad, no answer there. (Yet?) If you haven't seen what it is, go have a look first. It's only 6 minutes. Or read about it here or here. (I also feel a little sad I've only now learned about this. But it's all part of me getting to know anime much more since the pandemic, but that's another story altogether. I may post something about that sometime later.)
It really feels like there's no way that's all. You feel like you've seen a preview, a small taste of the big thing and you really want to see more, but there isn't. It takes some searching around to find that out, but apparently there really isn't. (Yet?)
So I watch and re-watch. Closely. Then wait a few days and watch again, hoping to pick up a few more things. It's really that good. I get that. A lot of attention to detail went into it.
But you do get questions about things. What does she utter when her dad and younger self leave the shrine? (4'15") You can guess, and artistically speaking, you can't be wrong. She's reaffirming memories that were lost before, after all.
What isn't clear to me and I find very intriguing, is the section right after she takes a bath (3'05"). Even when the camera changes (3'06") there's already all of devestation outside. She ventures out (3'12") in what looks to me like funeral attire. Is she mourning the loss of her home world? What's with the square lights, most white with a few red? Great shot with her resting in the tree! (3'17") Did she model this broken world for herself? Is she having a hard time after getting memories back since touching the swing (2'24")? I'm guessing it's by her design because it's only after that she unlocks the digital design of her old home village. (3'24")
Except the visit to the shrine and other flashbacks were before that. But she's not figured in light there, so it may be proper mental images. If her brain-interface would pick up on those to manifest them in her 'living realm', it would be a story-element of its own, and would lessen the strength of the revelation at the end. So I guess there's a lot more to touch upon there, and it really feels like there's much more to the story, but it's not supposed to be a full length series. So it's better to not want it to be.
But there's so much more anime to discover! And this is a great love-letter to anime in general. With the little anime I've discovered so far — really need to do a write-up about that! — I can suggest you watch Kanata No Astra if you like the 'astray in space' thing...
Zout van op zee?
2020-12-07 16:12 zoutopzee [permalink]
→ NWS: Strooizout op onze wegen komt uit Caraïben, Brazilië en Australië: "Het wordt met grote zeeschepen aangevoerd"
Tss, heb ik weer zo'n gek idee. Zou je kunnen in grote barges op internationale wateren ter hoogte van de evenaar, gewoon zeewater laten verdampen, zodat je het zout in droge vorm kan verschepen naar de industrie aan land om verder te laten verwerken? Zou dat economisch haalbaar zijn, maar vooral, zou die extra opstijgende waterdamp van invloed kunnen zijn op weerpatronen? Of het een goeie of slechte invloed is moet dan ook nog worden uitgezocht.
Of zou het beter zijn om het damp-water ook bij te houden? Het zuiver water laten neerslaan en apart verschepen? Met de verandering van het klimaat zou er wel eens grote groei kunnen zitten aan te komen in de handel in drinkbaar water...
"Geef ITC'ers lessen ethiek"
2020-11-21 15:10 compsciethics [permalink]
→ Algemeen Dagblad: Filosoof over digitalisering: geef ict-techneuten net als dokters lessen in ethiek
Update: vreemd, dit artikel lijkt volledig vervangen met een ander intussen. Maar soit, de titel zegt genoeg, de vooruitgang in de toepassingen van software en rekenkracht op maatschappelijk gebied zou hand in hand moeten gaan met een goed ontwikkeld gevoel voor ethiek, een roep die wel her en der in de computerwereld klinkt, zoals hier.
Ik heb dit ook al een tijdje zien aankomen. Computers zijn ontstaan uit de studie naar complexe elektronische schakelingen. Daar kwam ook wiskunde bij van pas om het complexere werk te kunnen omzetten in nulletjes in eentjes. Al snel ging het omgekeerd, en werden de eerste computers al ingezet aan de grenzen van het wiskundige kennisdomein om de berekeningen te doen die door mensen te traag gaan. Een computer maakt ook minder rekenfouten, heb ik me laten vertellen.
Snel foutloos rekenen kwam ook goed bij boekhouden van pas. Naar het schijnt zou IBM veel te danken hebben aan de volkstellingen te mogen doen met ponskaarten. De vooruitgang was niet meer te stoppen en aanbod is vraag jarenlang nauw blijven volgen met betere en kleinere toestellen, die ook goedkoper werden zodat ze vlot het huishouden binnendrongen, en later zelfs de binnenzak.
Toepassingen maken voor het grote publiek komt best wel wat bij kijken. De studie van mens-machine-interactie heeft natuurlijk voor een stuk kunnen voortbouwen op wat al binnen de psychologie werd uitgezocht.
De groei ging zo hard dat het wel eens de verkeerde kant op ging. Zo is de dotcom bubble uiteen gespat, en gaat het niet met de 3D printers zoals analysten hadden gehoopt. Ook dacht men dat in het verlengde van domotica zowat alles op het internet zou aansluiten, maar daar is het — momenteel toch nog — wat te vroeg voor.
Misschien gaat het wel wat te strak met dat aanbod, en als de vraag niet volgt is dat nefast voor de prijs. Als je nu iets wil lanceren online is het eigenlijk vreemd als je er geld voor vraagt. Geld heb je wel nodig, natuurlijk, dus is er een schaduw-economie ontstaan waar je munt kan slaan uit het gedrag van je 'klanten'. De fijne kunst van producten en diensten aanbieden was al goed ontwikkeld in het tijdperk van radio en televisie, maar krijgt nu op het internet wel een heel nieuwe dimensie bij.
Dus net zoals de marketing in het algemeen, dringt het zich onder computer-mensen inderdaad op om ook stil te staan bij ethiek. Je wil zoekresultaten aanpassen aan de wensen en verwachtingen van de gebruiker, maar ethnisch profileren wil je wel vermijden. Moeilijk!
Voorlopig verwacht ik dat Jan Modaal nog even vast zal zitten in een moeras van onduidelijkheid. Met wetten zoals GDPR zijn wel al wat krijtlijnen uitgezet, maar het gevecht tussen de grote spelers speelt in alle stilte boven ons hoofd wel nog altijd af. En eerlijk gezegd vrees ik eerst nog een slingerbeweging in een richting die nadelig is voor wat we als consument kunnen verwachten. Als je een mastodont als Facebook inbeeldt, dat deze zou moeten scheiden in onafhankelijke internationale bedrijven verspreid over de wereld, maar wel een eenvormige gelijkmatige gebruikservaring moeten bieden? Dan moet er al veel duidelijk zijn over dewelke dat dan moet zijn, en er zal niet zo vlot in kunnen geschakeld worden zoals Facebook zelf nu in theorie kan beslissen over hoe hun website ineen zit. Denk maar aan hoe e-mail geössificeerd zit.
What if they replaced Windows with Microsoft Linux...
2020-10-11 20:26 winmslinux [permalink]
→ What if they replaced Windows with Microsoft Linux
Hmm, in the very far future, sure, why not. But right now, it may be a little harder than these people make it look like. So, where are we now and what would it take? I'll do some projections here based on what I personally feel and think, so I may be far off, but I hope I can make some points some people may be overlooking in this matter...
We've got WSL which was a great first step in the right direction. The most important thing here, and I guess it follows from the work that was done to get Docker working on Windows, is that there's deep deep down in the mechanics of the kernal, made an opening into the very fiber of the very thing that makes Windows Windows, and a base into the task scheduler so it could work with both the heavy-handed old-style Windows processes, and the lighter, moderner Linux-like processes. (I believe it was chosen to call them pico-processes because I guess at that level you'll not really want to get tied to something specific like Linux there and then...) What I really think is the most important that this serves as a precedent, that the kernel team is listening and willing to budge in any direction at all. So yes perhaps into a hybrid model where Windows allows a little more *nix very close to it's internals, and move from there to a little more and more of this and a little less and less of the old until it's all fine and ready to move up into an emulation layer. At this point they should have seen this coming, Windows 95 had to be able to run 16-bit applications for DOS, and ran 'Windows on Windows' 16-bit application with a translation layer that would convert all the calls to the underlying system 32-bits system. So, if you're on Windows, check your machine now for
C:\Windows\SysWOW64, yes there's another emulation layer your 32-bits applications use to get work done on the underlying 64-bits system. I guess they're very hard at work as we speak to have a "Windows x64 on Windows ARM" as we speak, I've noticed some news items about that here and there recently.
(Which I regret a little bit, to be honest. I guess things could get a lot smoother to first have a "Windows ARM on Windows x64" sub-system and start promoting the developer tools to get your current applications already running in (fake) ARM and have the plain user completely oblivious. Performance will probably be comparable, and the gain you'd get when you finally get a hand on Windows-ready ARM hardware would be even greater because they've already prepared for ARM... But this may be all wishful thinking on my part, and a hard sell to management that need to get to maximum success with minimal investment...)
WSL 2 is another step in this direction, it lets go of talking the speach a kernel would, and talks all like 'system' what a kernel itself understands. It's only a step though, and what I'm really looking forward to is having a full-on Linux application play nice with the Windows graphical environment. There's a lot of differences to overcome there to make it happen, but it would open the way for the next steps. If there's a way to have both side by side, the work can start on the mirror movement: having a revised Windows graphical sub-system that talks with a *nix-style graphical setup, and have that as primary agent handling the graphical environment. With that you'll have much more in place to build a solution that runs as a Linux process and emulates a system with the DLL's in place to make an EXE work.
I know too little about the Linux kernel to know if this would mean Linux needs to provide the neccessary to have pico-processes of its own (or better giga-processes to fully reverse the projection), so this emulation layer actually shows in process enumeration that there's an EXE image running together with the other ELF-based images. Then again, I don't even know if Wine has this now, or even needs it. It would be nice though, that in this progress Microsoft pays respect to what went into Wine and silently and respectfully makes it so that the end-result nicely overlaps with Wine, progressing into a single strong solution to run Windows programs on Linux.
Could you do a mill architecture with RISC-V?
2020-09-29 22:26 millrisc [permalink]
I wondered today if it would be feasable to build a processing unit according to the mill architecture with the RISC-V instruction set. But as always, I also wonder if I'm out of my league and know far too little of these things to come even close to forming an accurate answer, or even if I'm anywhere close to a good idea. If I understood correctly, the mill architecture does what modern CPU's already do: use a bank of virtual registers with multiple heavily pipelined streams of translated instructions. CPU's that do hyperthreading have two streams of instructions, but that's about it. I'm really rooting for the first article I read about a real system that has more than two, but with just a little imagination, and if you know the 'price per transistor' keeps going down, you can image a huge bank of virtual registers, with a bank of ALU's close, that processes a 'large' number of instruction streams. Ideally even a totally variant number of instruction streams. This may be a caching nightmare, but instead of wasting a lot of in-system logic to do branch prediction and other bookkeepingof what an instruction stream is doing, what if you could just load another instruction stream, just up until you get all of the piplined stages fully occupied...
Alas, I'm so much out of that business that I guess I need to conclude I'm a wild dreamer. I may stumble on a good idea now and then, but know too little to be sure. So I'll note it down here. I hope I haven't bored you, and with just a little luck, you are able to judge about this idea. If so let me know...
MEAN Stack Considered Harmful
2020-09-23 10:31 meanbad [permalink]
→ MEAN Stack Considered Harmful
An important read, also reminds me of what I've written here.
The creator of tx use tx.
2020-08-16 16:09 txdogfood [permalink]
→ Alper: The JIRA team does not use JIRA and of course why would they if anybody gave them the choice.
The creator of tx uses tx.
HP Pavilion Keyboard 300
2020-07-02 10:48 hppk300 [permalink]
More specifically: Dear HP-person that was responsible for the design of the HP Pavilion Keyboard 300,
Congratulations on the great design. I appreciate the effort that went into designing a keyboard that brings the evolution of the laptop design to the desktop user. (Though I have bought this keyboard because the keys on my laptop are coming loose. It's not an HP, don't worry.) The result is a sleek minimal design that fits well with most other accessories of contemporary office work.
"Modern" applications are using less and less of the function keys. So I understand that keys marked "f1" though to "f12" now have a primary function that controls multi-media, the screen, or open the search or configuration dialogs. If you need to press a function key, you can still unlock this function by combining the key press with the "fn" key. I'm willing to adapt. (Albeit grudgingly.) I'm also willing to forgive the dumb pricks from electronics that forgot to provide a 'fn-lock' feature, for example under a combination of "fn" and the padlock key, or "fn" and "esc".
A daring design decision must have been to drop the num-lock, caps-lock and scroll-lock indicators. They take up much space and are in a place that people don't notice anyway. Considering nobody ever has 'num' unlocked anymore — all keyboards have dedicated arrow keys, now — I was pleasantly surprised to find a "paste" key where "num lock" is on other keyboards! It must have been a such big departure from current standards, that you've decided to keep a "scr lk" button as a reminder of all the good times. I too think there must be enough people using it in their daily work that it still merits a key of its own.
You can hear I'm quite positive. The one big regret, though, is you stole my right "ctrl". I used that one a lot. Especially with one-hand combinations with the arrow keys. Now I get "<" and the cursor not in the place I wanted. That'll be a lot harder to adapt to. It'll take so much concentration that I'd want to temporarily halt my music, but that's easily done now with a single press of the "f5" key — excuse me the "⏯" key.
Congratulations and thank you. I'll be thinking about you a lot.
Carefull with Gogole Sheet CSV export
2020-06-26 14:18 ggggrgviz [permalink]
Ready for another story from the trenches? So image a Google Sheet made by someone else, with all kinds of dat in about 30 columns, of about a few thousand rows. Yes, it's a stretch to keep using Sheets for that, but this data will serve for the analysis for a decent application to manage this with... That probably won't be my team handling that project, but I had to do a quick cross reference of this data with the data in the database of one our current projects. The best way to do cross-checks is get the sheet into a table in the database to run queries. I guess you should be able to import a CSV pretty easily, right? I searched around and found this:
Which I thought would provide the data in just the way ready for me to import. Wrong. The second column just happened to have codes for all of the items that are numeric for the first few hundreds of items, and then alphanumeric codes. At first I thought the CSV importer was fouling up, but I hadn't looked at the CSV data itself. Turns out this CSV exporter checks the first few lines (or perhaps even only the first one!), guesses the column is numeric, and then just exports an empty value for all non-numeric values in that column!
The code in that column was only in a number of cases needed to uniquely identify the items, so I first was looking for a reason why my cross-match was throwing duplicates in all of the wrong places. Ofcourse. Weep one tear for the time lost, then move on. Take solace in the wisdom gained.
I solved it by using the CSV from the Export menu. I only needed it once so I didn't get a URL for that.
Why no C++ webdev...
2020-06-05 17:23 cppwebdev [permalink]
→ Quora: Why is C++ not used in web development?
For what it's worth, in creating xxm it feels like I'm trying to create this exact thing except for with the Object Pascal language. Yes, you can do HTTP all by yourself, you can do an ISAPI extension DLL or a Apache httpd module, but you'll still get a strange hybrid between a server service and a web application that has nothing like a platform you can depend on to do the heavy lifting. And, if I'm permitted to speak frankly, in C++ this would be ugly! And probably would need a lot of code to make even the basic things happen. Too bad (Object) Pascal has been called verbose, if you know what you're doing you can write the logic you need in concise readable syntax.
Still what I'm finding in trying to get people to take a look at xxm, they either are unable to disregard the visual RAD form-designer style programming like I do, and don't get that xxm in it's current for is much more like early-days PHP but with the Delphi compiler instead of the script interpreter server-side; or they are fixed in thinking 'the web + Delphi' is all about a data-layer, doomed to only serve plain CRUD requests to and from a front-end layer, and never talk to the user's browser directly. Please! A big strong no on both accounts. Let me explain.
I've always seen — pretty much since FrontPage and DreamWeaver — that if you have a visual designer to manage what to go on a HTML page, you get really ugly code. It'll look the way you want, but a lot of decisions have been made for you. Some with negative consequences for you down the road. And the underlying code is strange and ugly, unneccessarily complex for your website-visitors' browser to work with. I guess modern front-end web-devs must have known this also as I've seen a regression towards working on big chunks of raw coding the last decade. Yes, font-ends are hacking away in CSS and HTML, and not with their bare hands, all kinds of CSS pro-processors and template engines do the heavy lifting behind. So if you know what you're doing, you can have this as well, in a Delphi project. I don't need a form designer, I make the page-builder first with dummy data, and run it in the browser. Don't forget, hitting F5 in the browser to an xxm website running over a development-handler, fires up the Delphi compiler there and then. Edit→Save→Refresh→Repeat
Then there's the other thing. If you start a conversation about webservers and Delphi, bam there's DataSnap. Strange. Is it because I'm strongly dys-convinced about ORM's? (Reminder to self: still have to write that grand essay about what's bad about ORM's.) Yeah sure, if you have things that use RTTI to serialize your data-objects in some way, you can easily use one of the available options to serve it over some web-server and bam you can call it REST and get away with it. But this is a completely different thing than having a full blown web-application serve from something you created! Complete with images and stylesheets. And yes you can have both🤯 from the same web-server-service🤯. I've had people walk away, unable to believe me. It still feels like it's a case of opening your mind to be able to see it.
Whaddayaknow, it checks out!
2020-05-27 10:30 primescheck [permalink]
→ J: Doc/Articles/Play104: The 10,000,000,000th Prime Number
http://yoy.be/home/primes/?a=2&x=10000000000&t=1&n=1 p(455052511)=10000000019 is actually the first prime past 10^10, but that does mean my primes thingy found the 455052511 primes lower than that.
Microsoft Teams was down?
2020-03-16 20:29 nottx [permalink]
→ Microsoft Teams goes down just as Europe logs on to work remotely — Verge
Tx wasn't down, especially the instance you host yourself.
Iedereen betaalt, ook de staat?!
2020-01-08 00:39 usfin1 [permalink]
→ Mother Jones: Americans Still Paying 100% of Trump’s Tariffs
Dat had ik al gehoord. Hij wil buitenlanden die zogezegd niet braaf spelen treffen, door overzeese handel te belasten, maar op invoer wil dit zeggen dat de binnenlandse consument dit financieel draagt.
En dan zie ik ook deze:
→ Forbes: What Trillion-Dollar Deficit In An Era Of Full Employment Looks Like
Wat daar dus extra binnenkomt lijkt het totaal niet in de juiste richting te sturen. Ik neem dus aan dat de invloed om allerhande belastingen — en het overheidsapparaat in het algemeen — terug te schroeven nog veel harder speelt.
De volgende president heeft zo wel heel veel werk voor de boeg...
About x in ['0'..'9'] and CharInSet
2019-11-05 22:42 anticharinset [permalink]
I'm still in the (slow) process of letting go of Delphi 7 and embracing the modern version(s) of Delphi, which to be honest was only possible since there's a community edition (that includes the stand-alone compiler(s)). I was in doubt if I would move over to the
WideChar based default
string, but since Windows internally switched long ago — and you get emoji-support for free — I thought I should switch also and haven't even tried to override the new default and switch
string to be
AnsiString just to keep things the old way. It works remarkably well. Any code that assumes the length of the string is also the number of bytes to move around needs to change, but that's a good opportunity to change them over to operations that use encoding support. With
char that also changes mapping (to
WideChar respectively) any coding use those just keeps working. Except in code like
x in ['0'..'9'] which I apparently use a lot. It works except when compiling it throws this warning:
Warning: W1050 WideChar reduced to byte char in set expressions. Consider using 'CharInSet' function in 'SysUtils' unit.
At first I was baffled. Why is it reduced to a byte char? I know set expressions trigger all kinds of compiler optimizations (that's why I like to use them so much), but has someone been too lazy to make them happen with 16-bit values as well? I guess we're talking assembler jump-lists here, so it probably matters if you can limit them to 256 positions, and 65536 positions would add too much of dead chunks of data into your compiled code... But still.
'0'-style literals should default to
WideChar, shouldn't they? So I regret there was no preference to support code re-use here, and CharInSet which appears to be just a wrapper around the
in syntax, strange.
I don't like warnings and hints. I typically avoid them at all cost, treating them as compile errors. It helps to keep your code clean, and avoids trouble down the line. (But if you're really into avoiding trouble down the line, you should do decent static code analysis...) I'm kind of strict on myself that way. So I need to know what's the best way to avoid this warning. In someone else's code I saw
x in [WideChar('A')..WideChar('Z')] but that doesn't appear to suppress this warning. So I settled on
AnsiChar(x) in ['0'..'9','A'..'F'] which probably calls a Unicode conversion routine, but I don't care enough. Old Delphi understands it, new Delphi no longer throws an error, and as far as I know the compiler optimizations still kick in and I haven't seen any performance loss over code like this. So I can sleep again.
Unless someone throws me a much better alternative and I won't sleep for a week because it feels like I should have known that all along...
Update: over het nieuws
2019-10-31 23:15 qoudnieuws2 [permalink]
Update: Zelfs internationaal denken ze er aan blijkbaar...
En zelfs een grondlegger van blogs en RSS zegt het...
→ Tja, de kranten...
Databases inside Delphi Ecosystem
2019-10-08 22:40 lgdbdelphi [permalink]
→ landgraf.dev: Databases inside Delphi Ecosystem: Webinar
Ugh, ORM? No thank you. I still need to write the full and extensive treatise about why exactly I prefer not to use ORM's, but every time I see something like "Databases in Delphi", and see the content rapidly veers toward heavy pre-moulded data-layers that bind you to things like ORM and REST API's, I regret so many people fall into this trap. Beginners think they're keeping things easy and scalable, but all hit the same wall later up when performance and complexity is letting them down hard, in part because of these basic choices made up front. I think it's very important to educate newcomers about the alternatives. There are downsides to ORM and heavy data-layers that you should know about.
Which I'm planning to address in a specific page "Why I dislike ORM's". One day. When I'm ready. For now I'll just say I'm glad I've stayed clear of them. I've looked beyond what's typically put forward as the only alternative, and went behind any platform, to talk to SQLite, PostgreSQL and MongoDB directly, unhindered. You get something working relatively quickly. It allows me to tap their full potential and have them scale right along with the front-end as it needs to grow to handle a larger volume of requests. I'm not saying it's perfect. This kind of architecture also has its downsides, but it has one big dependency less into the mix.
Feeder: support WordPress API "wp/v2/posts"
2019-09-14 23:40 wpv2posts [permalink]
Is it normal that a WordPress website serves it full "
https://api.w.org/" REST API from the home page (e.g. https://foreignpolicy.com/)?
I just happed to notice
<link rel="https://api.w.org/" href="..."> while I was looking for an RSS url. So I had to have a closer look. It looks like it's open for anyone to POST new posts to
Anyway, I've created support for it in feeder/eater...
PDF-web: tried forms but nought
2019-08-09 18:40 pdfweb [permalink]
A while ago I thought, since modern browsers show you PDF documents conveniently in the same window, could you make links work and have a dynamic webside that serves PDF pages?
But yes ofcourse you can. Then I also recalled it's possible for a PDF document to have form fields you can fill in. I tried, but the PDF viewers in modern browsers don't appear to support those. (Yet? Give me a ring if they ever do and I'll see what I can do.)
Update: Oh, what's this? Looks like they're working on it...
E-mail over HTTP: update
2019-07-19 21:11 jmap [permalink]
→ E-mail over HTTP (2012)
Ofcourse the magnificent people that are already behind the internet (that beefed-up telegraph with funky terminals) have been working silently on exactly this in general, but completely different in the details: RFC8620: JMAP
A PDF website
2019-07-14 00:54 pdfweb [permalink]
Also, in a PDF you can mark text or a rectangle as a hyper-link. So it should be possible to create a dynamic website that uses PDF instead of HTML, right? One way of looking at it is that PostScript in PDF is a way to layout things on your page just like HTML is.
Anyway, I had to see how much of work it would take to make a proof-of-concept. So here it is, it's not much on the dynamic side, but it's a site that opens to a PDF, and links to another page of the same site.
Electrische automobielen: waar gaat dat naartoe?
2019-06-30 12:54 neoelectro [permalink]
Ik schreef al eens over het verschil tussen de electrische wagen en de zelf-rijdende wagen, en dat de hedendaagse nieuwsschrijver die krabbelt om te kunnen bijblijven dat alles riskeert wel eens dooreen te gooien. Vooral nu ze mogelijk op een wel heel gelijkaardige tijdsspanne zullen ontrollen. Recent echter, verwacht ik nu echt wel heel snel een doorbraak in batterijtechnologie die veel gaat veranderen. Hier en daar zie je wel al iets. Als ze zoiets in massa-productie gaan krijgen gaat dat dan "onverwacht" een grote verandering zijn. Maar niet voor mij. En niet voor de toekomst van organisaties zoals Volkswagen. En Volvo. En niet vergeten Tesla.
Wat wel onverwacht zou zijn is als het zelfs helemaal niet met batterijtechnologie zou zijn. Als ik overloop welke manieren ik ken om elektrisch beweging voort te brengen, dan zijn ze allen magnetisch. Vreemd. Zou dat anders kunnen? Na wat rondsnuffelen vind je wel iets, maar niets wat je op het sperdifferentieel van een luxe sedan zou loslaten. Dus hoop ik van harte dat er slimme mensen zijn die daar toch naar op zoek zijn. Stel dat ze twee materialen vinden, of hetzelfde materiaal, als je twee lagen ervan om elkaar legt en onder stroom zet, dat ze zich in één richting van elkaar wegduwen. Als dat betrouwbaar lukt, dan leg je gewoon een hoop van die rollen concentrisch over elkaar en kan je snel hoge snelheden opwekken. Als het met de virtuele paarden-kracht ook snor zit heb je wel iets dat kan werken. Of deze dan in de wiel-kast moeten of niet, laat ik graag aan de ervaren automobiel-onwerper over.