[Alpha] NifSE v1.0

Post » Sat Feb 19, 2011 7:36 am

Was thinking I'd use Google Code for that, honestly. But yes, this is very high on my list of priorities. Right now I'm double triple I've-lost-count checking that I have everything I want off the drive before packing it up and returning it to Seagate.
I haven't used Google Code personally (SVN repos are one of the banes of my life) but I've found its online UI easy to use. I'd recommend GitHub if only I could remember how to pull changes from a fork :P

Heh, you shortchange yourself by not including "shadeMe" in that list.
I've always been an paradigm of modesty. Besides, I used the word "others", didn't I ?
User avatar
Alyce Argabright
 
Posts: 3403
Joined: Mon Aug 20, 2007 8:11 pm

Post » Fri Feb 18, 2011 7:53 pm

I'm glad this ended well Dragoonwraith :)

Hope to see the fruits of this endeavor soon!
User avatar
Chris BEvan
 
Posts: 3359
Joined: Mon Jul 02, 2007 4:40 pm

Post » Fri Feb 18, 2011 9:09 pm

I'm glad to hear that you were able to get your files back!

I'd recommend GitHub if only I could remember how to pull changes from a fork :P

I'd use http://gitorious.org/ rather than GitHub, actually.

I'd also suggest taking a look at something like http://mozy.com/ just for general backup.
User avatar
Latisha Fry
 
Posts: 3399
Joined: Sat Jun 24, 2006 6:42 am

Post » Fri Feb 18, 2011 6:13 pm

Thanks for the suggestions. I think I'll use Google just to keep things simple (already have an account, ties it in with my e-mail for the project, etc etc), but I do appreciate the alternatives being offered, that's good to know.
User avatar
Tiffany Holmes
 
Posts: 3351
Joined: Sun Sep 10, 2006 2:28 am

Post » Fri Feb 18, 2011 6:54 pm

OK, anyway, in other news - how is the alpha going? I know Skycaptain's been pretty thrilled with it so far, how about the rest of you?

Also, anyone have any suggestions for cleaning off my processor?
User avatar
Brittany Abner
 
Posts: 3401
Joined: Wed Oct 24, 2007 10:48 pm

Post » Fri Feb 18, 2011 10:40 pm

Also, anyone have any suggestions for cleaning off my processor?


What type of CPU do you have, and what type of thermal paste was it?

Gentle cleaning with a toothbrush and 99% isopropyl alcohol could work well for the CPU, but if you got paste into the CPU socket as well, I'm not sure what would be a good procedure there.
User avatar
Laura-Lee Gerwing
 
Posts: 3363
Joined: Fri Jan 12, 2007 12:46 am

Post » Fri Feb 18, 2011 8:41 pm

It's an Intel Core 2 Duo. It doesn't actually have pins, but rather little pads and then the socket has these little spring-like things that touch the pads. I tried using some alcohol pads (the kind used for sterilizing skin before a needle injection), but I can see kind of like a "shadow" in the area where it was, like there's still some residue.

No idea if there's any appreciable amount on the socket "springs", since all that was left was that "shadow" when I tried it. All I really know is that the computer instantly shut off when I tried to turn it on...
User avatar
Aman Bhattal
 
Posts: 3424
Joined: Sun Dec 17, 2006 12:01 am

Post » Sat Feb 19, 2011 5:05 am

It's an Intel Core 2 Duo. It doesn't actually have pins, but rather little pads and then the socket has these little spring-like things that touch the pads. I tried using some alcohol pads (the kind used for sterilizing skin before a needle injection), but I can see kind of like a "shadow" in the area where it was, like there's still some residue.

No idea if there's any appreciable amount on the socket "springs", since all that was left was that "shadow" when I tried it. All I really know is that the computer instantly shut off when I tried to turn it on...


If the CPU isn't dead, then it's good that it is Intel, for precisely the reason that you noted: not having "pins," per say, it should be easier to clean. I maintain that the cleaning alcohol should be a good way to clean off that residue, but you'll want a high percentage isopropyl alcohol (99% would be great) so that there isn't much water to begin with and evaporation/drying is quick.

Unless someone else has better advice, I'd say clean the CPU in the way that I've suggested and try firing it back up once completely dry :shrug:. Was there any sort of beep code when it shut off?
User avatar
Jessica Phoenix
 
Posts: 3420
Joined: Sat Jun 24, 2006 8:49 am

Post » Fri Feb 18, 2011 10:20 pm

OK, anyway, in other news - how is the alpha going? I know Skycaptain's been pretty thrilled with it so far, how about the rest of you?

Could you send me a copy? (I emailed you about it right before your drive crash, so the request may have slipped through the cracks.)

