-
Content Count
1237 -
Joined
-
Last visited
-
Days Won
25
Everything posted by David Schwartz
-
Team competition - how to do it
David Schwartz replied to Stano's topic in Algorithms, Data Structures and Class Design
Try explaining it so a 5th grader could understand it. Managing league playoffs is nothing new. It happens for most sports here in America every year. Is what you're doing any different? For instance, are you looking to sovle a single-elimination tournament, double-elimination tournament, or something more complicated? Start with that. Forget the implementation for now. (Yes, I know you're trying to build something, but you haven't explained WHAT yet, and are talking about the building blocks already.) -
The first C++ Standard was passed in 1997 (dated 1998), which was apparently before Herb's time there. The OP seemed to be asking about older versions of C++ from that time period (VB6) There's a very good reason for that -- it's because MS went in a different direction and tried their best to get the C++ Standards committe to embrace it. Talking about that is not "raking over" anything. It's just what's so about C++ back before it was a standard (early 1990's) and MS was still trying to make the world follow their lead. Thankfully the C++ Standards committee was not persuaded by MS' efforts. MS took what they called an "object based" approach, and had this large and gnarly library of macros (MFC) that ran with their C compiler that you needed to use to build apps for Windows at the time. Gates gave some talks at conferences about how "leading edge" their "object-based approach" was and how it would revolutionize programming -- LOL. All it did was drive lots and lots of small consulting companies into bankruptcy because you had to spend $3000 to attend a "certification class" to get full access to their tools allowing you to write stuff for Windows that was "certified". It took about a year to come up to speed, whereupon MS would announce a new version that everybody was again required to pay to learn and use. I avoided it like the plague and focused on embedded systems, most of which used DOS. The thing that made jaws drop at the Delphi introduction event (I was there!) was that Borland demostrated something that basically spat in Bill's face by making the whole Windows Message Loop totally DISAPPEAR! Programmers no longer needed to use that horrid "object-based" macro library with MSVC to write Windows apps. And the coup de grâce was that Delphi let you extend it by writing component libraries IN DELPHI ITSELF rather than requiring a totally different language and compiler, the way VB did (it required you to write its components in MSVC using that ugly macro library). I saw Delphi's introduction as an inflection point in Microsoft's approach to software development. A year after Delphi was introduced, they hired Anders (one of the key Delphi devs) to come in and change their direction by finally embracing real object-oriented programming instead of that stupid "object-based" approach they spent so much time and effort crowing about. Delphi also presented MS with the first serious competitor to their whole MSVC+Macros approach to Windows programming, which is a big reason why Delphi adoption took off so quickly. Curiously, MS stopped requiring people to attend their $3000 training course to get the tools needed to do Windows development. (Delphi was the cheaper option, if you can imagine that!) And in 1997, the C++ Standards Committee passed the first C++ Standard that had NONE of the stuff in it that MS lobbied so long and hard to get.
-
I got Borland's Turbo C++ and then Borland C++ and used them for many years. Microsoft's approach to C++ was very off-putting, to put it politely. They basically drove all of the C compiler vendors out of business except Borland, then put out this stinky POS that they called "C++" but it was really "C with classes". It sucked. They always had to go their own way. Their representative on the C++ standard's committee kept trying to push stuff into the proposal that MS wanted but was really off-base, and I think he finally just stopped participating because of all the flack his proposals attracted. I looked at their C++ platform now and then, and it just made me want to gag. I was getting burned-out on C++ around the time Delphi was introduced, and within 2 years I had switched entirely to Delphi, and I've never really looked back.
-
Sorry, I'm not offended. It's just how I come across sometimes. It's probably the jewish part of my upbringing... 😉 That said, you seem intent on ignoring relevant details that have a direct bearing on the quality of replies you'll get. This is a public forum where participants live all around the world. You'd be a fool to ask a legal question like you did and then give anybody's answer more than a grain of salt worth of credibility, unless someone replies who: (a) lives in the same country you do, or is familar with their laws; and (b) is familiar with the license terms you're referring to. Here's my take on this: you decided to save some money without consulting with a lawyer first, and it cost you what ... 5 times what a Pro license would have cost? Maybe you lucked out and didn't have to pay that yourself, but that's the problem with using "free" stuff -- sometimes it bites you in the ass. I don't really pay close attention to their CE licenses because EMBT seems to tweak them every year and all I hear is a lot of complaining about them. A paid license is a lot cheaper than a lawyer if I get into a squeeze, and I certainly don't need to get jammed-up and forced to pay for the highest-price license they have in lieu of getting sued. My best advice at this point is to suggest you contact a lawyer in your country, show them the license agreement and find out if there are any other surprises you don't know about. And before you come to America, find out if your license allows you to use it for the entire time you'll be here.
-
A "set" in Pascal is a collection of the same types of things where their value reflects a position in the set, meaning they can be expressed as ordinal values between 0 and the upper limit of members the compiler allows. If you want to use objects then their ordinal values can easily correspond to their memory location cast as an integer, which would be a 32- or 64-bit value, and the set itself would take up far more than available memory. Alternatively, the values could be hashed to result in a smaller container. But there's also this data structure called a "bag" which is an unordered collection of related things where you're only interested in whether something is "in the bag" or not. That's how databases tend to be organized, and indices are used to make tests for inclusion go much faster. In Pascal, a "set" is tightly correlated with its implementation, where members have ordinal values corresponding to unique bits in the allocated space. The compiler manages those values, in contrast to the values of object locations in memory, which are highly random. Look, I didn't invent any of this. I rarely use "sets" in Pascal because of this inherent limitation. I work mostly with objects, and you cannot put an object into a Pascal "set" nor test for its presence. But from a theoretical viewpoint, EVERYTHING is a "set" in my mind, which really doesn't resolve anything from a programming standpoint.
-
Sending email by Delphi Sydney on windows 7
David Schwartz replied to NBilov's topic in Network, Cloud and Web
The first thing that comes to my mind is ... did you copy the proper / latest SSL lib DLLs onto your system? They are not distributed with Delphi. I've got 10.4.2 and I had problems with something that were solved by downloading the latest SSL DLLs.- 10 replies
-
Why Should a C-Sharper Learn Delphi?
David Schwartz replied to Qasim Shahzad's topic in General Help
I'd have a hard time justifying to anybody that there's a clear benefit in learning Delphi just for Delphi's sake, unless you just want to broaden your language horizons. There are very few Delphi jobs around, and most of them seem to be to help maintain legacy platforms or keep a system running while another team is migrating it to something else. And the language itself is several years behind where others are today. Consider a sligtly different perspective.... How about also adding TMS WEB Core into the mix and say, "Here's a very simple and easy way to write WEB APPs that runs pretty much EVERYWHERE!" And, oh, BTW, you can also build native apps for several platforms that use common (FMX) or even native components if you like. That is, give them a reason to learn this platform that's not nearly as easy elsewhere. (I guess it begs the question of whether Delphi + WEB Core is unique enough to justify learning it on its own merits, or if it's just a way for old Delphi geeks to slide into a new application domain with minimal effort.) Unlike IntraWeb (which has been around for over a decade), TMS WEB Core does not depend on a server or special run-time to make it work. It runs inside of the web browser because it's transpiled to javascript. That said, you'll probably need to also build some kind of REST service to provide back-end support for your app, and Delphi has several out-of-the-box solutions for that as well (not to mention, TMS has XData). While you can use a bunch of common Delphi components (two different libraries TMS offers, both based on VCL components), you can also work entirely within the wider HTML/CSS/JS world and leverage any number of existing JS libs. Moreover, you don't even need to use the Delphi IDE! But the code you write is 100% Object Pascal that, with a bit of care, can be compiled and run as a normal Delphi program in Windows. There is another benefit for C-Sharper's: the same guy wrote both platforms, and they're very similar, so the learning curve won't be very difficult.- 14 replies
-
I'm unclear why you keep thinking of it like a Set. In my mind, it's just a collection (bag) of objects and you want to know if a given object is in it or not. If so, you get back True. If not, you get back False. If the semantics are that you don't want dups, then you only add to the bag after you get back False from a test for inclusion. In the DB world, I've seen lots of times when someone creates a method like, "AddOrUpdateWidget( aWidget : TWidget )" that subsumes the test to see if the widget is already there or not.
-
generics Destructor of Object in TObjectList<k,v> never gets called despite doOwnsValues
David Schwartz replied to omnibrain's topic in Algorithms, Data Structures and Class Design
Some of us would notice this immediately because we make a concerted effort to minimize Hints and Warnings that the compiler produces. But for those who aren't so inclined, it's just another bit of noise to be ignored. -
The only thing "misleading and meaningless" is your ASSUMPTION that everybody who visits this site is subject to the same laws and agreements YOU are. The only things that everybody who visits this site is affected by universally are EMBT's terms stated in their CE license. And THOSE are even controlled to a certain extent by local laws. Two things control YOUR SPECIFIC situation: (1) YOUR employment contract; and (2) the laws in effect in the jurisdiction where YOU live. It's very unlikely that any two visitors to this site are subject to the same legal terms in that respect. So telling someone else that you think what they say is "misleading and meaningless" is totally inappropriate. Are you a lawyer giving out legal advice? You have not even said what country you live in, or what State if you're in America! How do you know what applies to the rest of us? I can tell you that the Non-Compete / Non-Disclosure Agreements companies present to workers in Arizona are very different from those presented to workers in California, because California imposes much stricter controls on what companies there can demand of their employees versus Arizona. Yet most programmers I know here in AZ haven't got a clue. Most employment agreements presented to workers in AZ would be found unenforceable in California. And they DO usually say that whatever you do 24/7/365 while working for them BELONGS TO THEM by default. So what happens when you get a contract to work for a California company at an AZ location and they present you with an employment agreement that would be unenforceable in California? Most programmers simply sign them -- and if you're dumb enough to sign it, then it IS enforceable IN ARIZONA! I just say I'll be happy to sign the paperwork they give to workers in California, and they say, "Ok" and send me different paperwork. You're basically asking people who live in different places around the world to comment on a situation you're in without providng a reference point. And you're then asserting that replies you get are wrong. REALLY? This isn't about EMBT's CE license or open-source software. You haven't given people enough details to know if it's got more to do with your specific employment situation, which may well be the controlling factor here. The truth is, from what you've said, YOU DON'T KNOW! You're just GUESSING that it's related to the CE License Terms. I have had employment agreements as well as contracts presented to me that would get me fired if what you described happened to me. It's NOT A JOKE. It might be "misleading and meaningless" to you, but not to everybody in the whole world. It's inappropriate for you to simply shrug it off as if your situation applies universally to everybody here. Or that it's just EMBT's CE License Terms.
-
Hiring process...
David Schwartz replied to Rick_Delphi's topic in Job Opportunities / Coder for Hire
A lot of these things seem to have the net result of converting things back to a centralized administration. The "PC Revolution" decentralized the computing systems and put a PC on everybody's desk. But now there's an IT Dept that manages everything on those computers. Other groups are getting their fingers into the processes they're being used for, including software development, bug tracking, and document production. Software development has lost a lot of what used to make it fun. Agile has been a big contributor to that. CMMI doesn't say what processes to follow, only that an organization needs to lay out some processes and move the organization in a direction that they are always followed, mostly for the purpose of taking individual decision making out of the hands of developers and putting them on some kind of committee or automated process manager. One place I worked was moving towards CMMI Level 3, and part of their process model said that any changes to source code had to be traceable back to a work order or bug ticket, and we couldn't check in any code that didn't have that. Another aspect of their process model said that although the Dev Team owned the Agile ticket backlog, we weren't allowed to put anything into it. In fact, we could not post bug tickets at all -- only the customer can do that, and each bug ticket had to be accompanied by detailed instructions that allowed us to reproduce the errors. Which is fine as long as you don't have bugs in the system that cause random errors that cannot be reproduced because they're data-sensitive; they cannot be touched by anybody for any reason, even if we found and documented some along with how to fix them. (I'm speaking from experience.) It's not as much fun any more. -
I'm looking for something like SimpleNote that also has an API. https://simplenote.com On the surface, this looks very similar to the Apple Notes app that's found on most (if not all) Apple products. I don't really care what it looks like, what interests me is that it lets you capture some notes on one device and it will reflect them to all of your other devices automatically. Like how Dropbox copies files you put into it on one device and puts them onto other devices. This project apparently started out around 2010 and was purchased by Automattic (the Wordpress guys) a few years later. They built an API and open-sourced it. But they never open-sourced the core parts. The problem is, they have stopped issuing API keys and aren't responding to emails. I want something that I can put into a web app that lets you take some notes during a "session", hit a "Save" button, and it automatically reflects that "session note" to your other devices with some other notations added by the app. I'd like something light-weight that preferably doesn't require a central server or DB. If you look at the list of things this uses, it seems to employ MQTT to send an alert to other devices related to yours and I'm guessing they request a copy of the data. It would be ideal if I could get hold of these guys and find out how to use their API to send notes to their app, but it's not clear if that's even possible -- ie, they API is for building your own app on top of their engine, not interacting with the SimpleNotes app itself. I don't know; the API doc doesn't mention the SN app, and I can't reach anybody there. So I'm curious if anybody here knows of something similar to SimpleNote with an API that I could use. Worst case, I'll use a DB in the cloud and build an app that does this, but I'd rather just extend something that already exists, like this SimpleNotes app. Any ideas?
-
Something like SimpleNote with an API?
David Schwartz replied to David Schwartz's topic in General Help
Well, sort of. I'm building a web app using TMS WEB Core, and it runs in the web browser. I noticed that on my phone there's a way to "share" something. So I'm able to write a text message, say, and then "share" it with SimpleNote. I guess it launches SN (or Notes, or whatever) and lets me create a new note with the contents of that text message. I checked and WEB Core seems to have a TWebShare component that lets you access that feature if it exists on a platform. It's not quite what I was hoping for. I'm still considering alternatives, like letting the user choose what to do when they hit the [Save] button, like sending an email or text message or doing some kind of "share" with another app. Or maybe I'll just build a version of SimpleNote. Who knows. I haven't decided which way to go yet. But folks here seem to think that the more friction your users encounter, the more they're gonna LOVE your app.... -
QUESTION: at your work, does your employer have ANY registered versions of Delphi? I'm guessing they DO, because otherwise EMBT would have no way of knowing you work for them. My opinion is because of THAT and because you used your PERSONAL computer for PERSONAL work and connected to YOUR EMPLOYER'S NETWORK ... you basically waved a big red flag in front of anybody who might be watching. If you read your employment agreement, there's a very good chance that says anything you work on using COMPANY RESOURCES BELONGS TO THE COMPANY. In many states in America, this is part of a "non-compete agreement" and laws have been enacted that say if you work on something OUTSIDE of work, using YOUR OWN RESOURCES, on YOUR OWN TIME, then the fruits of your labors are YOURS and your employer has no claims on them. Otherwise, they belong to the company. But MOST states aren't that enlightened -- their non-compete agreements say that ANYTHING YOU WORK ON 24/7/365 BELONGS TO THEM! So all EMBT needed to do was ask whether your non-compete agreement says that whatever you work on using any of their resources belongs to THEM or not. If so, you basically put your employer into their crosshairs from a legal standpoint. You used the CE version to write software that may have belonged to your employer right from the outset. Do you understand that? Because by your admission, you DID use some COMPANY RESOURCES -- their INTERNET. And even though say you were "at lunch", it seems YOU WERE PHYSICALLY DOING THIS AT WORK (because you were connected to their internet), which can be construed to be "on company time" -- being "on break" is still tracked by the company while you're at work. If, instead, you went to a local restaurant and accessed THEIR network, or used your phone as a WiFi Hotspot, there's not much room for anybody to claim your employer is in any way involved -- unless your non-compete agreement says that ANYTHING you work on IS THEIRS. The CE license DOES allow you to distribute programs compiled with the CE edition, right? For free or for a fee, right? So that's not the issue. The issue is, what if your employer might be using it? Personally, I'd say you'd be skating on thin ice with that one, because maybe your employer has not renewed their maintenance agreement in years and is not interested in doing so. But if you build stuff "on your own" that actually is of benefit to your employer (and may actually belong to them), I'd say that's a very fishy situation and hard to defend. Sure, it's one thing if the company makes widgets and your app is for taking notes; you can argue, "So what?" But EMBT can argue that they might have had some role in encouraging you to do this to save them the license fee, right? Which may be why they paid for your Architect license -- because EMBT had threatened THEM with a much bigger lawsuit. They may have had no knowledge of your efforts, but ... how did they end up using the app you created??? See, that's the fishy part to me. Your actions might have been innocent, but there's just too much overlap between your actions, and who benefitted from them. You used company resources and they got a direct benefit by using your creation. That's really what it boils down to as far as I can tell. And you're probably lucky you didn't get fired. I have worked plenty of places and worked on my own stuff independently, but that's the key -- INDEPENDENTLY. Meaning NOT AT WORK, NOT USING ANY COMPANY RESOURCES, and certainly NOT USING MY SOFTWARE AT PLACES WHERE I WORK. I don't know why people here are making up so much nonsense about this. EMBT wants the CE version to be used by people at home and at school to learn to build programs with Delphi. There are TONS of people who build lots open-source and free stuff and never make a dime from it. Maybe the company you work for does. But if you get paid as a programmer, and you use the CE edition "at work, using company resources", I'd say there's about a 95% chance you and your employer are going to get found out, no matter how innocent you think your actions might be. To avoid that, talk with your boss, your IT manager (whomever manages your software licenses), and go over your employment agreement to find out what the exact requirements are for you to be able to work on your own projects at home independently from work. You might have to negotiate a separate non-compete agreement and/or disclose what you are or plan to be working on outside of work. And whatever you do, do NOT do it using ANY of your employer's resources -- like, don't even sit in your car in their parking lot at lunch time or park nearby at night after work just to use their internet! At the end of the day, this is not really about the CE license at all, but about keeping your personal life outside of work completely separate from your employer, their time, resources, and whatever your non-compete agreement says about this stuff. Consider that the reason they have that $5000 earnings limit is they WANT you to make money with it! Because if you do, you'll probably want to make even MORE with it. And to do that, you can use SOME of your earnings to BUY A LICENSE, which removes the earnings cap and lets you make as much as you want.
-
Hiring process...
David Schwartz replied to Rick_Delphi's topic in Job Opportunities / Coder for Hire
Is it just me, or do all job postings look the same these days? I find that one thing missing in most of them is any mention of the application domain or what's involved. Every one says the incumbent candidate will be able to take requirements and fix existing code or write new code. Most Delphi job reqs say something about being able to read and translate Delphi code to C#/.NET but never say they're porting the application. Virtually all of them mention SQL, SQL Server, "modern DB components" and whatnot, but don't usually say if there's a separate team that is responsible for working up ALL SQL queries and stored procs and devs aren't allowed to touch them (which has been the case with the past 5 gigs I've had). Then they lay out some behavioral things that they think apply to a "rock star" and hope applicants meet them. If the ads didn't mention Delphi at the top or say they were looking for programmers, it would be hard to tell other than from buzz words used in the job description. -
Consider that the ordinal value of any specific character is given by the position of the character in the ASCII table, which is why I posted a link to it. Seems the OP didn't even notice it. Instead, we ended up with a senseless debate about ordinal values of characters versus strings. smh. According to the ASCII table, the ordinal (decimal) value of the character '0' (zero) is given as: Ord('0') = 48. You can see this if you display the result of: Format( 'Ord(''0'') = %d', [Ord('0')] ); since Ord() returns an integer value, and this displays it as a decimal number. The ordinal value of the character '9' is: Ord('9') = 57. However, while the next Hex digit is 'A' (or 'a'), the character following '9' is Chr(58) which = ':' (colon). In practice, Hex digits are not case sensitive, so the hex value of 'a' is the same as the hex value of 'A', both of which correspond to the decimal value of 10 (ten). However, Ord('A') = 65 while Ord('a') = 97. Ord('9') is 57 while Ord('A') = 65. So the ordinal values of the 16 ASCII characters that are used to represent Hex digits is not a continuous array of 16 values from: it goes from Ord('0') = 48 to Ord('F') = 70. The range between those two ends is 22, not 16. And if you use lower-case 'a'..'f' then the difference is Ord('a') - Ord('A'), or the entire range defined as [48 .. 102], again far more than 16 elements. The ordinal value of a string is undefined. So Ord( '0000' ) is an error, neither zero nor 48. Never mind that these are actually BINARY representations (0 or 1), and to the compiler they're just 4-character strings. You have to parse the digits in each position of a Hex number the same way as you do decimal numbers, except you need to multiply each successive position by a power of 16 rather than 10. Simple arrays that serve as lookup tables work for decimal numbers only because the digits zero through nine are contiguous in the ASCII table, and you can simply subtract Ord('0') from the ordinal value of the number you're dealing with to get its actual decimal value. The range of hex characters is NOT contiguous with the ten decimal numbers, and in fact is different based on whether the given hex digit is in upper- or lower-case. So you cannot use simple lookup tables to do this thinking that a range of 16 characters is going to work in all cases. It will work for the ten decimal characters, but NONE of the hex characters. And certainly not for strings expressed as 4-character BINARY (0 + 1) versions of hex digits!
-
What may happen, if uncomplete, unclear advices found ...
David Schwartz replied to Rollo62's topic in Network, Cloud and Web
A lot of people today don't realize that the original TCP/IP protocols that most of the internet was built upon were designed by DARPA with the explicit design goal of having no single points of failure in order to survive multiple nuclear explosions in locations that would very likely house major data hubs. They were not concerned with hackers and spoofers and people who had neferious goals focused on hijacking user information and using it for illicit purposes. In fact, they never really imagned their possible existence. It would have been nice if they had. The entire internet was based on a world-wide web of store-and-forward nodes connected by temporary circuits (eg, dial-up wire-lines at the time) that were neither permanent nor hard-wired. That was a "feature" baked into it for the purpose of surviving a nuclear holocaust. In fact, ham radio operators at the time were the first to come up with wireless transmission between nodes. This isn't me saying this, it's DARPA and the people who designed the first four layers of the original 7-layer networking model: physical, data-link, transport, and networking layers. Now, correct me if I'm wrong, but it seems that some political bodies in certain parts of the world want to stick their heads in the sand and pretend that this entire design is a mischaracterization, that the risks posed to user data carried on this network are unacceptable, and therefore the people who originate the data should be held liable for "bad actors" snagging the data in between its initial transmission and when it arrives at its destination, as if everything that's sent out is sent on a dedicated, highly reliable and hard-wired circuit having end-to-end security with no possible means of anybody intercepting the data in between. While that maybe the "ideal" scenario, it's far from current reality. The way the internet is designed is completly contrary to such a model and is unworkable -- neither in the face of a nuclear holocaust nor of modern-day data pirates and attackers. This is true regardless of my personal presence on this planet, or whatever my opinions might be. Don't waste your time attacking the messenger! I had no part in either side of this mess. I just work with it. -
What may happen, if uncomplete, unclear advices found ...
David Schwartz replied to Rollo62's topic in Network, Cloud and Web
Maybe these countries should just go back to mandating dial-up access directly between computers in order to ensure the most secure connections. Oh, wait ... the phone systems aren't even secure. Sorry, I totally miss the point. Maybe someone can explain to me what makes up a 100% secure data circuit, including caching of various time durations up to years, that everybody in the world could use and is not cost-prohibitive. We can proceed from there. -
Ahh, the joy of learning to sniff out syntax errors ... Line numbers on the code would make this easier for people here to look at, but there are a few lines of code that look really fishy to me. One thing is to ask yourself what these two declarations REALLY mean -- they do NOT mean what you think. hexToBinary: array['0'..'F'] of string = Here's an ASCII table. Count up how many characters are between '0' and 'F' https://www.ascii-code.com And I have no idea how the compiler might be treating this if it's not raising any sort of warnings or errors... binaryToHex: array['0000'..'1111'] of Char =
-
How can I read body of the TRESTRequest?
David Schwartz replied to Magno's topic in Network, Cloud and Web
Have you played with the REST Debugger? I mean ... your use-case is exactly what it was designed to help with. -
What may happen, if uncomplete, unclear advices found ...
David Schwartz replied to Rollo62's topic in Network, Cloud and Web
Keep in mind that data moving over the internet rarely goes directly from the source to the destination; most of the time, it goes through a more-or-less unpredictable route that necessarily involves store-and-forward nodes that could be located pretty much anywhere in the world. In other words, that's exactly how the internet works already. Because of this unpredictability, static caches for data, and perhaps some logical processing, have been set up as nodes in CDNs that help reduce virtual end-to-end delivery times. They are invisible to the source, and only come into play when a user somewhere makes a request of a site and there's a CDN that has cached the data and can provide a shorter delivery time. Why would the originators of said data (wherever they may be located around the globe) be held liable for local laws in every possible legal jurisdiction where their data might travel, and take an occasional break, on its way to any given consumer? In the absence of CDNs, the data likely goes through MORE servers, that represent MORE sources of risk, and MORE likelihood of violating data protection laws. The difference is that the routing is less predictable (increasing risk) and is invisible to local governments unless they regularly demand that private companies cough up their server logs for analysis -- which I'm guessing is also illegal. So I'm baffled by whatever point you're trying to make because it sounds like CDNs are seen as higher risk than how the internet works nornally, which is fairly random. Also, I'm guessing you're located in Europe, since you mentioned that, and I'm curious how many of your "own server spaces" you have here in America and other countries you serve, "instead of an external CDN in order to minimize access to external servers and perhaps even get better performance." -
How can I allocate memory without raising exceptions ?
David Schwartz replied to Marus's topic in General Help
Simple -- build your own memory manager, allocate a big chunk of memory to it, then carve out pieces for your strings. Just be forewarned that as you allocate and free blocks of space, you're going to end up with something called "internal fragmentation" that will ultimately limit the maximum size of strings you can allocate. To fix that, you'll need to build what's called a "garbage collector" that runs periodically to move strings around and compress out the unused blocks in between the blocks that are still being used. But the more blocks that have been allocated and are still being used, then the fewer available free blocks you have. Your program will end up spending more and more time doing garbage collection. And when you get to the point where there simply isn't enough space to allocate a new string ... what exactly do you propose to do? Just send back a False flag and pretend the request wasn't made? -
Something like SimpleNote with an API?
David Schwartz replied to David Schwartz's topic in General Help
This is crazy ... I have a car and I want to put a radio in it. You're saying, "instead of a car, just get a radio and walk." Most others are saying, "Instead of a radio, why not install a whole radio station in the car and ... be your own DJ ... while you're driving." Why is it so hard to get people to answer questions that are asked rather than first reinterpreting the questions and then offering an answer to their own interpretation? CLIENT: I'm thinking about setting up a blog to publish some poetry online, what do you recommend? DELPHI PROGRAMMER 1: if you like writing, just use Word. DELPHI PROGRAMMER 2: Blogs are nice, but you're really better off making videos. Then you can monetize them on YouTube. DELPHI PROGRAMMER 3: Microsoft has this thing called SharePoint that's great for writing stuff that you can share with your co-workers. DELPHI PROGRAMMER 4: I hate blogs. Why not just publish your poems in a book? DELPHI PROGRAMMER 5: Instead of poetry, you could go with SciFi. Trekkies would eat it up. -
Something like SimpleNote with an API?
David Schwartz replied to David Schwartz's topic in General Help
Is this light-weight enough that MQTT would be safe to use as the transport mechanism? There are public MQTT servers available that could be used. I don't know how secure they are, but they might be sufficient to send notes of up to, say, 1000 words, sent as a compressed data stream. Does anybody have any experience with MQTT? -
Create Class at run time with an AncestorClass and a ClassName
David Schwartz replied to Robert Gilland's topic in RTL and Delphi Object Pascal
Well, there ya go! I hope it's helful.