 What's going on guys? I know it's been a little under two weeks since I actually, like, last got some stuff out there but I always have plenty of excuses and actually have some content and some good news for you. Tons of food for thought and an update to what's been going on as usual. Um, I actually let a friend of mine borrow my Xbox. I was trying to, I was trying to, it was an attempt to take some of the distractions that I have away from myself. And then of course a different friend of mine loads me up with a ton of emulators and I begin to fiddle around with like some really old nostalgic childhood games. Pokemon. But hey, despite some of the gaming I've been doing, I actually have some news regarding C++, what I've been up to and some really other cool stuff. So, uh, keep your eyes open and your ears open. You know, but in the deep blue C++, as you guys know, I've been trying to go through and refresh some of my skills in C and C++ with the wonderful help of really, really awesome YouTube teacher, the C++ guy. And at this point I'm at the object-oriented programming, that portion of the lesson. But every now and again I'll try and plow through some more videos and some of those tutorials because I really, really want to learn more about C++ and being able to use that language more often than Python. But I'm actually trying to make some of my own things in C++ though, just so I sort of like submerge myself in the language and I get more acquainted with it on my own. I actually, I sort of tried to recreate the English vocabulary script that I've been working on in Python that I'm sure you've heard me talking about it tons of times. And I actually still haven't got that finished. But yeah, I'm trying to rewrite it in C++. The structure and like the data implementation is not a problem because vectors are just so awesome and I can store anything I want, just like a Python list. But some of the other quirks and techniques may not be so easy, like grabbing the definition off the online dictionary, like case in point right there, that's going to be wicked tough. I had done this in Python with the URL lib module, just grabbing like the source of the URL we needed it and I processed the HTML with like regular expressions and that RE module and yada, yada, yada. But that in itself is really hectic, so I'm sure doing it in C++ would be wicked hard. Either way though, it would definitely introduce me to some of the libraries and some more functions of the language. So I wanted to try that, I feel like that'd be awesome. But the most viable candidate I had found for grabbing the code off the internet in C, the one that I found so far was the lib curl library. Now, I've only been a little bit acquainted with curl due to like the font command line tool that I see so often. And I usually see it like versus Wget or like up against it. They seem to be like really similar and some people prefer one other than the other. But from what I've heard, or at least what I'm under the impression of curl is much more powerful and more versatile than Wget, but you know I could be wrong. I just tend to use Wget for some online processing or downloading things really quickly and really easily. But I feel like curl can like send data to forums and stuff, so I feel like curl is awesome. But I don't know as much about it as I would like to. Concerning lib curl though, I had actually, I eventually set up the compiler and the linker to find the current header file and I was able to toy with the module for a little bit. I eventually found some code examples on the official website that did what I wanted to, you know, like grabbing the raw HTML out of the URL. But the thing is it stored the output into a file. And I suppose storing the output into a file isn't like a bad idea for some cases, but in my scenario where I want to look through the code and process it, having it be inside a string variable would be much nicer. It'd be a lot easier to work with. The function they were using though doesn't seem to support that though. Unless I mean unless I mess around with it and try and write things on my own, I would just end up using the terrible alternative like having to have to read into a temporary file and just immediately read right out of it. It's just weird. I don't want to do that. But you know that's nothing. I never actually did too much with that code other than mess around with it and see what it can do. But I tried to piece together some of the lib curl syntax and that was a fun little adventure. I was learning a little bit more about libraries and being able to link things and compile things together. That was cool. And now at least I know a possible protocol to get data off the internet if I ever do any more with it. It held my attention for a day at least and that's awesome. But how about the Nokia N900? Look at that. I actually finally started to do some slick things with that cool little device, that blessed little phone computer that I carry around with me every day. So let me explain my little project here. I'm the kind of guy that would occasionally save some text messages that like maybe I just really like or I want to know existed at one point. So for years I actually went through the trouble of manually typing in some of the messages that I wanted to save. There are of course all in specific like plain text files with a certain format. It's actually in one plain text file but I developed that myself so someday I'll be able to process all these messages that I've ever wanted to. But you know they're saved nonetheless. They're inside a file. So the thing is it got to be really, really irritating having to have to write out each text message that I wanted to save. Because I have the date, you have to do what's from, where it was sent, when it was sent, yada yada yada. And I don't think I even have to tell you that the Nokia has the potential to fix this problem and that is awesome. So check it out. The Nokia stores text messages and other events like phone calls inside of a SQL lite database that we can probe for information. It stores all the things in the user's home directory. And I'm thinking a home user and I think is the file name is .rtcom-eventlogger like slash L-v1 database. I mean if I can remember that correctly off the top of my head I don't even know. But obviously it stores a number. It came from the date that's actually in a Unix timestamp. That's kind of cool. Where the message was coming from whether it was incoming or outgoing. That's a Boolean variable. That's pretty awesome. And of course it stores the raw message. What we need. The most valuable piece. So we get all that information and more just by using the command line tool SQL lite 3 and snagging some of that information. And that's awesome. That's wicked awesome. I'm able to use that to process it. So what I've done so far is I've been trying to write a Python script that uses the sub process module. And what that does is it lets me use like a command line. It lets me use a command line command. And we're running SQL lite 3. And we pass the file name as an argument. And then we pass the things that we want to select. The fields. So we store that output into a variable inside the Python script. From there it's just a matter of splitting those things up into a list and processing what we need to. The Unix timestamp looked to be a little of a problem though. That was going to be tougher a bit. But after some research it looks like Python's time module has a function called GM time. And that'll convert it into what we need. I love it. I mean Python has a function of like everything. It's so convenient. But you know sorting out all this information is only the beginning. The plan is to build an interface with GTK obviously. We would choose what person we want to see text messages from. Maybe we could give me or the user an option to choose between what time period the text messages were from. Or maybe we could just see all the text messages from everyone at once all at the same time. That'd be really slow but I mean it should still be an option shouldn't it? The display and the design ideas are kind of endless though. I really don't know how I want to approach this. I'm kind of scared to be honest. For a while I planned on recreating the entire like conversations application on the Nokia though. And like making it one that I like and does what I want it to do. One that doesn't bug out when you use emoticons or one that doesn't like create two or more separate windows yada yada yada. But I freaking love the custom ability on the Nokia. I can do anything I want as long as I know how to do it and that's awesome. It's a Linux phone. It's open source and that gives like that gets two thumbs up from me. Two big thumbs up. But I've been working with the interface and the display for the little conversations we were making GTK a few weeks back though. And that kind of kept me interested. GTK is really fun to manipulate because you can kind of like think through their sort of boxes design. So as some of you don't know much of GTK or like that box layout the programmers kind of given two options. You could use horizontal boxes or you could use vertical boxes. And these boxes kind of act as like containers where you can put as many elements or other instances that you would like to. Like buttons, entry boxes, lists, labels and more. Now imagine the idea of storing a box inside of another box and so on and so forth. My current design for the application had a vertical box as a root element. The top of the box was filled with a scrollable section for the messages while stuck at the bottom was another horizontal box. The horizontal box right there had two more horizontal boxes inside of it along with the vertical box to the right side. With this logic structure, the text inside the buttons that would be stored in the lower most vertical box, the one beside the two horizontal boxes at the bottom, those text boxes, like those little buttons, they wouldn't be fixed sizes. They would be like flush against the side that we need. Because we have the two entry boxes on there, we would type in like who we're sending the text message to in the actual message. So we have the two buttons, contacts and send, so we can look for the contact that we're sending it to and we can actually send the message. And I'm sure this is incredibly hard to visualize though and it may be damn near impossible, but you know there's no easy way to like explain the back end work of the display. But even then, looking back, I may not even use this idea though. Like recreating the text messaging application with Debuss and all this jazz, it may not be so much of a good idea for the tiny little job that I'm trying to accomplish here. For the moment, all I really need is an interface where I can pick and choose what text messages I've received and which I'll be able to save into plain text file that I speak of. This could all be done with like a ton of labels and check boxes though with like a little text box or an entry box that allows me to type in the person's text message that I want to be looking at. So if I wanted to look at someone, I don't know, Bill Smith, I don't even know anyone named Bill Smith, that's just a random name, but if I typed in, if I type that in, all the text messages from Bill Smith, I'd be able to see and I could just check which ones that I want. That'd be awesome, right? Each message that's checked is going to be stored in the save file and ones that obviously aren't going to be saved in the text file. But there may still be a case where I or the user doesn't check things off in the correct order. What if the chronological order of the text messages is thrown off by the way we save things? At that point, we'd have to sort through the file itself, which is a whole other task. Obviously, I don't think I even have to tell you this is still a work in progress. I really don't know how I want to approach this, where it's going to go, but the idea is still there. It's definitely giving me a lot to think about and even some ideas to share with you guys and the rest of the world. So, I mean, what's the best way to design something, though, both on the front end and on the back end? You know, I don't know.