It may also be a good time to look back at my http://www.gamesas.com/index.php?/topic/1089336-alpha-nifse-v10/page__view__findpost__p__15887194 that got eclipsed by data recovery efforts.
User avatar
Jessica Stokes
 
Posts: 3315
Joined: Fri Jul 28, 2006 11:01 am

Post » Sat Feb 19, 2011 9:16 am

Yes, I'll be taking a look at that post as soon as I've got Windows up and running again. But I don't... think I have an e-mail from you? Google search of my inbox certainly returns nothing that even mentions "Wyzard" in it, so if you did then I don't know which e-mail is you...

Anyway, a bit of oddness - it seems my parents' Windows does not recognize my new drive, either. PartedMagic has no trouble with it, and mhdd returns no errors with it, but for some reason Windows isn't seeing it. Any idea why that might be?

In any event, I'm making another copy of everything (currently at 11%), since the partition I made for the original copying ended up being way huger than necessary. I'll be installing Windows on another partition I made, see if maybe that copy of Windows can see the drive...
User avatar
Brian Newman
 
Posts: 3466
Joined: Tue Oct 16, 2007 3:36 pm

Post » Fri Feb 18, 2011 7:42 pm

Oh thank god everything worked out! :clap:

My highest praise to all the great people who helped Dragoon with this, I pesonally didn′t have any knowledge to share about HDs, so I had to resort to just hoping for the best, really hard. :P
User avatar
Mrs Pooh
 
Posts: 3340
Joined: Wed Oct 24, 2007 7:30 pm

Post » Sat Feb 19, 2011 7:05 am

Solved the missing drive issue - that was simple, apparently the BIOS was set to not even look at the SATA 2 slot. Turned that on, reboot, no problem. That probably would have worked with the bad drive, heh, obviating the need to mess with PartedMagic at all. Which svcks cuz that would have been before I ever touched my processor.... though I am glad I got a chance to witness the incredible power that is Parted Magic. Seriously, amazing, amazing program there.

Anyway, I haven't solved the processor issues - to be perfectly honest, I haven't even tried at this point. Everything I read suggests that it should just clean off pretty easily, but I can still see some residue on the pads... high-purity isopropylalcohol seems to be the weapon of choice here; not sure of the purity of the sterilizing pads we have, but I do know they didn't take off all of the paste....

That, or it did, but managed to corrode the pads. Hope not...
User avatar
Project
 
Posts: 3490
Joined: Fri May 04, 2007 7:58 am

Post » Sat Feb 19, 2011 1:15 am

I'd be wary of going too far forward without it -- you don't want to paint yourself into a corner and have to deprecate a bunch of functions because you've created hierarchy-capable replacements for them, but keep having to support them forever because mods are already relying on them.

One possible approach that comes to mind is to change the Child ID to be a more general Node ID that can represent nodes anywhere in the tree. You can define the root node to be ID #0, and traverse the tree (preorder, postorder, breadth-first, whatever) to assign numbers to all the others. All the existing commands that take a ChildID and NifID would still work in basically the same way, but could operate on any node rather than just top-level children.

What would need to change, to implement that approach, is just the way that scripts learn what ID numbers are valid. Currently you have NifGetNumChildren, which provides one end of a range of numbers whose other end is implicitly zero. That could be changed to something like NifGetChildren, which would take a NifID and a NodeID and return an array listing the IDs of the node's children. Scripts would call it once with a NodeID of zero, then again with the IDs obtained from the first call, and so on.

If you'd rather avoid returning arrays, you could use a breadth-first traversal to produce the node ID numbers, so that sibling nodes are always numbered consecutively. Then you'd just need a pair of commands that return the starting and ending IDs of a node's children.

As for this, that could work.

The alternative I'd been considering was to have a series of optional short arguments tailing most NifSE functions, which could be used to specify children as opposed to the root. So it would be something like this:
(type:return) function short:nifID [short:childID] [childID] [childID] [childID] [childID]

So you could, perhaps, call this:
NifSetNthChildName "Blah" nifID 1 4

Which would set the name of child 4 of child 1 of the root.

The only reason I tend to favor my approach is because I'm worried about the indices getting messed up your way. I mean... that makes no sense, I don't see how they would, but I'm just concerned because when dealing with Nifs my code is very much an outsider-looking-in and I'm not sure I can ensure consistency. Not to mention when you add new nodes... that could get confusing very quickly. Though honestly, it already can get very confusing very quickly in that case. As a general practice, I'd recommend not trying to cache childIDs for too long...
User avatar
Ludivine Poussineau
 
Posts: 3353
Joined: Fri Mar 30, 2007 2:49 pm

Post » Fri Feb 18, 2011 6:21 pm

