XT/XAW Docs

I should really be writing documentation for Xt/XAW. DDG doesn’t seem to be finding too many resources on it(the only hello world outside of mine posted was one whose page was in japanese….) So yeah, once I’m done with XAWPanel I’ll probably document what I know.

KDE Suggestions

I’m back on KDE, after much urging from my friend Thomas from Gnome(old 2.3something, which was part of the reason for the switch.) However, I’ve noticed a few things that would be awesome for the great power user environment. One of them I dented, porting V8 to Konqueror(actually I just said more work on KJS, Leo said V8.) The others I’ve come up with are mainly involving kget. First off I’d really like a kde provided addon to use kget with firefox. The second is support for cloning in version control and ssh. Mainly because a lot of the time with version control you just want to download, ssh for scp. Basically I’d really like to be able to handle all my downloads with kget.

Toolkits and languages

So….it’s been way too long, though I’ve been busy. The now famous ai-class, other schoolwork, social stuff. At least I update my identica, that’s enough, right? So anyway, sorry for the long wait. I just figured I’d say what I think are the best gui toolkits for various languages, and a short explaination for why.

C: XAW(preferably XAW3D, which looks slightly better)

This is going to seem REALLY weird to a lot of you, and I know why, gtk is C, after all. Well the problem is that gtk isn’t fun, at least not in C. It’s also faster to write, here, let me give you a quick hello world in Xaw3d, then in gtk.

*includes, so xaw, xt, and X11 stuff*

int main(int argc, char **argv)

{

    XtAppContext ctx;

    Widget toplevel, hello;

    toplevel = XtVaAppInitialize(&ctx, “HelloWorld”, NULL, 0, &argc, argv, NULL, NULL);

    hello = XtCreateManagedWidget(“Hello”, labelWidgetClass, toplevel, 0);

    XtAppMainLoop(ctx);

    return 0;

}

okay, so there’s XAW for you. I’m going to assume that you are capable of looking up the gtk hello world, it’s way too long to include here. It also has the ability to be used without pkg-config. That requires 3 -ls, X11, Xt, and Xaw3d.

 

I’ve wasted enough time here, so I’m just going to get on and say that I prefer gtk in every language except for C++ and javascript. Mainly I honestly just wanted to show off that xaw is pretty awesome, even though it’s ridiculously ugly.

IE6(Or why to make a gecko browser in a webkit world)

I know, I know, Webkit is new, Webkit is in chrome, Webkit is fancy, Webkit can use everything native. So why make a gecko browser these days? Well, there are actually quite a few. First off, while Webkit is theoretically faster, Gecko FEELS faster(I think because it starts rendering earlier.) Second, add-ons: you can use xpis natively, just spoof your user-agent to say you’re using Firefox and quite a few should work. Second of all I’m pretty sure they’d be easier to develop, while I haven’t tried it yet(I want to though) your development is really in Javascript, which is much nicer than C/C++, and better(in my opinion) than Ruby and Python. Also IE6, why did we have IE6? Because of a monoculture, once they had no one to compete with nothing happened, for YEARS. So if Webkit gets to be in every browser, then who is it competing against? Exactly, no one. Is Opera going to compete? Good luck, they’ve had the same market share percentage since the 90’s, as far as I can tell. So our only real choice is the gecko family, which is BETTER TO BEGIN WITH. In case you’re wondering I’m using seamonkey, which I built from source today to be all nice and customized for me.

Lossy Handwriting Optimization

Yesterday I detailed handwriting optimization, and all of those techniques were lossless, that is, they didn’t compromise any theoretical readability. There are other letters that I can/have optimized, but they are lossy and can make your text less readable. The first is "t", where you just start with the cross, go to the side, then loop around and make the vertical part. "f"s are easy as well, and probably the most readable of all of these. The only difference with "f" is that you don’t draw the horizontal line, it should still be recognizable as an "f", but it saves a lot of time. The final one is "x", which is probably the hardest to read and has the least benefit of these 3(the only gain is in the amount of time it takes to pick up/put down the pen and the momentum that you carry through.) All you do is draw the \ portion, but then loop back around like \) and draw the other part, so it ends up looking a bit like X.)

That’s really all I know, but I’ll post more if I can figure any more out.

EDIT: changed "pots" to "post". Give me a break though, I literally typed this with my eyes closed 😛

Handwriting Optimization(How You’ve Been Told How To Print Incorrectly)

