-
Building TyNETv5 Pt. 20 - Roundup
2014.02.13 22:04:52A number of things have happened since I last wrote an entry and I'm currently testing out and fixing as many bugs as I can find (with some testing help by @suntomic) so I can wrap this up neatly and hopefully bring a running instance up on the weekend.
-
Building TyNETv5 Pt. 19 - Renovation
2014.01.20 20:47:20About a month and over 100 commits later, it's almost done. I'm closing in on the final stage of the radiance interface rewrite. All modules compile without warnings and all that's left to do now is to test their functionality and fix all bugs that will inevitably arise during this. After that I can finally merge back into master and push the new radiance version.
-
Building TyNETv5 Pt. 18 - Heated Core
2013.12.26 11:57:57I haven't worked on TyNET in a long time and the main reason why I've held off working on it was a set of problems that have been bugging me for a very long time. I've held off continuing with the rest of the project until I found a solution for them as going on would've only made everything worse in the end.
-
Building TyNETv5 Pt. 17 - Seeing the Trees for the Logs
2013.11.01 20:35:43I don't like debuggers. Debuggers are scary, filled with memory addresses, break points and what-have-yous (I'll just disregard that I never bothered to properly learn their ways for a moment here). I much prefer the simple and straightforward way of logging everything. Logging instead of debugging also has a bunch of advantages, such as offering a wealth of information for when something breaks on a machine you don't control, giving you a direct and nice overview of the program flow, lets you archive the information in server applications, and so on. Essentially you should do lots of logging anyway, so you might as well do it well and forget the debugger entirely.
-
Building TyNETv5 Pt. 16 - Continuing con Continuations
2013.11.01 15:50:41Often enough when going through projects and details shift into focus, a problem appears that can't be solved all too easily. Of course, you could create a bit of a hack to make it work for a specific case, but in general the better idea is to look for a generalization and turn the hack into an abstraction layer. Sometimes these layers are more on the top, and other times they need to be put deep down into the system.
-
Building TyNETv5 Pt. 15 - Conclusion
2013.09.14 11:12:19This Monday university starts for me, which means I have to stop working on this for a while, at least until I figure out how to deal with everything. So I'll take yet another step back and see what I've accomplished and what I need to focus on next.
-
Building TyNETv5 Pt. 14 - Human Interface
2013.09.01 00:34:32As promised last time, I took a look at the framework and thought a bit about what I actually wanted to write in the end, versus what I had to write in actuality to achieve the same goal. I didn't think of writing a blog at the time and so I already moved on a bit from there. I'll try to recount the issues I've located even if it has been a while now.
-
Building TyNETv5 Pt. 13 - Getting Lost
2013.08.15 11:18:01I can't deny that one of the things I love is taking on large tasks. Big projects have a lot to offer and promise a much more interesting time than smaller ones do. This leads me to mostly take on things that are much too large for me. One of the consequences of this is that I hardly ever really finish anything. The other however is much more problematic.
-
Building TyNETv5 Pt. 12 - A First Example
2013.08.05 12:10:24As promised, I will illustrate how to make a very basic and simple module in Radiance as it is at the moment. This might still get simplified or changed by a lot as development goes on, but I think it is in a pretty good shape as it stands now. What we'll be building here is a rather standard voting application.
-
Building TyNETv5 Pt. 11 - Top Down
2013.08.04 21:23:44I have previously already touched on the development methodology I'd like to follow for my projects and it's time to revisit that. To be quite honest, I did not actually follow that approach until quite late in development and the consequences of this are already showing their ugly faces.
-
Building TyNETv5 Pt. 10 - Keeping it Safe and Sound
2013.07.25 18:45:25The web wasn't designed for applications. Or at least I don't think anyone who was working on the initial HTML and HTTP implementations imagined it turning out like this. As a result of this the standards are constantly being bent to their extremes to allow the luxuries we enjoy when using the web today. But regardless of how much you want to advance the standards, it won't change the fact that the underlying core principles of the web are causing quite a few problems. On the client side we have the problem that CSS, HTML and JS simply are not solutions designed for applications. On the server side we have the problem of persistence and authentication. And that's what I'm going to talk about.
-
Building TyNETv5 Pt. 9 - Stitching it Together
2013.07.13 11:31:42I originally come from Java land and have most of my experiences with languages and IDEs that include build systems, so the way your program is compiled has never been something I had to worry about. In Lisp too this is usually not that big of a deal thanks to ASDF, which lets you define which files depend on what and figures out how to compile and load it by itself. My problem with building Radiance is also a problem that is specific to Lisp and doesn't really occur in any other OO language.
-
Building TyNETv5 Pt. 8 - Initialize!
2013.07.01 22:17:40About high time I write a blog post about this stuff again. Apologies in advance if I sound angry or in any way derogatory about things, I'm currently not in a very preferable state of mind. Still, Imma do this because then I'll at least have done something today. So, what's this all about then?
-
Building TyNETv5 Pt. 7 - lQuery and lQuery-Doc Release
2013.06.24 21:58:06Oh gods, I'm way too tired to be doing this at the moment, but here we go anyway. I finally wrapped all things I could think of up to release lQuery and lQuery-Doc. As I predicted, I was well able to finish lQuery-Doc within time and it was a great feeling of success when I finished it. But, then I had to go on to do a whole bunch of other stuff, which is why the release is so late rather than some time during the day.
-
Building TyNETv5 Pt. 6 - Intermission
2013.06.23 20:28:45As I was preparing lQuery for release today I noticed that I still needed a couple of other things before I was ready. One of those things was that my base syntax macro was actually not working properly (variables weren't being handled right), so I had to spend quite some time rebuilding and debugging that. Then I realized that I wanted to have a proper documentation of all the functions ready for release. Since I'm lazy and a programmer I thought I'd use lQuery to write a library that automatically generates HTML documentation files for a given package. This turned out to be a tad more complicated than I initially expected, so I couldn't finish it today. And that's basically why lQuery is delayed, oh no!
-
Building TyNETv5 Pt. 5 - Caramel Isn't My Flavour
2013.06.18 17:57:27So last week I was in Tokyo, which means not much was going on at all. Or rather, so I had planned, but something amazing happened in the meantime. One evening I sat down to take a proper look at Caramel, the library I had intended to use for HTML manipulation/generation. I didn't like it. So then I thought back to what I really wanted. I wanted to have jQuery, but in Lisp. Not thinking too much about it, I opened emacs and wrote a small prototype function that would allow me jQuery like syntax. After about half an hour of twiddling around, I had a (wonky) first solution and it was brilliant.
-
Building TyNETv5 Pt. 4 - Blueprints
2013.06.04 15:19:21Whenever one designs frameworks in which some of the more “core-y” functionality is supposed to be implementable by outside sources, a really difficult problem arises: How do you design the interface? Since this is a core functionality, a lot of other “modules” will depend on it and you can't have those write their functions 20 different ways just to cover all the different versions of one core part. But you also don't want to restrict the interface too much, because that would limit the capability of extending the base functions. It's even more problematic when this pluggable core system is supposed to be general purpose and no strict interface can be defined for each part of the core. So how do we deal with this?
-
Building TyNETv5 Pt. 3 - Mission Statement
2013.05.29 14:16:35I never went to an actual coding class. I never had a professor teach me anything related to programming. All I know has been out of books, tutorials, specs and discovery. There are a bunch of problems with this approach, most of all that I started out with writing pretty damn bad code, had no idea of how to structure or plan anything and so on. These are all things a good professor could avoid. Regardless, I think this approach also has the benefit of dynamic learning and backstory. That is to say, I can follow back my timeline and see where I've improved and I know why my current style is better than before. I don't just do things because someone told me to.