I updated the SSL certificate ahead of the March 15 deadline, and at the same time updated the server's (unsupported) Linux distribution to a less outdated version. The latter may have broken some things, although Linux server updates are generally painless.
If anything looks to have broken, let me know here. I'll check back next year.
I'll check back next year.
Oh YOUuuuuu.
Ohhhhh yeaaaah
If anything looks to have broken, let me know here. I'll check back next year. 
Now you will have to get the 'thread locks too soon' team to keep this thread alive for 12 months on the off-chance that ML will reply
Sure, this shall be the backup thread.
We have our own ways to stick and keep alive a thread.
Not another one...
Many thanks for the life sign in any case. kthxbye.
Now you will have to get the 'thread locks too soon' team to keep this thread alive for 12 months on the off-chance that ML will reply 
There can only be one.
Bad topic , edited
I'll check back next year.
Hopefully we can keep this thread going until such a time.
You guys had better post regularly if you want this thread to last an entire year!
Two threads to keep going now... the work load just doubled.
We haven't gotten off the rails enough to have an interesting topic form here yet.
We haven't gotten off the rails enough to have an interesting topic form here yet.
I'll start...
A few years ago, I wrote a blog-centered CMS in PHP and have used it to power my site ever since. The setup works well enough, but lately I've been feeling like stepping away from the overhead of PHP and MySQL to instead pursue static pages for their simplicity. Of course, managing many static pages would be a chore, so I began reworking my CMS yesterday to work as a static site generator instead.
I wanted it to be simple but flexible. The idea was to create some templates, then create content files that get "compiled" into the templates to make the static pages. I began using JSON to represent data out of convenience, but surprisingly, JSON apparently doesn't support multi-line strings! So I began using YAML instead. YAML, like JSON, is super simple to use, but YAML is even more flexible than JSON, and supports multi-line strings! 
So my original CMS had these custom "tags". Basically, you would create a tag in a database by giving it a name and a value. You could then drop a reference to that tag in a blog post or whatever, and it would be replaced by the value of the tag. So for example, you could have a tag named "favorite_color" and set it to "blue", then drop it wherever you wanted it to appear. A better example would be in a footer or navigation bar; create the tag, give it a value, then put it where you want it. Then, any time you want to update the footer or navigation bar, you'd just update the value of the tag, and it'd be automagically updated on every page that uses it. My CMS used dozens of those.
I've created a simple version of that for my static site generator. So you could have a template that includes a reference for the page title, body, description, and so on, and then the system would replace those values when generating the static content.
Here's what a very basic template file might look like:
The tag references are between "{%%}". So "{%page_title%}" refers to a tag called "page_title". The references get filled in when the site gets "compiled".
So then you'd have a source file (written in YAML) like so:
When "compiled", the output might look like this:
Because the system is dynamic, I can add as many tags as I want, and the system would generate them for me. You can even have tags nested inside tags nested inside tags! This system allows me to easily create templates, manage data to go inside those templates, and then generates all the files I need to then move to a static host. So it's basically a templating system. I'm quite happy with it so far. 
But get this... I was doing some research on static site generators an hour or so ago when I learned about "Jekyll". Jekyll is apparently a well-known static site generator written in Ruby, and it already accomplishes the things I set out to do!
I'm going to continue working on my own though, just for fun. 
Have any of you created static site/content generators before? If so, do you have any tips to share?
I didn't really get to the point of server-side hosting because I could never settle on a technology. My day job forever has been programming ASP/VBScript (years ago) or ASP.NET/C#, but I despise Microsoft platforms and also find .NET Web applications overly complex, slow, and painful.
For my own stuff I wanted to run on a Linux platform and use cooler technologies. I wanted to avoid PHP because despite getting the job done it's pretty inconsistent and ugly and there are hipper languages out there.
My first preference was Perl because I was learning it anyway. What originally attracted me to Perl is that it scared a lot of people away, similar to C, so it was somewhat of a personal challenge to learn it and not be afraid of it. In practice, it's a pretty neat language, though similar to C or C++ it can certainly be evil.
The main hurdle then is figuring out a Web server technology to use. A typical solution is Apache with some kind of module for the application server technology. However, Apache is kind of a pain to configure for a beginner, and despite setting up a simple server a few times I never spent enough time at it to be comfortable with it. The Apache module for Perl is also not really recommended within the Perl community because it's not an ideal interface. That pretty much holds for any of the generic Web servers that can be extended.
Instead, you're recommended to develop the application with a PSGI interface (a Perl-based API akin to WSGI) and then run it on a compatible server. Plack is the reference implementation of a pure PSGI server. This is all well and good, but it's all just more and more work to learn. Ultimately, the hurdle is that there aren't very many people doing this these days. Perl is quickly falling out of popularity so it becomes that much more difficult to get help with edge cases if you don't have the luxury to develop it for a living.
Another avenue I've explored is using Python and Django instead. I have only gotten so far as completing the Django tutorial, but it's amazing how easy it all is. I haven't gotten so far as setting up a "production" configuration to run a site yet. And again, because I don't get to develop it all day every day it's difficult not to forget about it between sessions.
If you have the luxury to be employed working with the tools you like to work with during personal hours then you should consider yourself lucky. That alone will make you infinitely more productive than having to learn entirely new things.
All that said, while not exactly a static site generator, my Web site was developed as XSLT/XML. It's rudimentary, and I barely understand XSLT, but basically I developed a master XSLT template that is basically the core HTML document, and then defined an XML document format that describes the content of the individual pages. In general you could define a heading and a series of "entries" which would be presented as bubbles of titled content.
The actual entry content itself is mostly XHTML. It has basically negligible capabilities in terms of generating dynamic content by itself. It really needs an application server technology on top of it to achieve some things. However, it does a good enough job of allowing me to keep pages consistently styled and laid out and keeping the actual content documents pretty purely about content. And all without leaving XML. 
Decent browsers are able to download the XSLT document and do the transformation themselves (since this stuff has been standardized for 2 decades), but the usual shit browsers don't so as a fallback I can use xsltproc(1) to do the transformation on the server instead and then just publish the resulting HTML documents. I originally published both the XML/XSLT source and the HTML. It has since been moved to a few different servers with varying degrees of GAF, but it appears that the current configuration still has both. about.html and about.xml should be identical in a decent browser (assuming the HTML is synchronized with the XML), but if you view the source you'll see the difference.
I had planned to expand upon this with server-side programming to make a fully functioning CMS, but I haven't found the time to do it. The site was first developed in 2009 so in 9 years I haven't found the time or motivation to add the server-side solution. In reality, the content of the page also hasn't changed much in those 9 years which is probably why I haven't bothered to further develop the site. I still don't really have anything interesting to publish there.
Most of my programming is done at work on proprietary software using technology that I'm only half-enthusiastic to use (C# is great, but Windows, IIS, ASP.NET, and various other related technologies have a lot of frustrating weaknesses and limitations and pain points). I have blogged a few times about specific problems I've solved, but I did so on a separate blog site because I intended my Web site to become a company site eventually. I haven't yet figured out how to start a company and make it successful so the Web site remains a sort of placeholder..
Django is the devil. It's huge. To get a tiny webpage you have to do all this stuff and basically "let django make your app" and you're just responding to it. It's like they take away the "main()".
I never got anything but the simplest tutorials to work and then I wondered if I would ever have a webpage that would need such a huge, imposing API/workflow just to get data on the screen.
I wanted to avoid PHP because despite getting the job done it's pretty inconsistent and ugly and there are hipper languages out there.
Yeah, PHP isn't pretty, and it's riddled with inconsistencies (was this function needle haystack, or haystack needle? Ugh, off to the docs again...), but it certainly gets the job done. A lot of people refuse to use PHP because it's a "terrible language", but the way I see it is that you should use whatever best suits your use case. 
For example, I was once going to learn Ruby, but then I figured it wouldn't offer me anything that PHP doesn't already, so I just stuck with PHP.
But recently I've been looking at Node. The thought of using JavaScript on the server is terrifying. 
about.html [castopulence.org] and about.xml [castopulence.org] should be identical in a decent browser (assuming the HTML is synchronized with the XML), but if you view the source you'll see the difference.
The HTML version is missing the "News" link in the navigation area.
I don't see many sites using XML these days. For static content, most use HTML, and for data serialization, most use JSON. Heck, I don't even see RSS much these days either (does anyone still use RSS/Atom readers?). It's neat to see you using XML though. 
I have blogged a few times about specific problems I've solved, but I did so on a separate blog site because I intended my Web site to become a company site eventually.
You should start up bambams.ca again. You've already paid for the domain name after all.
The HTML version is missing the "News" link in the navigation area. 
Very astute of you to notice.
I think that I intended to remove the "News" page because ... there isn't any. However, I must not have updated the HTML afterward.
I don't see many sites using XML these days. For static content, most use HTML, and for data serialization, most use JSON.
XML is not a very ideal format. It's very verbose, barely human readable if formatted properly, and hasn't lived up to the promises. It's also somewhat more difficult to process. That said, it's standardized and well supported on the Web. Often HTML is really XHTML. I think that it still makes great sense to use well-formed documents and require that. It simplifies the parsers and guarantees that the result is well-defined. Whenever I write HTML I write well-formed XML.
One of the things that killed XML/XSLT is certainly popular browsers failing to support it. As a Web developer you obviously can't adopt a new technology that won't work on a significant portion of the clients' machines. The other side of it I think is that people are lazy and incompetent. XML is strict, and a lot of people don't like having to be precise. That's really unfortunate.
However, XML really does a poor job of solving many problems so it's not all bad news that it hasn't been adopted very strongly. It's a good tool for some jobs, but it's horrible for many jobs too. The only unfortunate thing is that Web standards haven't really replaced it with anything better. HTML has all of the same downfalls of XML and then some, but is at least more compatible with the lazy and incompetent Web designers and developers.
Another point is that when XML is used it's usually abused. It's almost never validated, which is one of the strengths of using XML in the first place. You can validate that the entire structure is correct and matches the spec. If you don't do that you basically are ignoring all of the metadata which is a lot of the verbose weight, making all that extra effort completely wasted. Then you might as well use something like JSON or YAML that trims most of the fat/metadata and just specifies content and structure.
JSON and YAML are indeed superior for most purposes, but XML still would be useful for validation of documents. I'm not familiar with validation technologies for JSON or YAML, but there's probably no reason they can't be defined too (except that there's less metadata in raw JSON so unless the JSON itself is going to store the metadata your validation would be quite limited).
Heck, I don't even see RSS much these days either (does anyone still use RSS/Atom readers?).
Sadly RSS/Atom seemed to suddenly die off. I blame social media. I was slow to adopt it, but I was really enjoying it for a while. And then content producers just stopped supporting it. I'm sure it wasn't perfect, but they didn't seem to replace it with anything either. That's the real shame.
You should start up bambams.ca again. You've already paid for the domain name after all. 
That site is still up.
It's hosted by Blogger. It's not a perfect platform by any stretch, at least for my tastes, but it gets the job adequately done now without me having to maintain it much.
That said, I haven't had much to post on it for a while. To some extent it's because I'm just exhausted from the stresses of work, but also my day job hasn't been very interesting for a while. It has become pretty menial. If any topics come up I'd still like to write about them, but nothing has stood out to me as a good topic for blog posting lately. Feel free to suggest topics. 
Append:
I just went back and followed ML's link in the OP. It's amazing to me that a pretty major certificate authority has been so incompetent and presumably for so long. It makes you question the security of the entire Web. It probably should cause the Web to suddenly halt and review security, but the impact on businesses and users would be so huge that they "can't" so instead they'd probably just allow things to continue being insecure to avoid "spoiling the golden egg" (that expression makes no sense, but I can't think of the correct one).
Funny, the HTML I use on my static page is ancient. Some day I will get up to date. But what I have works and I hate messing with what works. 
I am thinking of totally redoing it, so perhaps I will take the time to learn something more modern? <shrug>
My advice is don't bother trying to learn something more modern for Web development unless you have a goal in mind. You're probably better off devoting that time to game development since that clearly interests you and is also far more useful to the world.
All a Web site really needs is to function properly, which requires trivial HTML not much more than plain-text. Unless Web development interests you (it doesn't even interest most people stuck doing it!) there's no point wasting time on it.
Stick to what interests you. If you ever have a work that is so huge that it's worth having a flashy Web site you'll be able to afford to pay some drone to make it flashy for you.
If any topics come up I'd still like to write about them, but nothing has stood out to me as a good topic for blog posting lately. Feel free to suggest topics.
I'd be willing to check out whatever you post. But by no means should you tailor your content to me.
It's late (early?) and I can't think of any suggestions at this moment though.
"spoiling the golden egg" (that expression makes no sense, but I can't think of the correct one)
I think you mean to say: "Don't bruise the broccoli that birthed you"...? Don't worry, I knew what you meant.
I don't have much to say on the matter. The Web is a bunch of protocols--some good, lots bad--and once it's out there, it's tough (or impossible) to undo.
Funny, the HTML I use on my static page is ancient. Some day I will get up to date.
Ask yourself it is worth your time and effort to update it. As it currently stands, your site works, so it does not necessarily need to be updated. That being said, if you do go about updating it, that might prove to be an enjoyable (or frustrating) experience.
At most, you would just need some basic text and image formatting--nothing too fancy. HTML5 and CSS3 are really a breeze once you get the hang of it (I think they are easier than older versions).
Feel free to shoot me a message if you need any help. I got started with computer languages with the Web, so it's like my first love.
I should probably blog about the Tetris clone I was working on. It's just a little embarrassing how bad I am at game dev.
But my maths disappeared quickly after high school. My current problem is just memory leakage. I'm not able to figure out if it's leaking mostly in drivers and such or if my program is the culprit. I think a bit of both. Unfortunately I didn't think to check memory leakage until an obscure bug appeared. Now the program is sufficiently complex that it's difficult to figure out how the leak occurs (if at all). Blogging about it might give me some motivation to continue trying to fix it, and might also attract some attention to find the problem.
I should probably blog about the Tetris clone I was working on.
I started work on something similar, back in... 2004?
... never did finish it, but there is a playable version on my site, in the programming section at the bottom. Created with Allegro 4 at the time. It's a version that is similar to an Amiga game I used to play, as you make lines, it reveals a little bit of a picture in the background. Each level is complete when you reveal the entire image.
I should probably blog about the Tetris clone I was working on.
I'd be interested in reading about that. 
It's just a little embarrassing how bad I am at game dev.
You don't have to be particularly good, you just have to come up with a neat gimmick or idea. Just make-up something crazy. It doesn't even have to make sense. I'll give it a go: make a game about baby chickens who who have accidentally consumed explosive ball bearings. They are too stuffed to move, so you must use a large magnet to move them back into their pen. However, if a chick touches another chick, it'll explode, so you have to be careful! Call it "Chick Magnet". 
as you make lines, it reveals a little bit of a picture in the background
{"name":"BLOC!_sw.jpg","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/7\/c\/7c627cb15313ec038ed148be6cd17e3d.jpg","w":640,"h":480,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/7\/c\/7c627cb15313ec038ed148be6cd17e3d"}
Just curious, where'd you get the picture of the woman for the background?
Just curious, where'd you get the picture of the woman for the background?
I don't recall now. I have a variety of images I grabbed online at the time. I probably should have been more concerned with copyrights, but this was from 2004 and I haven't done anything with it since.
I thought about reviving the project and completing it with my own 3D rendered images and photographs just for fun.
I have actually played it again recently and I honestly get addicted to playing it, even though it is my own game, so it is a fun one. I figure if I like my own game, that it is probably worth reviving and redoing from scratch.
I also have one I want to redo that I don't have posted on there called "Deluxe Artillery Duel" (the first game I made in C, and my first "Deluxe" game). Based on the Atari2600 Artillery Duel and several other similar games in that era. The last version I made of it was for DOS though, written using I think, Allegro 3 and possibly Allegro 4 when it first came out and compiled with DJGPP. Now that was a fun game as it was the first time I created all my own graphics and sound effects and the first real game I made with Allegro and C. Lots of firsts. Before that, I came up with the concept for this game in QuickBasic, still have the source for that too! 
Here's a screenshot, in the original resolution and using some of the Allegro's spline examples for the landscape...
{"name":"611342","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/5\/3\/5357a032270cb16c4afdbd4023a642e2.jpg","w":360,"h":240,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/5\/3\/5357a032270cb16c4afdbd4023a642e2"}
I'd be interested in reading about that.
I will try to find time to start posting about it tonight.
You don't have to be particularly good, you just have to come up with a neat gimmick or idea.
You're referring to game design. I.e., coming up with a game idea that would be fun. That I may not be terrible at, but it looks like you're much better at it.
As with a lot of other people, my ideas are too complex for my development skills. Of course, the real problem is that my game development skills are nil. I don't really comprehend basic collision detection and resolution properly, let alone more fancy concepts. I was naturally good at math in high school, but I only had a basic math class in college and haven't been practicing maths for over a decade now so I've pretty much lost all of it. I struggle to remember parts of the 12x12 times table! In theory I should be able to learn the basic, even if I just have to copy-paste the logic, but I usually don't get that far either because I'm also useless at art and sound, and struggle to turn the idea in my head into code and pixels on the screen...
Just make-up something crazy. It doesn't even have to make sense. I'll give it a go: make a game about baby chickens who who have accidentally consumed explosive ball bearings. They are too stuffed to move, so you must use a large magnet to move them back into their pen. However, if a chick touches another chick, it'll explode, so you have to be careful! Call it "Chick Magnet".
That is literally a brilliant game idea. Did you seriously just think of that?
1. Develop it into a mobile game.
2. Upload it to the mobile game stores with ads (or a $3 in-game purchase item to remove them).
3. 
4. Profit.
Just curious, where'd you get the picture of the woman for the background?
That's his wife.
That's his wife. 
LMAO, nope. I done some searching in my old backups and I found the original. That is Jeanette Rundgren...
{"name":"611343","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/0\/a\/0aead5a84eaf255352dd584a282459ba.jpg","w":454,"h":750,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/0\/a\/0aead5a84eaf255352dd584a282459ba"}
THIS is my wife... (she loves snakes)
{"name":"611344","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/e\/0\/e08a3cc8c6d0eb7b09a1fbd779553d9a.jpg","w":512,"h":546,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/e\/0\/e08a3cc8c6d0eb7b09a1fbd779553d9a"}
You can also see a picture of her when you point at that... file thingee at the top of each of my messages that normally is supposed to show a picture of me.
(she loves snakes)
I also have one I want to redo that I don't have posted on there called "Deluxe Artillery Duel" (the first game I made in C, and my first "Deluxe" game).
How many "Deluxe" games do you have, and why did you decide on "Deluxe"?
I will try to find time to start posting about it tonight.
Good luck! 
As with a lot of other people, my ideas are too complex for my development skills. Of course, the real problem is that my game development skills are nil.
As far as ideas go, you should try narrowing your scope. Think of a simple game or concept and try to create it from scratch. Games don't have to be massive, multi-year-long endeavors; they can be super simple, super short, made-in-an-afternoon mini-endeavors instead.
Start literally anywhere, but take small steps as you do so.
Here's an idea to get started: make a game where the player can move a rectangle around the screen. Once you have that, add an objective: collide with smaller rectangles. Maybe have the small rectangle re-appear in a random place on-screen after the player collides with it. Maybe then you could add some text that represents points, and it goes up each time you collect a small rectangle. Maybe then you could add sound effects to go along with it. One step at a time, you know? Practice makes perfect. 
Once you've finished a game--big or small--release it! Even if it's super simple, you can feel proud knowing you actually released a game--a feat many never accomplish! I encourage you to give it a shot.
That's his wife. 
I thought it might be at first. You never know.
THIS is my wife... (she loves snakes)
That's pretty surprising, as I've never encountered a woman who likes snakes. Granted, many (most?) people of both sexes have a fear or disliking of snakes, but it seems to be more true for girls than boys.
That is literally a brilliant game idea. Did you seriously just think of that?
Yeah, I just thought of it. Thinking up an idea is the easy part; the execution is what really counts.
I might make it into an actual game sometime, but we'll see.
Here's an idea to get started: make a game where the player can move a rectangle around the screen. Once you have that, add an objective: collide with smaller rectangles. Maybe have the small rectangle re-appear in a random place on-screen after the player collides with it. Maybe then you could add some text that represents points, and it goes up each time you collect a small rectangle. Maybe then you could add sound effects to go along with it. One step at a time, you know? Practice makes perfect.
You are literally a game design god. That or you're ripping off existing ideas that I don't know about. 

Also your advice is sound. That's sort of what I set out to do with my Tetris clone. I was aiming quite small, and I was making good progress with it until I ran into a collision bug, and then I discovered memory leaks, and I couldn't figure out the memory leaks. I didn't want to keep going and make the leaks worse until I figured out the leaks so development stalled and hasn't really been touched in 2 months. 
It's now been so long I barely remember the original issues that lead me to the memory leaks, but here's one of the progress videos I posted (I can't remember if I posted these on A.cc already, but I think I did on one of the planned speedhack threads back in December or January):
That particular issue appears to be fixed, but the memory leaking is the main issue I have to contend with now. Another issue is input lag. I currently have the game coded to use hjkl as arrow keys because I'm a vi fanboy, but I don't think that should account for the lag. I must have issues with my game loop to cause it. In any case, one bug at a time...
You are literally a game design god. That or you're ripping off existing ideas that I don't know about. 

I don't think it's necessarily an original idea, but I wouldn't say it's a rip-off either. It's just a rough concept of a rough game. Plenty of games are comprised of the basics I talked about. The point is that creating and releasing that sort of game would teach you all the necessary basics; you'd learn how to: create a display, create a game loop, poll for user input, render things on the screen, do collision detection, use random numbers, draw text, play sounds, and build and release a game. Once you've done that, you can add more polish. Maybe instead of rectangles, you could play as a dog collecting bones. You could use actual images, and then maybe do an animation cycle. The sky is the limit.
That particular issue appears to be fixed, but the memory leaking is the main issue I have to contend with now. Another issue is input lag.
Have you looked into using any programs to identify memory leaks? I've personally never used one, but I've heard of their existence. I can't say if such programs are any good though.
As for the lag, it's just input lag, not rendering lag (dropped/skipped frames)?
I don't think it's necessarily an original idea, but I wouldn't say it's a rip-off either. It's just a rough concept of a rough game. Plenty of games are comprised of the basics I talked about. The point is that creating and releasing that sort of game would teach you all the necessary basics; you'd learn how to: create a display, create a game loop, poll for user input, render things on the screen, do collision detection, use random numbers, draw text, play sounds, and build and release a game. Once you've done that, you can add more polish. Maybe instead of rectangles, you could play as a dog collecting bones. You could use actual images, and then maybe do an animation cycle. The sky is the limit.
I've done many of these things before. The only things in that list that I haven't accomplished properly is collision detection and sound (and literally releasing a game, though I manage releases for my company's software so the logistics I know, just not the actually developing a game to release
).
My Tetris clone has collision detection, but it's probably not "ideal", and I resorted to a tile-based design to keep it simple. The idea was start simple and eventually make it more complicated. Once I had the tile-based game working properly converting it to pixel-based was going to be one of the future goals. I also managed to fix a bug in the collision detection for "Intern's Quest" many years ago (which was a project I undertook with Sam H. for a university course), but Sam gets the credit for actually implementing the collision detection. I wouldn't say I understood it per se.
As for sound, see the audio thread.
I attempted it a few months ago too, but I couldn't figure it out. I might have figured out how to get some sounds played, but not played as freely as I wanted. My ultimate goal at the time was actually generating sounds computationally, but I wasn't able to figure out how.
I started on a couple of simple libraries for doing animations in Allegro 4 (al4anim; a simple solution I developed in response to a thread years ago) and Allegro 5 (libal5poly, which was developed as part of my incomplete Santa Hack entry a few years back). The latter of which I intended to expand into a high-level game library or engine, but naturally lack the experience or expertise to develop such a thing.
I've also been a career programmer/analyst for ~11 years so business software I'm quite familiar with. It's mostly the parts of game programming that require math or domain knowledge where I get stuck.
Have you looked into using any programs to identify memory leaks? I've personally never used one, but I've heard of their existence. I can't say if such programs are any good though. 
I am using valgrind (which is why I know there are leaks at all), but my valgrind fu is not very strong apparently. It looks like some of the memory is leaked by the video drivers or Allegro, but I'm not sure. With a bit of poor man's debugging I think I've identified at least two game objects that are also leaking somehow that I need to figure out. This debugging will likely end up being my first blog post if I can find the strength. 
As for the lag, it's just input lag, not rendering lag (dropped/skipped frames)?
I haven't actually attempted to diagnose the issue yet since I have more serious bugs to worry about first. It could be something else entirely. The game itself seems to run pretty smoothly, but input is pretty choppy. Eventually I think I'll end up putting the repo up either my Web site or GitHub so others will be able to see what I'm doing wrong if I can't.. I prefer to do so on my own Web site so it's a bit more private since it's not really something I'm proud of [yet] nor ready to broadcast. Having a mechanism to share the code though is desirable. Basically I'm thinking of an "unlisted" repo where anybody can access it, but if you simple navigate to my site or profile you won't see it unless you navigate directly to the link. I also haven't applied licensing to it yet (but it'll most likely fall under GPLv2+ or v3+).
How many "Deluxe" games do you have, and why did you decide on "Deluxe"?
I think I originally got that from Deluxe Pacman for the Amiga by the late Edgar Vigdal. My wife and I loved that game on the Amiga and we missed it a lot, so I recreated it originally just for her (with Edgar's permission actually).
Of course, when trying to come up with a name for an Artillery Duel game, I was lacking imagination so I figured if you can slap Deluxe on Pacman, I can do it on that! LMAO, ah well. I have used it again, but I used it again just for laughs, I made a "Deluxe Pong" game (I named it Deluxe as a joke) which was just an excersize it writing a C++ game as I normally code purely in C, and still prefer it. And I probably have a few others due to my poor naming imagination.
I did name a Tetris style game BLOC! So that was unique at least (BLOC, no "K" on it as that is the French spelling I think). I think I avoided "Tetris" in a name because the "tris" part I believe has a trademark on it where you can't use "tris" in any game that is like that.
That's pretty surprising, as I've never encountered a woman who likes snakes.
Wanda (my wife) loves pretty much all animals. What makes her scream actually is ants, but that comes from a childhood trauma with them. I taught her how to safely catch and pick up snakes and she has always been fascinated with them. That photo was on our front lawn with my neice's Ball Python, when she learned she was outside with it, she rushed out and plopped down on the lawn with it, she was tickled as you can see in the photo. One time my niece's snake got loose in our apartment building and I managed to find it and my wife couldn't get enough of it. She's a real animal lover. I have another photo with her when we caught my niece's escaped snake, it was a corn snake, you can see how she loves them in it too.
{"name":"611345","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/5\/f\/5f6e7a26ae028bfef9af7e89e8bcb9ea.jpg","w":512,"h":520,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/5\/f\/5f6e7a26ae028bfef9af7e89e8bcb9ea"}
{"name":"611346","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/c\/3\/c36f56eab956e6f607ff1ef6a108da24.jpg","w":512,"h":384,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/c\/3\/c36f56eab956e6f607ff1ef6a108da24"}
The only things in that list that I haven't accomplished properly is collision detection and sound
Collision detection isn't difficult once you understand the math behind it. It's just determining whether two objects overlap. Usually that's represented by some shape, like a rectangle (bounding box collision) or a circle (circle-based or distance-based collision). Of course, there's more than just rectangles and circles, but you can solve the majority of collision problems using just those two shapes. I encourage you to look online for code examples of collision detection, and maybe spruce up on algebra or the likes if you need a refresher.
As for sound, that's specific to your library of choice (whereas math is library and language agnostic). A one-size-fits-all audio solution can be tough. Make it really simple to use and people will complain that it's too restrictive. Alternatively, make it too "loose" where it can be applied to almost any problem, and people will complain that it's too convoluted to use.
The docs and the forum are your only hope in this regard.
It's mostly the parts of game programming that require math or domain knowledge where I get stuck.
There is certainly a lot of math that goes into making a game. But you can do a lot with a surprisingly small amount of math knowledge. Besides, you don't need to have the best math skills to make a fun game. Take "Flappy Bird" for example. That game was insanely popular a year or so ago (maybe longer now), yet it was stupidly simple! The whole game was just a twist on the endless runner genre. But instead of running, you had to tap the screen to have a bird flap its wings. The main game-play gimmick was avoiding obstacles as you bob up and down while flapping. You could probably recreate that experience with minimal math skills. For collision detection, just use axis-aligned bounding boxes (AABB collision). All you need to do for AABB collision is check the sides of a pair of rectangles for an overlap. The rest of the game is just spawning obstacles off-screen, and then moving them into view. Oh and detecting user input to make the bird flap, but that's simple, too. So even with basic math skills, it is possible to create fun, and sometimes addicting, games.
Here is a demo of the rectangle game I suggested (sans sounds). Move with the arrow keys (you might have to click on the game area for the frame to accept your key presses). As an optional exercise, think of some ways to improve the demo. What would make it more enjoyable to play? What are some ways existing features could be polished? How might you build upon it?
Eventually I think I'll end up putting the repo up either my Web site or GitHub so others will be able to see what I'm doing wrong if I can't..
I'd prefer GitHub, but I can understand wanting to keep it private. I'd be interested in checking it out if you decide to make the repo available. 
I think I originally got that from Deluxe Pacman for the Amiga by the late Edgar Vigdal. My wife and I loved that game on the Amiga and we missed it a lot, so I recreated it originally just for her (with Edgar's permission actually).
Wow, how neat that your passion project received a blessing from Edgar, and that it became popular enough to warrant a successor! Any plans for a Deluxe Pacman 3?
That photo was on our front lawn with my neice's Ball Python, when she learned she was outside with it, she rushed out and plopped down on the lawn with it, she was tickled as you can see in the photo.
How cool! I've heard good things about Ball Pythons, but have not had the chance to be around one.
I used to catch a lot of snakes as a kid, but my interest in them waned in my teen years (I guess the novelty just wore off). I remember my neighbor being deathly afraid of them. I remember her calling me over a few times to remove snakes from her yard. They were totally harmless and tiny garter/garden snakes, but she wanted nothing to do with them.
*shudders* Steve Irwin taught me how cool snakes are, but they still give me the willies up close.
I love to watch them on YouTube and don't mind seeing them through glass or in the arms of a trained professional, but I'll squeal like a girl if I see one in the wild (and up here all we practically have are non-venomous, tiny little rodent hunting snakes). I've only ever seen a wild snake maybe a handful of times, most of them as a child, and they still creep me out to this day (but I'll watch from a distance, assuming I have no reason to actually fear them).
Yeah, I used to go to a graveyard as a teen in the '70s and catch garter snakes. One time we captured about 27 of them and brought them back to this housing units we were living int and let them all loose.
Good times.
Any plans for a Deluxe Pacman 3?
I have been toying with the idea. My game, mainly DP1 has been downloaded literally millions of times (I am not exaggerating), mainly in South America, so I would love to add in language support for them too. I have a project I barely got started that was called Deluxe Pacman 3, but then I renamed it to...
{"name":"611347","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/e\/7\/e7b13d3cafae401da4fb2f5c1ee3b654.png","w":1920,"h":1080,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/e\/7\/e7b13d3cafae401da4fb2f5c1ee3b654"}
That's a nice-looking image. You should consider making it for the Web.
Having it be playable in a browser could make it more accessible to a wider audience. You could still ask for donations, but you could also put it on itch.io with an optional download that pops up with a donation.
It does seem like Neil would benefit from developing a Web-based DP game (though I can't be sure what affect that would have on donations). While developing a Web site I think would be a waste of your time, developing a DP game in JavaScript/HTML5 might be well worth your time. It could expand your mind, give you a new challenge and something fun to try, and ultimately result in a game that is accessible to most of the world (with sufficiently fast computers).
Append:
And a secondary objective could be making it mobile-friendly (but not until you have a desktop version polished!).
How often do you guys get a new laptop?
I've had my laptop for a little more than five years now. It's been my go-to computer for work, school, and play. I do just about everything on it. Over the past six months or so, the hardware has begun to really show its age. The keyboard needs to be replaced (the caps to the escape, print screen, W, and Q keys broke off, and each sometimes has to be hit repeatedly to register an input), the screen doesn't go up to 100% brightness (hasn't for a year or so now), the battery lasts maybe 20 minutes on a charge, the hard drive is in a "pre-fail"/"old age" state according to a SMART test and sometimes boots with read errors, and the whole system frequently locks up when switching between programs.
It's a Lenovo IdeaPad P400 Touch. It originally shipped with Windows 8, but I've exclusively been running various Linux distros on it for the majority of my time with it. I can replace the keyboard, hard drive, and battery. I could even replace the screen, but don't want to hassle with that. The frequent freezes might be CPU-related, which I can't replace. I'd like to believe I could get another year or so out of it, but I think I've used it nearly to death.
Even with the potential to fix most of its problems, I'm thinking it's just time to upgrade instead. The only question is what should I upgrade to? I'd prefer to buy a laptop without an OS on it, because I don't want to pay for Windows. OS-less laptops are hard to come by though, and are usually expensive... I might just end up buying a decent year or so old used laptop if I can get one for cheap.
What do you think?
I've never gotten a laptop of any vintage.
Desktops are cheaper, easier to upgrade, and you can't pwnt PC n00bs from the couch. 
My desktop is probably close to 7 years old, and it shows. I'm definitely in need of upgrading the GPU and increasing memory, but it seems my motherboard doesn't support the latest GPU interfaces so unfortunately I can't just upgrade one or two things and pretty much will end up replacing everything except for maybe the case, power supply, and hard drive. 
I can't afford to do that so for now I deal with it.
Fortunately, the main game that I enjoy playing mostly runs smoothly on this hardware still so it's not so bad.
Mind you, I really need to reformat the system and reinstall the OS because this one has several frustrating issues that I don't think I can solve. 
Append:
Here's the Tetris-clone repo: Tetrist on Github. I haven't had time to blog about it yet.
But perhaps somebody will get curious and solve the memory leaks for me.
The memory-leaks branch is sort of the latest state, but develop is also more up-to-date than master.
I've never gotten a laptop of any vintage.
Desktops are cheaper, easier to upgrade, and you can't pwnt PC n00bs from the couch. 
Never had a laptop? That's impressive! I really only need my laptop for work. Everything else I can do on a desktop. I might dual-boot Linux on my gaming desktop and use that for everything (other than PC gaming). Then for work I could use one of the other laptops I have. I have like 6 in my room.
Whenever my mom or sister gets a new laptop, instead of throwing the old one away, I gladly take it off their hands. I haven't really used any of them yet, but I could clean one of them up and use it as a work laptop.
Here's the Tetris-clone repo: Tetrist on Github [github.com]. I haven't had time to blog about it yet.
But perhaps somebody will get curious and solve the memory leaks for me.
The memory-leaks branch is sort of the latest state, but develop is also more up-to-date than master.
Thanks for sharing it! I'll look through the code later today.
I'm in the same boat as bamccaig. Never owned a laptop, always used a desktop built by myself.
My desktop is probably as old as bam's as well. A 3 core AMD CPU with a GTX650 GPU and 12G of RAM.
When I originally built it, I done some research from sites like Tom's Hardware on getting the best bang for the buck, with a motherboard that allowed easy overclocking if needed etc. The research was worthwhile as the system has lasted a long time now. Probably since 2010 or so, I forget now. I originally had a GTX240 and I think 4G RAM in it and later upgraded the RAM and GPU.
I want to upgrade it again, but the GPU won't change this time as they are insanely high priced. The GTX650 cost me $100 a few years ago and is now more than double that, which is crazy, so an upgrade for that isn't in the cards for me.
I wouldn't mind grabbing a laptop for my wife though and may look into one someday for her, but not for me. I'm a desktop man all the way. I could never get used to more compact keyboards, I wouldn't be able to type fast at all with them.
There is certainly a lot of math that goes into making a game. But you can do a lot with a surprisingly small amount of math knowledge.
Seems like all you need for 2-D games is... the most basic trig. You rarely need integrals or derivatives, though understanding them can help things like physics and networking.
I definitely feel like I understand games more with years of math classes on my belt. But perhaps it was just being forced to do math by hand on a regular basis that gave me confidence or filled in the holes in my knowledge.
3-D games, however, yeah, you're going to need a LOT of math. At the absolute least linear algebra/matrices.
I mean, if you went for a more advanced (ala rigid body) physics, you might need some more math. But if you simply use someone's library like Box2D or whatever it's called (instead of writing your own), tons of people get away with zero knowledge of physics.
As far as what I bought for myself, I have a Chromebook for my laptop needs. Aside from not having a network port, it actually fills all my needs I would ever want from a laptop. Though the reason I needed the network port recently, it wouldn't have helped because I needed to install some software on it to allow me to configure something, and it needed one of the big three OSes to run.
Technically, I do have access to a Windows laptop, but when I was done using it for the network port it had... the screen started acting up. Something that for a desktop, at minimal, I would have to buy a new cable between the monitor and the computer, and at worse, buy a new monitor.
BTW, I love my new networking equipment. I have major power to do crazy stuff that I'm not sure you could do with custom firmware like DD-WRT.
Eric Johnson, if you ever need to clear up some space and get rid of a laptop... let me know.
Ha, I wonder how much it would cost to ship a laptop to Canada.
Ha, I wonder how much it would cost to ship a laptop to Canada.
You got me. The most I ever shipped anywhere was a CD or DVD of software.
Shred the hard drives and sell the laptops all on E-bay for like $50 or $100 plus shipping.
Could make like $150 or $300 or better.
Better yet, include the hard drive and tell them the computer belonged to my grandmother, and that she used it primarily for online banking. Someone would surely buy it in hopes of digging up some old lady's banking information. 
By the way, I took a look at your Tetrist code. It looks very clean. Nothing about it jumps out at me as being the cause of any memory leaks though.
By the way, I took a look at your Tetrist code. It looks very clean. Nothing about it jumps out at me as being the cause of any memory leaks though.
I'll take that as a compliment.
I also appreciate you looking. But yes, it's the kind of leak that likely requires a tool to identify. I'm not sure if valgrind is available on all platforms, but try running it through a tool if you have one. What blows me away is that it seems to start around 200+ MB of RAM according to a "system monitor" app. I may well be overlooking something stupidly obvious, and it has been a few months since I was actively hacking on it, but I think I'm sharing bitmaps data between instances so there really should be negligible graphic data.. And after so many pieces fall, since there is no winning condition yet, piece stop being created. The only thing left is collisions. Based on some poor man debugging and a hack of a Perl program to aggregate the results it seems I have two types of data leaking: lists and collisions. I need to dig into the code to try to figure out how, but hopefully valgrind will guide me.
Seems like all you need for 2-D games is... the most basic trig. You rarely need integrals or derivatives, though understanding them can help things like physics and networking.
https://www.microsoft.com/en-us/research/wp-content/uploads/2005/01/p1000-loop.pdf
pg 1003-1006
I once implemented that algorithm from reading that paper. It was not easy.
Duh, I'm not talking about edge cases like NURBS and Bézier curves.

Sprites != Tessellated Meshes
Edge cases are the worst cases.
(Fully implemented that algorithm was full of them, it makes me anxious thinking about it).
This game is 2D and I (once) used that algorithm in it. Of course, realizing it was patented, I had to revert to the simple triangulated meshes...
Of course, realizing it was patented, I had to revert to the simple triangulated meshes...
That's such bullshit. 
Algorithm patients are a huge realm of complicated bullcrap. Like, I get it, someone spent tons of time to build it. But then you get someone who independantly invents the same "obvious" algorithm, and you have some asshole big company buying the patent and suing anyone who uses it. So the whole world suffers instead of actually fostering innovation.
I'll take that as a compliment. 
I meant it as a compliment. 
I'm not sure if valgrind is available on all platforms, but try running it through a tool if you have one. What blows me away is that it seems to start around 200+ MB of RAM according to a "system monitor" app.
It looks like Valgrind is available on most platforms. I've never used a memory management tool before. And what starts with 200+ MBs of RAM? Your game or Valgrind?
@Aaron: Just wanted to say that I really like your Web site. It's so clean and easy to read.
I also think your Algae.Canvas project looks pretty cool.
@Aaron Bolyard
I love your vector graphics. Makes me want to use your Algae.Canvas project and render some SVGs!
Destructible terrain? Awesome. You've been doing some pretty cool stuff.
Regarding your website, I like it, but navigation is a little cumbersome. I also tried out a bunch of your stuff and it's all pretty neat. I tried the Brightside demo, but the keys weren't obvious and I couldn't really navigate through the game. Shooting laser beams into the building was pretty fun too. And I ran your Algae Canvas demo as well. It was taking between 12 and 16ms per frame though, which doesn't leave much room for logic and 60FPS at the same time. But it's amazing that you can render resolution independent graphics like that. Well done.
EDIT
I don't think valgrind comes on Windows.
I don't think valgrind comes on Windows
Is Windows considered a real operating system yet? I know it's been alpha forever. I don't play around with toy operating systems that much.
It looks like Valgrind is available on most platforms.
All of them except WinBlows it seems.
Still, there are a few free options available to use if you were so inclined. That said, it's probably just something I'll have to track down the hard way. I wouldn't go to the trouble of setting up and learning a new tool unless you're doing it for you. 
And what starts with 200+ MBs of RAM? Your game or Valgrind?
Turns out I'm just a noob. Upon closer inspection the 200+ MB was the process' VIRT (virtual) size which appears to include things like GPU memory and memory mapped files (not that my code does any of that) and anything else under the Sun. I don't know why it's over 200 MB, but I suspect it has nothing to do specifically with my program. The RES (resident, physical memory) is only about 38 MB, and SHR (shared memory) is about 27 MB. I think that means my program is only using approximately 10 MB which seems far more reasonable. Still probably more than it should need, but much less cause for alarm.
Is Windows considered a real operating system yet?
The vendor doesn't want it to be a real operating system because then they can't profit from the lack of features or function or reliability anymore and might have to actually contribute to the world again.
Just curious, what's a "real operating system"?
A clever person might point to an RTOS, while a snarky one might say an operating system that real men would use! 
I might just say an operating system that is efficient and reliable and lets the administrators and users do what they need to without stupid limitations or blockers.
Basically, you like getting software worth millions of dollars for free, with no limitations? Who doesn't.
No, I like for the software to actually do what I tell it to, instead of displaying obscure errors and crashing or refusing to obey me. The fact that gratis (free as in beer) software exists that is more reliable than the software you are paying for is laughable to me. The fact that you're defending the vendor instead of outraged is even more amusing.
So, basically, you want UtopiaOS? If Linux is giving you too much trouble, how about trying Windows? It's pretty good. The obscure error messages are rare, it's pretty stable, lots of quality software is available, and most of the time it just works
If Linux is giving you too much trouble, how about trying Windows? It's pretty good.
Your ignorance is not very becoming of you. 
The obscure error messages are rare, it's pretty stable, lots of quality software is available, and most of the time it just works 
I can clearly see that you sir do not develop on Windows professionally.
Trolls!
{"name":"medieval-madness-pinball-machine-trolls.jpg","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/5\/9\/5935f96718d4bbfbc7c98ef2b8fd8a46.jpg","w":640,"h":452,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/5\/9\/5935f96718d4bbfbc7c98ef2b8fd8a46"}
L0L you guys are funny. Use whatever works for you.
EDIT
Bonus points if anyone knows the pinball game in the image above.
I can clearly see that you sir do not develop on Windows professionally.
FML. 
Two words. Visual. FoxPro. (Or NAV / C/AL, or any other enterprise Microsoft product like CRM or AX)
::gunshot::
Your ignorance is not very becoming of you.
Thanks, I do my best. 
I can clearly see that you sir do not develop on Windows professionally.
But I do, only it's a .NET Core web app
But I do, only it's a .NET Core web app 
I've been developing Classic ASP and ASP.NET Web applications for about 12 years. The amount of breakage in the Microsoft technologies is laughable, and the poor quality of documentation/community support is even worse. When .NET works it's great. When it doesn't work good luck figuring out why.
Actually the latest issues I've been having is with memory. RAM tests fine, but the Windows OS keeps choking itself. It claims to have 5 GB "available", yet processes are crashing because they can't allocate memory. It may be related to the virtual memory (paging file). The OS (C:) was installed to a 120 GB SSD. I did everything I could to move and install software to the TB HDD (D:), but lots of very large Microsoft software forces itself to C:. When you select "D:" during a Visual Studio install (which is now like 12 GB or something crazy) it installs about 75% of that to C: anyway.
At least, that has been my experience. For a while, I couldn't even upgrade Visual Studio because I couldn't free enough space.
To do it, I manually configured the paging file to be on D:. Windows 10 does not care for this one bit. It freaks out every time you boot and displays a warning to the user. Eventually, I opted to give it back a "1 GB" paging file on C: to shut it up, but kept a 32 GB paging file on D:. That still didn't make it happy. It would ignore the D: paging file space, and only allocate the 1 GB on C:. It basically ignores what you tell it to do, and has a mind of its own. Wonderful. That was causing lots of instability so I finally decided to try switching back to fully automated management of the virtual memory. Somehow, somewhere, C: has manged to free itself up to about 20 GB free so I figured sure, let Windows use C: again if it wants to. Ever since I switched back to automatically managed virtual memory the system has been less stable than ever.
On the other hand, Chrome has started using even more insane amounts of memory than usual. It's like pushing 4 GB of memory for the same set of ~20 tabs that I've had open for months. I don't know if Chrome is the culprit for the instability of late or Windows is or both, but it's all just ridiculous.
In Linux, you setup a fucking swap partition and Linux uses it. The only time it gets hairy is with fancy encryption setups since I don't think the developers have quite figured out how to make that user friendly. I'll readily throw the Linux installer developers under a bus (or maybe the encrypted partition developers) because their support for encrypted partitions during install is pathetic in 2018. If you have anything more complicated than a single drive with an automated layout good luck.
It's like pushing 4 GB of memory for the same set of ~20 tabs that I've had open for months.
Hmmm... maybe you need fewer tabs open? I see tons of RAM used on all the browsers I tried for just a couple tabs. I can't imagine how much RAM 20 would need (well, I can imagine now... about 4 gigs!
)
Hmmm... maybe you need fewer tabs open? I see tons of RAM used on all the browsers I tried for just a couple tabs. I can't imagine how much RAM 20 would need (well, I can imagine now... about 4 gigs!
)
10 years ago I used to run 120 or so tabs at a time for months at a time. And I didn't have 8 GB of RAM to do it with! Web browsers are hungry beasts and enough is enough! Most of the memory is wasted trying to track me and delivery me ads and other junk I don't actually use or want or benefit from. It's MY computer, not theirs.
Website images etc... were much smaller and often used 8bit GIFs back then to, not huge 32bit images and all the various programming languages. You could also watch them load and draw sometimes. I suspect more RAM is used for the larger images, all the various web languages and just for speed. There's more to all that RAM than JUST the website. There's all the support stuff in t he background which has grown quite a bit. You can't compare the two. To expect website to use the same amount of RAM 10 years later with 20+ tabs open?? Learn to close your tabs and use bookmarks.
I like how Firefox does things now, with multiple processes. I find it much smoother and faster than before.
Might be time to upgrade your system with more RAM.
Welcome to the future. It will only become more demanding as time passes.
Yeah, I've got 32 GB of RAM. Even when I had 8 GB, I'd hit 100 tabs easily by time my work day was over.
With each window representing a "topic" with individual tabs being different compare-and-contrast materials on the subject.
If I'm watching pr0n you can waste my RAM with high quality images. Otherwise, fuck off. The problem is that the entire Web is running amok with Web 2.0 fanciness done wrong, trackers, advertising, etc.. If you use script blockers and adblocks you'll realize that every Web page you visit is downloading scripts from 20 different sites and then downloading images and other resources from 20 sites to basically harass you for profit. On your own fucking machine. I don't believe for a second that it has to do with higher quality images. Most Web sites aren't covered in images.
?Have you tried closing your browser and re-opening it? I'm sure there are memory leaks in just about every browser there is. I run SeaMonkey though, which is based on Firefox, but even I close my browser once in a while. You do know you can restore your tabs right?
Disable all those porn extensions, Bam. 
Chrome --> Shift-Escape to load Chrome Task Manager which shows RAM usage by task.
It does lie, however. I've found ps and Chrome's ram usage do NOT line up (some times by large margins!).
?Have you tried closing your browser and re-opening it? I'm sure there are memory leaks in just about every browser there is. I run SeaMonkey though, which is based on Firefox, but even I close my browser once in a while. You do know you can restore your tabs right?
Of course. That doesn't really help though. I can watch the memory usage instantly climb back up to 4 GB in a couple of minutes. It's not the result of a slow leak. It's literally just that bad.
Chrome --> Shift-Escape to load Chrome Task Manager which shows RAM usage by task.
I have never found this useful. It's not like there's a single tab that is using 3 GB. The usage is pretty evenly spread out among the tabs, and the worst offenders are usually the most important to me (gmail, etc.).
I think many pages load up content ahead of time in order to speed up browsing. You see more memory used these days, but you also have much faster, smoother browsing. The past was much slower for page loading and browsing, that's probably because they used less memory.
And yes, there are ads etc... but I don't see how that would use up THAT much data. It's obvious that when you have that many tabs open, each page is loading and pre-loading content for speed that it will rapidly chew up memory.
The solution is simple, have fewer tabs open or buy more memory. I really like how Firefox divides things up into several processes. It has really smoothed out browsing. I used to have to shut down and restart Firefox after using it a while, but haven't had to do that since they changed.
Add to all this the fact that people are less and less concerned with wasting memory and CPU speed, things can only get worse. I watched a video on programming languages that used the logic that while some scripting languages etc... are slower, today we have faster CPUs so that is okay now... I am like, WHAT?! So it is okay to use slower, less efficient methods and languages because we have faster CPUs and more RAM?!?! That is the dumb logic these days, get used to it. Programmers are getting lazy, languages are getting slower and hogging more RAM etc...
The past was much slower for page loading and browsing, that's probably because they used less memory.
I don't think that's true. In the past, Web sites were much more optimized. There was less content, and more efficient content, so they often loaded faster. Also keep in mind that our Internet speeds are much faster than they were in the past. 10 years ago I probably had DSL and was probably lucky to get 250 kb/s download speed. Now I have a cable line that can easily reach 25 mb/s download speed.
And yes, there are ads etc... but I don't see how that would use up THAT much data.
It's obvious that when you have that many tabs open, each page is loading and pre-loading content for speed that it will rapidly chew up memory.
The only sites that need to do this sort of thing are sites that have "feeds" of updates for new data. E.g., social media, image galleries, etc. And in those cases it's fine because it's better to load up parts of the data before you get to it than load the entire document/site. That said, the vast majority of Web sites do not work like that. There is no constant stream of new data to feed users, or large collections of images to stream to users. There's usually a fixed amount of text content with minimal images.
Add to all this the fact that people are less and less concerned with wasting memory and CPU speed, things can only get worse. I watched a video on programming languages that used the logic that while some scripting languages etc... are slower, today we have faster CPUs so that is okay now... I am like, WHAT?! So it is okay to use slower, less efficient methods and languages because we have faster CPUs and more RAM?!?! That is the dumb logic these days, get used to it. Programmers are getting lazy, languages are getting slower and hogging more RAM etc...
The argument is more so that higher level languages are sufficiently fast to execute, much safer in terms of memory safety and the like, and much easier and shorter to write and maintain. For many programs, the performance penalty is negligible. It makes sense to write them in a high-level language far away from the metal that is quick and easy to write and maintain, safe, and just works. Other programs, that you use regularly, or that have a lot of work to do, still need to be precisely optimized in a low-level language closer to the metal. Browsers should be candidates for the latter, though I'm not sure to what extent that's true. Certainly I think an effort is made, but they're building on some really bad decisions that can't be unmade.
It certainly is puzzling what is eating up so much memory. I use uBlock Origin for blocking ads and I noticed that no matter which of the popular browsers you use, they all seem to gobble up memory. With Firefox it got so bad it would start to slow things down to the point where I had to shut the browser down so the memory would be de-allocated then restart it. Their new scheme to have multiple processes has solved this issue nicely, but I would like to know, from someone who codes browsers what exactly is gobbling up the memory rather than speculating.
It is annoying, I will agree and I noted that sites like Facebook really gobbles it up fast, but that is to be expected given the amount of content you are using. Still, I don't trust Facebook at all given that it seems to know what I search for on sites like Google or Bing and I will see page suggestions which are related to my searches elsewhere! One time I just started searching for the same thing over and over again as a test, and sure enough, the suggestions on Facebook changed slightly. So now when I do something important, like online banking, I will shut my browser down completely, then restart it on a blank page then do my banking so that I know nothing was loaded by another page to spy on me.
I will shut my browser down completely, then restart it on a blank page then do my banking so that I know nothing was loaded by another page to spy on me.
That may not be enough in some cases. Those like buttons, they are the trackers, so if you're doing something, the best option would be Private Browser mode/tab/window (or whatever it's called in your browser of choice). Might want to check uBlock's filter list for privacy stuff.
Not sure if they can track your banking stuff anyway. The tracking stuff is like the ads on the sites anyway.
If anything looks to have broken, let me know here. I'll check back next year. 
Is it just me, or have <code> tags and `` markdown broken somewhat? I've noticed that on Linux running Firefox if I try to select the contents of <code> tags the newlines appear to be lost. Similarly, I've noticed that using the backticks for inline code references sometimes doesn't work lately..
I noticed that as well. Selecting multiple lines of source code is a royal pain as it comes out as all one huge line, no linefeeds at all. I will usually select it with line numbers included which help me know where the start of each line is.
I noticed that as well.
Which browser are you using? Code selection works properly for me using Chrome.
I use Firefox, but I can select, copy and past anyting else from the browser, just not some of the code you find in a scrollable box. It won't include the linefeeds.
I can copy and paste this with no problems...
#include <allegro5/allegro.h> int main() { printf("blah blah"); return 0; }
But not this. If you click on SELECT and copy it, then paste it, the whole thing will be all one huge line without linefeeds.
I use Firefox
Since that's what bamccaig is also using, the problem is probably caused by a browser update since it's no doubt been a long time since the forum software was updated.
I just looked at the code, and it's a div tag instead of a pre tag. Most likely, we see the line breaks because some CSS is changing things to make the div act like a pre.
Could this be fixed with some custom JS here?
But not this. If you click on SELECT and copy it, then paste it, the whole thing will be all one huge line without linefeeds.
SeaMonkey 2.49.1 does not suffer this problem. I can paste into CodeBlocks just fine., and into another SeaMonkey tab, and into a text file.
The white-space property of the div containing the scrollable text field is set to pre, maybe Firefox' text copy code doesn't account for that?
I believe that is the case.
I believe there was a similar issue copying between XHTML and HTML with Firefox.
I had an issue where copying from Google Docs to a textarea did the same thing but found that pasting to then copying from notepad or something like it first worked.
This looks like the same issue:
https://bugzilla.mozilla.org/show_bug.cgi?id=1174452
I just installed Chrome and it seems to be working really nicely. Different than when I used it years ago. Imported everything from Firefox and so far it seems to look better somehow.
I may just stick with it, at least for a while anyhow.
I looked at that Firefox bugzilla and when I seen "3 years ago" I realized that wasn't getting fixed anytime soon so time to change I guess.
The workaround is simple:
Start the selection on the gray area to the right of where it says "Expand". That's it. As long as either end of the selection is before or after the text box, the formatting is preserved.
Thanks torhu, I am already reminded why I dislike Chrome. It disables video downloading extensions on Youtube, so I'll stick to Firefox.
I'll keep chrome on as a backup option, but I am reminded why I prefer Firefox.
Edit: On Firefox again and I tried your suggestion and it worked like a charm.
Neil: You should check out Chromium instead of Chrome. It's the open-source version basically. Not sure if it's available on Windows though.
@Aaron Bolyard
I love your vector graphics. Makes me want to use your Algae.Canvas project and render some SVGs!
Destructible terrain? Awesome. You've been doing some pretty cool stuff.
Regarding your website, I like it, but navigation is a little cumbersome. I also tried out a bunch of your stuff and it's all pretty neat. I tried the Brightside demo, but the keys weren't obvious and I couldn't really navigate through the game. Shooting laser beams into the building was pretty fun too. And I ran your Algae Canvas demo as well. It was taking between 12 and 16ms per frame though, which doesn't leave much room for logic and 60FPS at the same time. But it's amazing that you can render resolution independent graphics like that. Well done.
@Aaron: Just wanted to say that I really like your Web site. It's so clean and easy to read.
I also think your Algae.Canvas project looks pretty cool.
Sorry for the late reply but thanks for the nice comments
.
@Edgar, you click on the left/right side of the screen to move left/right and space to perform an action (e.g., search the dead guy, open a door).
I'm working on a few projects here and there (Bubblegum [vector graphics in C], Discworld [a "GameDB" and goal planner], and ItsyScape [a dumb little game]; they're all related) so when they're more mature I'll add them to my site. Everything on my site is old, but it's pretty solid, I think.
Speaking of which, I should push my changes,
... I've only been pushing ItsyScape. Oh well.
You know what's odd, playing a game and having the game telling you that you might be up too late at night.
We have to post more often if we're to keep this thread alive, people!
I bet Matthew's got a secret git branch with years of updates, but he can't get it to merge with master anymore. We've got to hold out people! Help is on the way!
He probably uses Mercurial... *shudders*
I probably uses e-mails with zips.
Mercurial is a pretty good system. It has some fucked ideas, and since they had backwards ideas from the start it has several parallel solutions to problems, none of which works perfectly. So it takes some getting used to. Whereas Git solved most of those problems better from day one. But Mercurial is still a great system. The most interesting feature which I don't think is coming to Git anytime soon is called "evolution". Basically, when you rewrite history with "evolve" enabled, Mercurial actually tracks the history edits, and when you fetch history from upstream that marks your history as "obsolete" (i.e., edited) Mercurial knows that it needs to rewrite all of your history based on it. It's not a perfect system yet, but it does work quite well, and it shows a lot of promise. In the Git world, the only solution to that is "don't edit shared history" or "communicate and make every member of the team repeat your edits manually". So Mercurial isn't without its contributions to source control technology.
All that said, Allegro.cc is probably tracked with CVS. 
I probably uses e-mails with zips.
Far inferior to tarballs and emails and patches.
As long as you use decent source control, who cares!
All of my code is packed into Snapchat with an encryption key based on the exact datetime, and speed of the CPU, and set to expire within 7 days.
Tsk tsk tsk, we seem to not be able to keep two threads alive. Hopefully, nothing comes up that causes us to want to keep three threads alive.
Honestly, there's no good reason to keep this thread alive IMO. The other thread is more important so this should take a backseat. It's certainly foolish to divide our resources among threads.
I demand we keep all threads alive from now on. They're like a genetic life form that spawns cells (threads) and some survive, or not, before being able to "split" into new threads.
I miss the good ole days. 
When yves and AK both used to program on AmigaOS. 
Back when it was still acceptable to call someone a neck beard. 
And everyone lived in their mom's basement programming and playing WoW.
When I used to pronounce Yves as "whyvesse".
I always just pronounced it 'yih-vess', although I suppose it could be interpreted as 'eeves' or 'eeve' in a French context.
I always pronounced it yah-ves.
Clearly, this is far worse than the tabs vs spaces problem and we need to get into an intense flame war over the superior pronunciation.
I suggest we work together though.
So I'm currently in the lead. Because I suggested teamwork over my best interests.
Clearly, this is far worse than the tabs vs spaces problem and we need to get into an intense flame war over the superior pronunciation.
https://www.allegro.cc/forums/thread/616775/1028725#target
EDIT
I always pronounced it yah-ves.
Which is surprisingly similar to the name of God. Perhaps Yves is really a Jehovah's Witness?
I can safely say, that to know him, was to love him. And to love him, was to know him. Those who knew him, loved him, while those who did not know him, loved him from afar.
I can safely say, that to know him, was to love him. And to love him, was to know him. Those who knew him, loved him, while those who did not know him, loved him from afar.
Very nice.
Gah. Sounds like a eulogy. Sorry Yves!
I LOVE THAT ONE.
It should be a ring tone.
I can safely say, that to know him, was to love him. And to love him, was to know him. Those who knew him, loved him, while those who did not know him, loved him from afar.
Dude, I literally just watched this episode like two days ago in a recent binge.
This has nothing to do with Star Trek.
This is an oldie, but a good Data GIF/Windows crash. 
{"name":"611439","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/b\/5\/b59784da512b3b6c4b20d6b25cc7a6cd.gif","w":320,"h":240,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/b\/5\/b59784da512b3b6c4b20d6b25cc7a6cd"}