Archive for December 2006

Lack of creative themes

December 23, 2006

So, I’m back in Enlightenment. It was my first X11 Windowmanager, and it is still my favorite. The thing I love the most has to be the creativity that it allows for in theme-ing. Don’t get me wrong, I DO NOT theme. I’m far to lame to pull that off. What bothers me is the lack of creativity that I have appearing in the theme realm. My source for this opinion is http://www.themes.org/ , so if someone has a better site or example, please let me know. The thing is, most “themes” or “skins” are damn Aqua clones, or XP/Aero-like. Wtf? Where are the Bluesteels and eChaos of today? I know it seems like many people are moving to DM’s rather than WM’s, but come on folks. Luckily, E17 looks pretty good so far. I’m just waiting for a client stable enough for me to run in every day usage (I tried it, but I had a few too many segfaults for my taste).

Luxury of Break

December 21, 2006

Seeing as how my classes are now out for the winter break, and I’m back to my FreeBSD box, I have a chance to work on a few things. First off, I plan to be done with the C Book (‘The C Programming Language” by Kernighan and Ritchie), touched on my Greek Lessons, and most importantly (okay, so it’s not the most important, the C book will probably help a lot with this…) is to make the Songbird Media Player (http://www.songbirdnest.com/) work in FreeBSD. Using the patch provided (some bugzilla posing) and the Apple makefile, it will supposedly compile. All I’ve managed to achieve so far is an arse load of errors with the make files and missing operations in the if statements. Good thing I’ve got nothing but time on my hands.

P.S.: A gui for imagecloud is in the pipeline too.

I Love Amazon

December 20, 2006

My Amazon.com Wish List

Back home

December 16, 2006

Since classes are wrapping up, and my dependence for Internet Explorer fades away, I get to go back to FreeBSD. I don’t know why I like it more; I can’t find a single rationale. All I know is that ports are fun. I had a few, *minor* hiccups while installing. Once was the fact it didn’t like my two DOS partitons, each being primary. To fix it, I simply converted one to NTFS, although in the process it seems to have lost my Las Vegas episodes. Luckily, my cartoons remained intact. I also did some digging in the /usr/ports folder and found that all the qemu stuff was in there (qemu, kqemu-kmod, and qemu-launcher), which is cool. I couldn’t find those in yum when I was running fedora. I does seem, however, with the kqemu-kmod loaded, the Win2k install takes a litte longer. Wonder why…

Incoming !

December 4, 2006

Wow, for not apparent reason, the blog has recieved a MASSIVE 64 hits so far today, as compared to the normals 15 – 20 a day. strange…

Put that pointer away!

December 3, 2006

I’ve been working on imagecloud more, and listening to my sister tell me how it needs a gui for mass appeal. I don’t disagree, but I am the LAST person one wants designing one of those. Think… http://www.codinghorror.com/blog/images/wgetgui-screenshot.png . Don’t get me wrong, I love wget, but I don’t know that the average user loves that UI. Anyway, my sister is sketching what a sane UI would work like for me. Back in the code, where I actually work, I realized I don’t need that pointer for Glob() to return if I used a variable parameter instead of value and make it a procedure. Much simpler to work with then. I’m almost finished. I just need to complete the searching through the tags portion, and mayble look into what other libraries are available to it for graphic displaying (read : Thumbnails).

ImageCloud Update

December 1, 2006

My Pascal version of ImageCloud is coming along decently. I couldn’t return an StrArray for some reason (fpc kept failing to compile) so rather than figure out the problem, I used a pointer instead. Seemed simpler.

program ImageCloud( input, output, TagDB );


uses

  DOS; {to enable findfirst and findnext}

const

  MAXDBSIZE = 224; {max number of cells to the array}

type

  StrArray = Array [0..(MAXDBSIZE-1)] of String; {define type for array}

  FileTypes = (JPG, GIF, PNG);

  StrAryPtr = ^StrArray;

var

  TagDB : Text; {Declare database file for tags and filenames}



function Glob(pathname : String) : StrArray;

  var

    listing : StrArray;

    listptr : StrAryPtr;

    s : SearchRec; {variable to store the found file in}

    i : Integer; {counter variable for loops}

  begin

    i := 1; 

    listing[0] := ' '; {set the first cell of the filelist to a blank space for loop termination check}

    findfirst(pathname + '*.*', AnyFile, s); {find first file in provided directory}

    if s.name <> '' then {if the name is not blank, that is, an file was found in the provided directory}

      begin

        while (i < MAXDBSIZE) and ((pathname + s.name) <> listing[i-1]) do 

          begin

            listing[i] := pathname + s.name; {store absolute path in cell}

            i := i + 1; {Increment counter value}

            findnext(s); {find next file in directory}

          end;

        listptr := @listing;

        Glob := listptr^;

      end

    else {if no files are found...}

      begin

        writeln('No files in that directory!');

        exit;

      end;

  end;


procedure ListFiles(filelist : StrArray);

  var

    i : Integer;

  begin

    i := 1;

    while (i < MAXDBSIZE) and (filelist[i] <> '') do {while not end of array and filelist[i] not empyty}

      begin

        writeln(filelist[i]); {write filelist value to stdout}

        i := i + 1; {increment counter}

      end;

  end;



procedure PickleDB(filelist : StrArray);

  var

    i : Integer;

  begin

    i := 1;

    while (i < MAXDBSIZE) and (filelist[i] <> '') do {while not end of array and filelist[i] not empyty}

      begin

        writeln(TagDB, filelist[i]); {write filelist value to file}

        i := i + 1; {increment counter}

      end;

  end;



procedure AddFiles;

  var

    filelist : StrArray;

    pathname : String;

  begin

    writeln('What is the path to scan for the images?');

    readln(pathname);

    writeln('Globbing...');

    filelist := Glob(pathname);

    writeln('Listing...');

    ListFiles(filelist);

    writeln('PickleDB');

    PickleDB(filelist);

    writeln('Done!')

  end;



procedure BrowseFiles;

  begin

    writeln('Not yet implemented!');

    exit;

  end;

	

procedure UserInput;

  var

    inputchar : Char;

    loopcatch : Integer;

  begin

    loopcatch := 0;

    inputchar := ' ';

      repeat

        write('Do you want to [B]rowse, [A]dd, or [Q]uit? >>');

        readln(inputchar);

          case inputchar of

            'a','A': begin

                       AddFiles;

                       loopcatch := loopcatch + 1;

                     end;

            'b','B': begin

                       BrowseFiles;

                       loopcatch := loopcatch + 1;

                     end;

            'q','Q': begin

                       loopcatch := loopcatch + 1;

                       exit;

                     end;

          end;

      until loopcatch <> 0;

  end;

	  

begin {main}

  assign(TagDB, 'tags.dat'); {associate the variable TagDB with tags.dat file}

  rewrite(TagDB); {ready file for writing}

  UserInput; {call main user input subprogram}

  close(TagDB)

end. {main}