You’ve been taught how to print badly. Conspiracy to get people to use cursive more readily, stupidity, unwillingness to improve, but for whatever reason printing is taught horribly. It’s full of horrible time wasting things that will really add up.

For example, take the letter i: how you write an I is you stroke downwards on the line, then make a dot, but you should stroke UPWARD, that way you’re positioned to make the dot. Then we have the d letters, I’m a bit partial to d because it’s in my name, so the d letters are, as it sounds like, the ones that are d. b is d reversed, p is d rotate 180 degrees, etc. This is also pretty simple, but it has a slight handedness dependency. I write left handed so I will write b faster than d, because, well, just use your hand a bit, it’s easier to curve OUTWARD( to the right for lefties, vice versa for righties.)

The capital letters are a bit touchier. D, B, and P can be optimized with variations on their techniques that I’ve already said, just use p for the base and modify that. A can also be optimized: you simply don’t take your pen off of the paper and move it back up to cross that way. Look at the Alcatel-Lucent logo for reference here The amount of swipe on the backstroke(the ")" part) is up to you, mine varies between about as pronounced as there and near-invisible.

These are all of the ones that I know at the moment, comment if you find any more though.

Blogilo

Just testing out Blogilo, which doesn’t really fit into my Trinity desktop, but it seems pretty nice. In totally different news today I wrote a simple(yet turing complete, and even beyond that) virtual machine in less than 100 lines of perl, maybe I’ll put it up some time…

Gnome 3 part 2

Right, sorry….kinda got lost for a while. Actually there really wasn’t anything to say, it all held up like I expected, though gedit instead of emacs didn’t go over too well. Neither did epiphany instead of icecat, but I tried. All the software is good, the experience seems to scale well, even over different monitors(which I tried.) Basically if you need an easy and pretty desktop, go for gnome 3. Now if you’ll excuse me I need to play with the bouncy ball plasmoid some more….

GNOME 3

So I have my hands on GNOME 3.0.1, and I figured it was time for a review, well not quite a review yet, more like a preview. GNOME 3, as the name indicates, is the next generation gnome desktop, and its centerpiece is the gnome shell. The central idea of gnome has always been a simple, usable environment that works out of the box, and for me at least they hit the nail on the head. They got rid of the minimize and maximize buttons, but I’ve found that you don’t really need them, and they were right, minimize doesn’t fit into the paradigm(maximize is double clicking on the title bar.) Desktops aren’t a set number, but are added as you need them, and removed when you don’t. The overall look is really nice, very elegant, though I’d prefer a bit more color in the title bars, if I remember correctly they had the close button in red early in the cycle, which I really liked and kind of miss. On the top panel, which is the only one that’s always visible, you have the activities corner, an indicator for your current window(which looks REALLY nice, in my opinion), the clock, and then your panel widgets(for lack of a better term.) The widgets aren’t self addable, and they aren’t the ones you’re used to. They cover the things like sound, wifi, battery, and accessibility, then you have the personal menu, where you can change your status(seems to do nothing), change the system settings, play with your account, lock, log out, etc. On the bottom, in a hidden panel, you have the indicator, and some other things which are amazing, like the IM integration(more on this later.) As a quick side note, you probably want to install gnome-tweak-tool, for more things for theming, have a desktop or not, etc. That’s about it for now, hopefully I’ll have another post in a few days

Restoring sound in Debian Squeeze

So I switched to Debian Squeeze(Don’t worry, I fixed it to be fully libre.) a few days ago when parabola could no longer read my home partition, which is understandably very very bad.
I Had a few issues, mainly due to my stupidity but they’ve all been easy fixes(deleted my home partitions and stuff to start from scratch to give / more room, messed up fsck since it was looking based on uuid. A quick switch to /dev style fixed that one.
Today I hit a major problem, I completely lost sound, not always muted or something, but not even the mixers would pick it up. This is how I solved it:
First run lspci, you’re looking for Audio Device, or you can just run lspci | grep Audio and have it look for you. Then you match that up to the list of sound here: http://alsa.opensrc.org/index.php/ALSA_modules, once you find the one that makes sense for your card (I was hda-intel) you run modprobe [driver name] as root, with the snd- prefix. So mine was sudo modprobe snd-hda-intel.
After that you run alsa reload as root and it should turn on sound.
Assuming that works (I suggest wearing earbuds or turning your volume up while you do this, there’s kind of a clicking noise when your audio turns on that I can hear easily.) you need to put whatever sound module you used in /etc/modules, then your alsa reload in /etc/rc.conf