Google recently blogged a video showing off new features in gdocs, and it looks like much of what has been missing, is now coming promptly to Google Docs :-D. They don’t seem to have rolled out, at least to my level of access, but it’s looking good on the tiny screen.
Software
In one of the rare moments that I actually stop to read my RSS feeds techy side, I noticed that WebKit2 has been announced. The only thing I can’t help but wonder, is what the flub does a layout engine have to do with processes? Not a damn thing! Personally, I would appreciate a separate API/library for such separate of interest: in particular, one not tied directly to WebKit lol. Ok, so maybe I’m crazy.
Whether you are a user or a developer o/, nether Xembed or the various (oft’ fugly) incarnations of Microsoft COM really make anyones lives just easier. Under X based systems however, it is possible to mate separate processes running WebKit into a central controller without to much heartache; there are already some bare bones browsers out there worth looking into, and patching when they don’t measure up. Non however have become common place, and even among PCs, there are really only a handful of common web browsers out of dozens of products to choose from.
Somethings are always going to be closely bound; first takes of an idea, even more so an idea geared for getting the current project done, tend to do that even more so. Personally, I will just be happy when there are less web browsers out there that suck… and keep on sucking.
Interesting…
I’ve noticed that if I place my screen window into copy mode while the compiler runs, Firefox doesn’t become so massively unresponsive, slower, but no where near as slow. This makes me wonder a bit.
Either way, I can run less bloated web browsers on this meager laptop without any hiccups from a running compiler 8=).
Building SpiderMonkey 1.8.0 rc1 on Windows XP with Visual C++ 2008 / 9.0
Finding this note in SpiderMonkies documentation was a huge NO NO for me, because a dependency on Autoconf 2.13 is *worse* then a dependency on Autotools in general.
As I said I would, I investigated Windows/MSVC builds with SpiderMonkey before completing and utterly refusing to ever use the thing ^_^. This is a summery of my findings.
A lot of people are still using Visual C++ 7.1/2003.NET or 8.0/2005 versions, while I however use the Express Edition of Visual C++ 9.0/2008 for Windows builds, which generally means no pre-compiled libs binaries are available. That’s ok, since I prefer to evaluate the buildability of a dependency before I commit to using it…. hehe. One perk of doing most of my coding under FreeBSD, no need to buy a Professional Edition of Visual Studio :-D. I think this post should apply to most versions of Microsoft’s compiler, +/- differences in compiler flags.
The proper build requires MinGW, MSys, GNU Make, and a suitable copy of Visual C++.
MSys is required because of UNIX tools, such as uname, sed, and countless others are used by the build system; which also seems to depend on GNU Make.
Open the Visual Studio command prompt, or call %VS90COMNTOOLS%vsvars32.bat from your current cmd session (VS90 = 2008 fyi; adapt as needed for older/newer versions). Then execute a MSys RXVT terminal from that. You do that by running the msys.bat script in the MSys root with the -rxvt argument, example:
+> C:DevFilesMSYS1.0msys.bat -rxvt
which will close the cmd session and open RXVT.
Change over to the js/src directory of where you extracted SpideryMonkey to, and run make on the projects makefile:
bash $ pushd /C/DevFiles/Libraries/SpiderMonkey/1.8.0rc1/js/src/
bash $ make BUILD_OPT=1 -f Makefile.ref
The BUILD_OPT causes an optimised release build to be made, default seems to be debug builds; read the Makefiles and Wiki for details on that.
Now for an example app to test, to see if more then js.exe works!
bash $ cat > test.c
#include "jsapi.h"
/* The class of the global object. */
static JSClass global_class = {
"global", JSCLASS_GLOBAL_FLAGS,
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub,
JSCLASS_NO_OPTIONAL_MEMBERS
};
/* The error reporter callback. */
void reportError(JSContext *cx, const char *message, JSErrorReport *report)
{
fprintf(stderr, "%s:%u:%sn",
report->filename ? report->filename : "",
(unsigned int) report->lineno,
message);
}
int main(int argc, const char *argv[])
{
/* JS variables. */
JSRuntime *rt;
JSContext *cx;
JSObject *global;
/* Create a JS runtime. */
rt = JS_NewRuntime(8L * 1024L * 1024L);
if (rt == NULL)
return 1;
/* Create a context. */
cx = JS_NewContext(rt, 8192);
if (cx == NULL)
return 1;
JS_SetOptions(cx, JSOPTION_VAROBJFIX);
JS_SetVersion(cx, JSVERSION_LATEST);
JS_SetErrorReporter(cx, reportError);
/* Create the global object. */
global = JS_NewObject(cx, &global_class, NULL, NULL);
if (global == NULL)
return 1;
/* Populate the global object with the standard globals,
like Object and Array. */
if (!JS_InitStandardClasses(cx, global))
return 1;
/* Your application code here. This may include JSAPI calls
to create your own custom JS objects and run scripts. */
/* Cleanup. */
JS_DestroyContext(cx);
JS_DestroyRuntime(rt);
JS_ShutDown();
return 0;
}
bash $ $ cl -nologo -DXP_WIN -I.. -MD -Fetest test.c js32.lib
bash $ ./test.exe
footnote: that test.c is just the minimal app example from the user guide, here. Also note that using /dos style switches with cl under bash/rxvt, doesn’t seem to work (it’s converted to file names).
I’ll need to do some further testing but everything appears to be working fine.
Thoughts drift to backup technology
As has been on my todo list for a while, is setting up cron jobs for running dump on my file server, as an “Extra” safe guard to the fact, that my data is mirrored across three different computers already, hehe. (I also do periodic backups to a separate cold storage partition, and priority files to CD-R every year or two.)
My main concern there of course being, how to do it without compromising disk space to much, after all we’re talking about a lot of crap lol. In writing my test script, I’ve also experimented with piping dump into lzma for compression, but at least with Vectra’s scarce resources, is a bit toooo much for the box to handle the data sets involved. Then I started to think, gee, wouldn’t it be cool to just keep a SQLite database that stores logs of changes (cron’d from a script), and then periodically run ZIP on the target, excluding unchanged files since the last backup. Effectively creating a smart form of dump, that functions at a different file system layer (e.g. like tar or cpio).
Then I started to think, well, the best existing solution that I’ve ever bumped into my travels, is a program called Bacula, but I’ve never had to to explore it. With a little poking around, it seems that Bacula is very much the kind of system that I would like to have.
Which poses three questions:
- How well does it work with OpenBSD?
- How well does it handle disk space/compression tasks?
- When will I have time to read all the excellent documentation?
So, sadly it will probably be some time after the new year has come and gone, that I’ll have time to return to this loop; my RTM updated accordingly. On the upside, if three hard disks in separate locations of the building, and with very controlled data replication patterns, some how fails before then…. the entire building will likely have collapsed, so it would be the least of my worries lol.
Full throttle
So far so good, managed to burst through my weekend todo’s hehe. Completed my work for [SAS], got time to play a couple games, did the setup for ticket and documentation management needs on a personal project. Plus I’ve been aggressively moving ahead with the [SAS] Dept. of Agriculture map for SWAT 4.
All this while upgrading my laptop >_>.
Remaining to do with The DoA, is setting up the access from the outside spawn on level 1, to the window breaching point up on level 3. I’ve completed the relighting and half the general cleanup of the building, so the only big task: redoing the AI. I plan on setting up an interesting little “Scenario”, hehe. If I could, pushable barricades would be a nice touch but I’ve yet to figure that out in SwatEd.
Most of my time has been spent on the Encapsulated Package Installer (EPI) project. We now have a forum, issue tracker, and wiki system going. Things are not moving as quickly as I would like with EPI, but the past two weeks have advanced rapidly on infrastructural issues. When our new systems are more established, I’ll likely make references to it here.
Overall, the highlight of my weekend, has been (at long last) getting my invitation request to Google Wave accepted. So far it seems to be coming along well, but I have almost no one to wave with at the moment lol. The ability to invite 8 others came along with it; most of which I’ve mentally reserved for a few close friends and a couple for good uses. The main downside of Wave, is simply that e-mail and traditional IM systems have been around a really fraking long time; so it’s an uphill battle. One that I expect the world is not quite ready for yet, although it is very much a technology in the direction of our Internet future.
I’ve even found the time to migrate most of my gaming related pictures on to the WWW! The old home directory is getting thinner ^_^. Another thing I’ve gotten down, is transferring Live Journal entries from November 2008 to this Blog. I really need to pick up the pace on that. As much bother as it is, one thing I really do like about this migration procedure, is it gives me the ability to organise my old entries using lables; walks me down memory lane, and helps me to find ‘useful’ posts that were forgotten.
Life is busy, the serious issue is advancing forward quick enough for my tastes… rather then being bogged down and omni-tasked to death. My family is good at doing that.
Operation Triage: Day 1.1 at the RTM
Last night I setup an account on rtm for evaluating it’s usefulness to my todo list problemo. It provides all the features that the gmail/gcal/ig integrated tasks buddy from Google is lacking, and integrates perfectly into their workflows—awesome job RTM!
Remember The Milk (rtm) is a web based application and supporting service, for managing tasks; you could probably keep your grocery list on this thing too, if you had a decent phone. It supports the obvious stuff, due dates, time estimates, repeaters (oy), and combines it with attributes more often found in social systems, like tagging and sharing. The amount of ways to work with rtm alone make it easier to mate with ones workflow on a level, that most web apps on the net could only dream about reaching. Without a doubt, Remember The Milk has been designed to be the supreme queen in web usability, and provides such a nifty set of keyboard shortcuts that give Geeks like me an extra edge on top of it. I almost think my mother could use this website… it’s that easy lol. The power-user features also make it well worth learning how to utilise every ounce out of the system. So far the only negative thing I can say about rtm, is that adding a due date on the rtm website doesn’t magically add it as an event in my gcal, but alas no one is flawless :-P.
I’ve imported all my todo list, after filtering the 5 month out of date file through my brain log along the way, plus put in everything everything on the immediate plate; took me about an hour. Everything of major importance has been marked accordingly with reminders scheduled to be sent to one of my Instant Messengering accounts. Three things that attracted me to rtm: the ability for using tags (as fellow delicious & gnolia fans will enjoy) in addition to regular task lists; reminders by most forms of contact like email, sms, and virtually every IM method short of an automated phone call; not to mention integration with Google Mail & Calendar.
Currently I’ve created Cleaning, Contact, Projects, Reading, SAS, and Writing lists to go along side the standard issue Inbox, Personal, Study, Work, and Sent lists. Tags are being used so I can quickly study what’s on the list according to subject matter; this way when any of the various hats needs a quick servicing within a group of tasks, I can dip into those open loops and screen out the others. Smart lists also make it possible to quickly study tasks by meta-criteria; my first smart list is one to show me all open tasks, that have a priority marker set.
As I told a friend earlier, I essentially don’t have to do nothin’ but stay white and die, the huge ass list of todo’s is mostly projects I’m involved with, and usually get clobbered by the fact that I get interrupted 200+++ times a day by the surviving parental unit, until they fade off the days agenda. Fortunately most of my tasks are in the format of, to do before hell freezes over—but most I would like to get done within the much shorter term! That’s where Operation Triage comes into play.
Everything is being trimmed back in accordance with what I have time and energy to deal with at this point in life, and to get as much of the stuff that I want gotten done organised so it doesn’t “Fall off” the water fall. Continently the only urgent loops being to get my learners permit, tend to SAS business, and my most important projects. Other tasks are growing closer to completion, and RTM will help me keep them in line with reality.
For the most part, these tasks in the rtm system amount to crap I need to read (lower priorities :'() and things that I need to write: which is easily sorted by priority. The hard part is Just Getting It Done without having to threaten anyone along the way with bodily harm :-/. Actually that would be a productivity boost I’m sure, but it is most strongly against my gentle nature 8=). I need to do further study on how best to collate the development tasks, since they don’t quite fit into a box, so much as a creative juice meets free time equation.
To do list, I shall conquer you!
Well that’s another day blown
Slept in, since there was no need to get up before noon, I got out of bed around 1100—having originally woken up around 0800. I’ve yet to solve the sleep problem, but at least I am getting up earlier with much greater consistency, the down side is I don’t think I can sleep much longer then four or five hours at a time without waking up… beats the alternatives I guess.
I toyed around with my to do list program for the morning, as a way of passing time until it was time to leave; ma had to see a doctor to sort out some of the post-hospital stuff. So I spent most of my day sitting in a health clinics lobby, in the next county lol. After three or so hours of that was hiking around the supermarket while her perscriptions were being filled—so much for coding today.
Experiments in an SQLite3 based tasks manager are postponed, in favour of using Googles `Tasks` system that is mated to gmail and gcal. Until further notice, it looks like `gtasks` is m new todo management system; I’ll also take a look at RTM later tonight, and try to evaluate if it’s worth while.
While I don’t particularly care for it, I think it’s time to re-evaluate iGoogle as a way of integrating a few more things into my work flow.
Personally, I don’t care much for being reliant on any company for my resource needs, I do however like good web applications, and Google Mail is exceptional! Docs, Cal, Groups, and Chat also makes things much easier. In point of fact, my preferred contact method is XMPP—which is the backend provider for Google Talk. Life would be so much cooler if the various major instant messenger systems (AIM, MSN, Yahoo!, ICQ) could integrate half as nicely as XMPP based solutions do.
I don’t need to use an Live mail account to email my friends, why should I need a Live ID to chat with them? Maybe Wave might change that someday.
What I would desire in a todo/task management system
Obviously it would need to offer a CRUD interface to some form of persistent storage, namely one that I can easily access anywhere; that makes the most idea solution a file in my home directory, or something accessible over the network.
It would have to support some notion of “Tagging“, every entry should be able to be tagged under multiple names and queried accordingly.
A list view comparable to the collapsible “Groups” in most instant messengering softwares buddy list, would be a perfect way to view tags, particular when combined with the ability to search todo’s by tag and other criteria: like date, title, and all other data.
While software oriented towards managing the software life cycle might be useful, I need something of a more general nature. The only real short coming of Google Tasks is that while it integrates into Mail and Calendar quite nicely, it unfortunately has no real concept of tagging. It’s more of a gimmick then a useful feature.
In all probability I could munge together some AWK scripts and an SQLite database to get exactly what I want, hahahahahahah! And maybe someday write a graphical front end. Hmm…
Only had like 2 or 3 hours sleep last night at the most, and should we say, mornings here just reinforce, feeling like nothing but an asset in the equation :-(.
Been experimenting some in GIMP on a few things related to SWAT 4 skins; also to my joy, the DDS plugin compiles and builds fine on FreeBSD. I kind of like working on images in GIMP, doing something decent can really be time consuming, and since I’m rather inexperienced at putting such software through it’s paces, it incorporates a measure of exploration as well. Because the display on my desktop, basically makes anything involving blacks impossible to work with, I’ve been using my laptop more and more for image stuffs. Really, I prefer the touch pad; for everything I’ve thrown at it, except for gaming. (My laptop isn’t capable of running many FPS games.).
There is a lot of stuff I wish I could learn about software like GIMP and Photoshop, but all in all, I just can’t see myself doing that much work. There are just some things that I can see most effectively done in software, and other things that I just can’t quiet put into words… but could likely take a wild crack at with the right (artists) tools.
When I was younger, I used to spend a lot of time drawing, I loved to sketch and to doodle. It’s been more then just many moons, since I last drew anything by hand. Heck, the last time I even held a pen in hand, was probably at the doctors office… lol. Really, I’m not sure exactly why or when I stopped drawing, but it was probably between 2002-2003 or so.
Technically, I’m not to old to start again, and with the right level of applied effort, I could learn much more then I did. But, I think such would be more trouble then it’s worth, and worse, likely break down further what privacy I have offline. My mother studied as a cartoonist, so obviously she would likely want to butt her noise into things; and shall we say, things that I do to relax, I generally do not wish to be “Disturbed” over. That being said, the best things I ever drew while growing up, were probably drawn in the dark, by nothing more then TV light! Digging out more then a No.2 pencil would also be pushing the limits at my stealth skills considerably, and I’m very good at most things clandestine…
All of my life, I have looked for forms of expression…Things that let me put what I’m feeling into motion, let it take some shape and be free. Although arguably such things could be considered a form of communication, I’ve never cared to much about using it as such, so much as for its own sake. Personally, I consider myself somewhat self-centered—which is an attribute I utterly hate. But, for me it has mostly been a way of ‘surviving’ without being erased by the world around me. You could say that in my world and in my family, it is very easy to become trampled over here.
Sigh, sometimes I really don’t like my life.