Anyway, I haven't solved the processor issues - to be perfectly honest, I haven't even tried at this point. Everything I read suggests that it should just clean off pretty easily, but I can still see some residue on the pads... high-purity isopropylalcohol seems to be the weapon of choice here; not sure of the purity of the sterilizing pads we have, but I do know they didn't take off all of the paste....

Hey man, I just read about your computer woes -- sorry I didn't see earlier, but it looks like everyone else was around to offer good advice.

That said, I think I can help out here. While bio/chem stock isopropanol (I think that's usually 99%) is ideal for getting rid of the thermal grease/pad residue, my own experience has shown 70% isopropanol to work exactly as well. You can buy whole bottles of 70% at CVS, whereas good luck getting 99% anywhere unless you have access to a bio/chem lab. Just use a bunch of Q-tips soaked in the stuff, and with a little pressure it'll all come right off. The shading on the processor might be a little different, but if that's all you can see you're fine.
User avatar
Dawn Porter
 
Posts: 3449
Joined: Sun Jun 18, 2006 11:17 am

Post » Fri Feb 18, 2011 6:11 pm

Heh, D&D Wikia Surgo? Nice to see you here; hope this project interests you as much as my 'brew. Anyway, well, it still doesn't work, despite the alcohol. So. I don't really know what to do. I mean, is there any way I can confirm it's dead? I feel so dumb just giving up on it; it's not like processors are overly cheap...
User avatar
Max Van Morrison
 
Posts: 3503
Joined: Sat Jul 07, 2007 4:48 pm

Post » Sat Feb 19, 2011 12:15 am

Heh, D&D Wikia Surgo? Nice to see you here; hope this project interests you as much as my 'brew. Anyway, well, it still doesn't work, despite the alcohol. So. I don't really know what to do. I mean, is there any way I can confirm it's dead? I feel so dumb just giving up on it; it's not like processors are overly cheap...

Do you know what percentage isopropanol you used? (Should say on the back of the packaging, if it was the sterile pads.)

edit: Cotton buds will work better than q-tips in this situation.
User avatar
Pat RiMsey
 
Posts: 3306
Joined: Fri Oct 19, 2007 1:22 am

Post » Sat Feb 19, 2011 3:40 am

Twas 70%, according to the packaging. Not ideal, but not awful, either.
User avatar
Invasion's
 
Posts: 3546
Joined: Fri Aug 18, 2006 6:09 pm

Post » Sat Feb 19, 2011 3:55 am

Great to hear everything worked out. I was a bit worried when I went away for the weekend and discovered I had no mobile signal and no internet connection!

Anyway, a quick tip for cleaning processors and sockets. alcohol is a good option, but actually really better for screens. The best way to clean the inside of a PC (and any components) is a can of compressed air and a nozzle. It'll only cost $5 or so and is a very safe way of removing any nasties.

Finally getting back to coding tonight (after I watch saturday's Dr who at least) so we'll see if I reach NiSE time tonight...

HeX

HeX
User avatar
Rudy Paint fingers
 
Posts: 3416
Joined: Sun Nov 11, 2007 1:52 am

Post » Sat Feb 19, 2011 8:50 am

Compressed air is not going to remove thermal paste. Of that, I am very sure. Hehe, appreciate it, though, and again, thank you for all your help last week. Let me know how NifSE goes!

By the way, does anyone have any commentary on how to handle the hierarchy issue? Both approaches (mine and Wyzard's) would work and would be about equally difficult (read: not very) to code and test. His is probbaly a little easier to code, a little harder to test, but overall the two are quite similar in terms of workload. How would you like to work with things?
User avatar
gary lee
 
Posts: 3436
Joined: Tue Jul 03, 2007 7:49 pm

Post » Sat Feb 19, 2011 1:13 am

The alternative I'd been considering was to have a series of optional short arguments tailing most NifSE functions, which could be used to specify children as opposed to the root. So it would be something like this:
(type:return) function short:nifID [short:childID] [childID] [childID] [childID] [childID]

So you could, perhaps, call this:
NifSetNthChildName "Blah" nifID 1 4

Which would set the name of child 4 of child 1 of the root.

The drawback to this approach is that the "depth" of the node is effectively hard-coded into the script, even if the actual node index isn't. Your example has two childIDs following the nifID, so it must always refer to a node two levels below the root, and no use of variables can change that. This requires the modder to know in advance how the nif will be structured, which isn't always possible, or else to write separate code for working with each depth level. You're also limited in how "tall" a tree you can work with, since the command only accepts a limited number of childID parameters.

Thinking further about my own approach, I'm leaning toward the consecutively-numbered children (breadth-first traversal) as my recommendation. It's simple and doesn't require array returns, just a pair of functions like NifGetNodeNumChildren and NifGetNodeFirstChildID that each take a nifID and nodeID. If a modder wants to manipulate the nif (adding/removing nodes), they can work downward, from high nodeIDs to low, so that any changes only affect IDs that the script has already visited and doesn't need anymore.

With the nodeID approach it'd also be possible to scan through all nodes regardless of hierarchy, maybe looking for a node of a particular type, and then follow the path back up the hierarchy to the root. In addition to NifGetNumNodes (the command currently known as NifGetNumChildren) you'd just need NifGetNodeParentID that takes a nodeID and returns its parent nodeID.

Twas 70%, according to the packaging. Not ideal, but not awful, either.

I have some 91% isopropyl that I bought at CVS a few years ago. Didn't have to go to any great lengths to find it. I'd recommend some of that and a cotton swab.
User avatar
Emmanuel Morales
 
Posts: 3433
Joined: Sat Oct 06, 2007 2:03 pm

Post » Sat Feb 19, 2011 5:32 am

The drawback to this approach is that the "depth" of the node is effectively hard-coded into the script, even if the actual node index isn't. Your example has two childIDs following the nifID, so it must always refer to a node two levels below the root, and no use of variables can change that. This requires the modder to know in advance how the nif will be structured, which isn't always possible, or else to write separate code for working with each depth level. You're also limited in how "tall" a tree you can work with, since the command only accepts a limited number of childID parameters.

Thinking further about my own approach, I'm leaning toward the consecutively-numbered children (breadth-first traversal) as my recommendation. It's simple and doesn't require array returns, just a pair of functions like NifGetNodeNumChildren and NifGetNodeFirstChildID that each take a nifID and nodeID. If a modder wants to manipulate the nif (adding/removing nodes), they can work downward, from high nodeIDs to low, so that any changes only affect IDs that the script has already visited and doesn't need anymore.

With the nodeID approach it'd also be possible to scan through all nodes regardless of hierarchy, maybe looking for a node of a particular type, and then follow the path back up the hierarchy to the root. In addition to NifGetNumNodes (the command currently known as NifGetNumChildren) you'd just need NifGetNodeParentID that takes a nodeID and returns its parent nodeID.

Hmm, that's an excellent point. Yeah, your method sounds best then.


I have some 91% isopropyl that I bought at CVS a few years ago. Didn't have to go to any great lengths to find it. I'd recommend some of that and a cotton swab.

Yeah, I don't expect it to be too difficult, but I've been lazy and haven't gotten around to it.
User avatar
jennie xhx
 
Posts: 3429
Joined: Wed Jun 21, 2006 10:28 am

Post » Sat Feb 19, 2011 4:38 am

DW, could I perhaps take a look at your messaging code ? I don't seem to be receiving any messages from NifSE. That's the internal name, right ? NifSE ? Yes, it is.

EDIT: Strange, your plugin seems to be reporting incompatibilities during the plugin manager's query routine. Can you think of any reason why it would ?

EDIT2: Looks like you're registering the plugin with the messaging API inside OBSE_PluginQuery(). While it might work in this case (where the target plugin, CSE, loads before NifSE) , it is recommended in the pluginAPI that RegisterListener calls be deferred to a MessagingInterface::kMessage_PostLoad callback.
User avatar
Tanya
 
Posts: 3358
Joined: Fri Feb 16, 2007 6:01 am

Post » Sat Feb 19, 2011 6:17 am

Huh... in Editor mode? Shouldn't ever. But you're right, I did a dumb thing and never called the function to dispatch the message.

Well, OK, fixing that's going to require either installing Visual Studio on the family desktop, or fixing my processor issues, re-installing Windows and installing Visual Studio on that. Neither's happening tonight, sooo... I'll try to get that to you tomorrow. Sorry about that.
User avatar
Hot
 
Posts: 3433
Joined: Sat Dec 01, 2007 6:22 pm

Post » Fri Feb 18, 2011 5:20 pm

You were talking about linker errors ?
User avatar
Sista Sila
 
Posts: 3381
Joined: Fri Mar 30, 2007 12:25 pm

Post » Sat Feb 19, 2011 6:54 am

I have plenty of C/C++ experience but little of it is in Windows, unfortunately, so I can't help with details as much as I'd like. But could you post some of the link errors you're getting? One likely cause is that your project might be set up wrong so that you're not actually linking with the library, but there are other possibilities too, and seeing the messages might help to figure out what's actually happening.
User avatar
Jade Barnes-Mackey
 
Posts: 3418
Joined: Thu Jul 13, 2006 7:29 am

PreviousNext

Return to IV - Oblivion