Jonathan Jao's Uber Blog
Saturday, February 22, 2014
Reboot
Well, here we are again. It's been several years since I last posted, and it's been a blast since then. The GP System was never fully completed to what I originally designed it to be, but it will soon see incorporation into newer developed systems of the future. As for the remainder of this blog, there will be new content every now and then on pet projects, and I'll be sure to post links to source code as well.
Tuesday, August 16, 2011
Almost done... I hope...
Well. Everything has been completed on the GP system, except for the interpreter. Mutations and crossovers and stuff have all been compiled. Basically I glued some of the code from MIT's galib to my project. I'm getting some kind of linking error... but who cares? I'm just happy there aren't any syntax errors on my part. Now semantics.. that's something else for some other time. When I use -Wall and -Wextra options in my compilation, there are atleast 100 weird messages. Yeah.... gotta get those fixed. But main thing is that everything compiles :D
Friday, August 5, 2011
Banging Rocks Together Here :(
Most of the GP System's front end is working. Currently the argument parsing, gp configuration parsing and loading (inputs, outputs, and constants; hopefully in the future, function sets). Most of its done through vectors so i wont have to go through the hassle of pre-configuring the array sizes through the program. No buffer overflow attacks either :P. The genome classes evaluation loops as well as the population arrays are mostly complete. Now its time to implement random and seed generation and finally: mutation+crossover: which is scarier than operating system implementation without serial ports, which is saying something. I'll be temporarily blind unless I learn to work that more complex parts of gdb and there's no telling what'll be going on during population generation since I havent put any output messages. And even if i have, there's 5 populations of 100 organisms/programs so i'll be looking at 500 outputs. Minimum. I'm not too sure, but i don't think that gdb will let me quickly analyze 500 lines of code either. Worst hassle of my life. Except for the yearly summer reading. Still have to do that too :( . I'm thinking of adapting/gluing some of the code from MIT's galib into my project since it already works, but i was planning to make mutations and crossovers configurable in the likely event where I implement a meta-gp system to optimize mutation and crossover times to achieve better and faster results. Who knows. I just hope i dont break my own code.
Saturday, July 23, 2011
I'm awake. partially atleast.
Before continuing on about the GP system and its technical details, I'd like to warmup the minds of any potential readers with some recent events and my thoughts on them (in case they mattered in accordance with the readers.) So recently, theres been a ummm, hacker group, called anonymous. Now theyre not strictly speaking, bad guys. more so people with the mind and intention to act on what they believe in. I've read there statement on how when 1 person in the group goes down there will be 10 people to replace them. and that you cant arrest an idea. i'm not sure where i found this quotation so i wont be able to cite it. anyways. this got me to remember an anime series called Ghost in the Shell and one of its characters the laughing man. Early on in the series, there were multiple "hackings" and noone knew who did it. The only thing that was certain was the symbol used to represent the hacker: The laughing man "emoticon". So noone was sure who the original was but there were many people to take on this mantle and decided to act on their intentions. now you'd have to actually have to watch the series to get some sort of idea of whats going on but i think this post is straying from the intended point.
Alright. Technical details of my GP system. So here's the plan: I plan to analyze the TinyGP's source code and see if i can extend it with a printing/output system with fitness evaluation. if it is impractical for me, i'll rewrite the whole thing in either C or Java. When I decide what to do about this point, i'll update this blog with another post. Now there is another part I'd like to add about the GP system. there has to be someway to translate the created program into Java or C++. Whether i'll do this using software written by yours truly or translate by hand is to be seen. And while you'd implementing this part is easy, think again. There have to be extra functions including mathematical functions and library dependent data structures that may differ with each language i plan to translate the generated program into. Once i'm done with these tasks, i'll probably begin running tests and debugging as well as uploading the source code online. I hope noone decides to do what they did with linux a few years back and claim that they were the original writers of the software, patenting it in the process. unlikely. John Koza has made far more contributions to the field than I would so patenting is very impractical. Well. i guess we'll have to wait and see how this thing turns out. Only time will tell.
Alright. Technical details of my GP system. So here's the plan: I plan to analyze the TinyGP's source code and see if i can extend it with a printing/output system with fitness evaluation. if it is impractical for me, i'll rewrite the whole thing in either C or Java. When I decide what to do about this point, i'll update this blog with another post. Now there is another part I'd like to add about the GP system. there has to be someway to translate the created program into Java or C++. Whether i'll do this using software written by yours truly or translate by hand is to be seen. And while you'd implementing this part is easy, think again. There have to be extra functions including mathematical functions and library dependent data structures that may differ with each language i plan to translate the generated program into. Once i'm done with these tasks, i'll probably begin running tests and debugging as well as uploading the source code online. I hope noone decides to do what they did with linux a few years back and claim that they were the original writers of the software, patenting it in the process. unlikely. John Koza has made far more contributions to the field than I would so patenting is very impractical. Well. i guess we'll have to wait and see how this thing turns out. Only time will tell.
What's the deal with these loopy posts during lunch?
I would like to clarify a few things. First of all, I'm not in the US at the time of this posts writing nor the prvious post. So there will most likely be inconsistencies in these writings. Also I'm on the otherside of the world in comparison with the US. So it is midnight here. Now why would I be up writing this post? Cuz someone's doing some sort of loud construction outside. Clickity clack. But as it is super late and I don't want to be thinking technically since it'll make my sleep deprivation even worse, I'll be continuing the technical details continuing on from the previous post in the morning.
What to do with this blog?
Well. This is the first time on my iPad so plz don't have a fit over any misspelled words. I've concluded that no one will be reading this blog any time soon so I've decided to use it as a sort of log for the projects I'm working on. Not much to say besides that but I do hope that given enough time my records come of use and or are read.
So. Recently I've been working on a genetic programming system that will write programs for me. Why? Because I'm beginning to grow tired of programming by hand. All of my halted projects including but not limited to the os kernel I wrote back in 6th. Grade? As well as a compiler I never got to work. Sure, the os kernel consisted of low level code that someone else wrote to whom I will give credit to in my next release if it is made. And maybe the compiler was a bit too much for me. I still managed to get the front end and parts of the middle end to work with planned llvm support for the backend. So. Long story short. I've decided to use my existing compiler knowledge as well as the information I've learned from the field guide to genetic programming (sorry ifi didnt use proper grammar on naming the book but c'mon. It's a blog and I'm on my iPad) to create a gp system with efficient and hopefully optimized code generation so I can, in accordance to my evil plan, use it to help me with Code Wars. Of course, if it's against the rules, then I'll yield and sheathe my by then, awesome gp system. I feel like I'm running out of room. No ones gonna read a blog with posts this long. So I guess it is to be continued.
So. Recently I've been working on a genetic programming system that will write programs for me. Why? Because I'm beginning to grow tired of programming by hand. All of my halted projects including but not limited to the os kernel I wrote back in 6th. Grade? As well as a compiler I never got to work. Sure, the os kernel consisted of low level code that someone else wrote to whom I will give credit to in my next release if it is made. And maybe the compiler was a bit too much for me. I still managed to get the front end and parts of the middle end to work with planned llvm support for the backend. So. Long story short. I've decided to use my existing compiler knowledge as well as the information I've learned from the field guide to genetic programming (sorry ifi didnt use proper grammar on naming the book but c'mon. It's a blog and I'm on my iPad) to create a gp system with efficient and hopefully optimized code generation so I can, in accordance to my evil plan, use it to help me with Code Wars. Of course, if it's against the rules, then I'll yield and sheathe my by then, awesome gp system. I feel like I'm running out of room. No ones gonna read a blog with posts this long. So I guess it is to be continued.
Saturday, March 26, 2011
First Post
Somehow I doubt anyone will be reading this right after its posted. So if this blog gets viewers in the future: I'll be able to say that i psychically predicted that it happened. If not, who's around to read this?
Subscribe to:
Posts (Atom)