Posts tagged Windows

New Tool In Development – Litecoin Miner Status – Monitor Multiple Litecoin Miners At Multiple Pools!

0
Project Update
This project has now been officially released. You can visit the project page (and download the tool) Here or get to it throught Discography tab at the top of the page. Thanks!

LTC Miner Status ScreenshotI have been working on a new tool for the last couple of weeks to assist Litecoin miners in their quest of mining. As a Litecoin miner myself in this new coin, a few pools started to pop up here and there and there was not much of a way to track what was going on. Hence my tool came along!

A common thing with any coin mining process is hopping, or switching from one pool to another. With my tool, you can see what you are doing across multiple pools, including how much LTC you have mined and how much you have been paid.

The interface is split into 3 main portions. The top part is a “ticker” of sorts that pages through the supported mining pools, showing you the current overall stats of that individual pool such as it’s overall mining speed, and the number of individual miners currently working there (and their combined KH/s speed). The middle field view shows the miners you have listed in that specific pool (If any) and what your miners are currently doing there. The base view is an overall view of your current mining summary across all of the supported pools. The tool is quick, easy to use, and sits quietly in the background keeping itself updated.

The tool is currently going through the last few days worth of testing with some close friends and miners, and I hope to have it released in the next couple of weeks once all the fine tuning has been done to it. If you are interested in testing out the tool, feel free to get in touch with me at andy [at] andykellett.com with your information. You can also find me on IRC , irc.freenode.net in #elitist, #litecoin and #rfcpool

Support For Many Pools!

At the time of the release, or unless someone suggests otherwise, the following mining pools will be supported from the initial launch of the application:

  • Elitist Jerks
  • Pool-X.eu
  • OzCoin 

Additional Mining Pools

If you own/run/reccomend another litecoin mining pool that you would like to see added to this program, let me know either by email or in the comments of this post and I will see what I can do to get it in. Your pool must support JSON statistics that can easily be accessed via the web. The tool supports all mmcfe-based pools, I just need to know your details.

The Program Is Beerware!

The program itself will be released as BeerWare, meaning if you like it and you find it extremely handy, you should donate some coin towards a beer or two for the developer! Pool owners who want their pools listed within the app are encouraged to donate a couple of extra beers as well, especially if your pool requires a lot of work to get added (custom JSON etc.) There will not be a charge to buy the program ever, and anyone who does try to sell it for money are trying to rip people off. It will always work the same if you choose to donate or not. Donation addresses to send coin to will be in the About section of the program in various different formats. All donations are truly appreciated 🙂

Donation Addresses

Some people are already asking for donation addresses to bribe with, they are as follows:

LiteCoin: LfrxgdK1PgJQPRkPVDqopQt3FaYVswmp74
BitCoin: 15s2vduLZSBUYDHPANgXVC9DPKz6BesZLj

More details will be released for the program as soon as they are available. Versions will also be made available for Mac & Linux in time. Feel free to comment or ask any questions in the comments section on this post. Initial testing only available to Windows users. Thanks! FishGuy876

Telling Git To Ignore File Permissions

0

So, I have been having issues with git and repos. Im still extremely new to git (having used subversion for years) so every once in a while I run into something that makes me want to keep going back to svn. Today was such a day when I discovered that git didn’t like that some of the permissions had changed on the files within my repos.

Most of this problem for me occurs from working on files both in Linux and Windows, so its natural that samba will change some of these permissions. So, after reading the manual for a while, I discovered I could issue the following:

git config core.filemode false

This will instruct git to ignore changes to file permissions! Yay! Migraine easing. And according to the git manual:

core.fileMode
    If false, the executable bit differences between the index and the
    working copy are ignored; useful on broken filesystems like FAT.
    See git-update-index(1). True by default.

And there you have it 🙂 Pretty straight forward, and saved me from having to buy more headache pills 🙂

Creating A New Game & Framework In 30 Days – Piles’o’Tiles for Android/iPhone \o/

0
The Big Arrow - PilesOTiles

Click To Enlarge The Image

It’s been a while since I did any work on my games, which really is a shame as I still play my own games from time to time, and people are still buying them and playing them too. So, I have decided that I would motivate myself with a “New Game In 30 Days” type blogfest, where I port the old game to a brand new format in the space of a month!

The first game I picked to port is my popular Piles’o’Tiles Mahjong game, its been long overdue to be overhauled and is still fairly popular amongst players. On top of porting the game, within the same period of time I plan to develop a re-usable game framework that I will use in all of my games, so after Tiles I can easily jump in and start porting my other games such as Jelly-Othelly, Crazy Crystals and my unreleased WordHunter games. I also have some ideas for a few new games, but need the framework before I put together some experimental test versions, and see how bad the idea sucks when it’s played for real!

The plan is to have tiles in an almost-ready state by the end of the month, and from there I can fix any small issues, tweak a few bits and pieces and then release not too long after, if it even takes that long.

Today is Day 4, and most of the screen switching framework is in place, graphics are loading and being processed accordingly, and most menu/gadget functions are in and working. Once a few little things are fixed, the next steps are to start adding actual game code, such as level rendering and a few other parts critical to testing the rest of the game itself. Once they work, then I can start on the menus and level selectors etc. before finishing with the finer details.

I will keep you posted as to how it progresses, and when I am ready to find some beta testers to take a look at it! The plan is to try and get it released for Android & Desktops at the same time with an iPhone version to follow not too long afterwards. Thanks!

Dual-Booting Kubuntu Alongside Windows 7 Without Wubi – Properly!

0

Windows 7/Kubuntu Dual BootThe hard drive took a major dump in my laptop this weekend, left it backing up some stuff while I went to go see Tron, and when I got home it sounded like a DJ was scratching some kind of new rap tune. Needless to say, the drive was on its way out, but luckily I have been able to recover almost all of my data so far 🙂

After installing a replacement hard drive, I thought it was about time that I put a dedicated linux partition on this system as I have been using Kubuntu to do some Android development (installed via Wubi). While Wubi is nice for messing around, it isn’t the most stable system to be using and I have had a couple of disasters in the past with it messing up my virtual partitions. Wubi also has some known bugs, where after installing inside Windows, you’ll get a message about no root filesystem being defined and that you should fix it in the partition manager. Nice, if you can actually get there to do it!

So, I installed Windows 7, left 40gb of free space intentionally for Kubuntu. After the process of doing all the software installs and updates etc. for Windows I thought that I had better take a shot at installing the Linux side of things. Boy, what a mess 🙂 Firstly, there is something about the partition layout in Windows 7 that GPartEd just cannot see them (even using the GPartEd Live CD, or any LiveCD including Kubuntu). It thinks my hard drive is completely unpartitioned. Not what I was expecting, as I was hoping I could just throw some linux partitions into the free space, and then install. Very confusing 🙂 Adding any changes at this point would erase my new Windows 7 partition instantly.

I remember something a friend told me years ago about partitioning, that he had once used Linux to do the partitioning of his drives for some wierd XP install, as the Windows tools at the time were quite shit, so I figured that to get this to work the way I want it, I should probbably attempt something similar. I didnt really have much to lose (besides sitting through a few hundred megs of Windows Updates) so I went ahead and prepared the partition in GPartEd.

An important thing to remember here is the partition table. You must go into the Partition Table section and create a new ms-dos partition table, otherwise if you don’t it may try and use GPT by default (which won’t work with Windows 7). If you try to install Windows 7 without this partition type change, it will pop up a Warning message when you try to select the partition, and clicking Details will tell you that it cannot install on a GPT partition. So, after this step (which will completely zap your entire drive) I proceeded to create an NTFS partition, leaving 40gb free space for Linux later on. After applying the partition changes, booting the Windows 7 installer and installing windows by selecting the NTFS partition I just created, I was then able to reboot with a KUbuntu LiveCD and work with the free space on the drive correctly! It will even mount the Windows partition (just remember to hit Yes on the option to Unmount it duringi the Kubuntu install). Even grub works well and offers Windows 7 as an option in the boot menu.

When installing Linux with manual partitions, remember to add a swap partition at least 2x the size of the available ram in the machine, and the rest can then be an ext4 partition (that mounts to /) and thats the minimal that Kubuntu will need in order to boot correctly. Grub takes care of the rest of the issues with booting and selection etc. as most of Grub resides in the liunux part.

I am sure that several people have had problems trying to get the dual booting to work correctly, so I hope that this helps at least one human being out there who has struggled with this as long as I have.

Immutable Drives In VirtualBox On Windows

2

I have been playing with VirtualBox for the last day or so now, and I am very pleased with the way that it works so far. Feels snappier to me than VMWare did, but maybe thats just me 🙂

One of the more useful features I found in VirtualBox is immutable hard drives. These are drive images that never change, so to speak. Any data that is written is saved to another drive containing only changes, so if you have lots of VM images for many different projects (like I do) you don’t have to install an OS on each of them; Just make a differencing disk and only make it the size of the changed data (such as programs and updates etc.) Brilliant!

It took me a while to figure out how to make an immutable disk on Windows, as the GUI is not very friendly towards this process. You should start by making a new Virtual Machine with the desired OS (I used Windows for the time being) and create a new hard drive image for it. From that VM, proceed to install Windows as you normally would do, activate it and install all your Windows updates and tools you wish shared to your multiple machines. For me, this is mostly just Windows, all the updates, and Altap Salamander.

Once this process was done, I proceeded to delete all temporary files from the system, a bunch of un-necessary Windows files, and ran a defrag on the drive using PerfectDisk to make sure everything was at it’s peak performance.

In order to make the drive immutable, we have to perform several steps to it. Firstly, I compressed the VDI image to make sure the file was as small as possible. While cloning will do this for us as well (described later) I wanted to keep the original image small in case I needed it for something else in the future. VirtualBox is great in that you can control it via the command line. Open a Command Prompt and change the folder that you installed VirtualBox and run the VBoxManage command with the modifyhd command, followed by the VDI file and the compact command:

This may take a few minutes to complete, but if the file has lots of empty space in it, that will all disappear after the process is complete. Next, we will make a clone of the disk. Again, I chose to do it this way so I could keep the original for something else in the future. Cloning a drive is very simple to do, using the clonehd command and the filename of the source VDI, and a filename of a target VDI. Cloning is an important step, as VirtualBox won’t allow you to use the same VDI file copied to multiple locations, the cloning process changes the internal drive GUID so that the clone can be added as a seperate drive. In VMWare in the past, i’d have huge VMDK files that I would just copy to a new VM and launch from there, which also resulted in much larger files being used than what was actually necessary. I cloned the drive using the following command:

VBoxManage clonehd "Windows XP Pro 32-Bit.vdi" "Windows XP Pro 32-Bit - Immutable.vdi"

Which will produce a new VDI file that we will use with our future VM’s:

If you go back to the Media Manager in VirtualBox, click on Add and add the newly created VDI file to the list of volumes. Everything should match except for the name. The next step is to mark this as an immutable drive, so VirtualBox recognizes it as such. This is done with the modifyhd tag as follows:

VBoxManage modifyhd "Windows XP Pro 32-Bit - Immutable.vdi" --type immutable

And if you refresh your Media Manager folder, you will see that the drive type is now set to immutable:

So, now that we have an immutable drive we should probably try and use it 🙂 To do this, simply go back to the VM management and create a new Virtual Machine for Windows as you did before. Now when you get to the part where it asks about the Hard Drive, choose an existing drive and select the Immutable image, You will notice that it has a blue spot next to it, signifying that it’s immutable:

After the VM is created, click Settings and go to Storage, select the Immutable drive and place a checkmark in the box for differencing. This will cause a new hard disk name to appear. Click OK to accept the changes, then launch the VM. It will boot to the same way as it did before, except its not using the old image. Make sure it boots OK then go ahead and shut down the VM so we can make some changes.

Some Notes About Differencing

Typically, drives that use differencing disks will “forget” the changes made to them once the VM is restarted. This is the case here by default, once you boot with a differencing disk, any changes made will be lost when it shuts down. This protects the original disk, and prevents anything from changing in it. Its always easy to see which VM’s use immutable drives, if you go to the Media Manager there will be an expandable arrow next to the main drive, which contains all the differencing disks from the various VM’s that use that specific immutable drive.

Differencing disks can be changed to allow them to retain their changes after the VM shuts down. In the console, simply run the following command (exchanging the GUID for the one found in your media manager) :

VBoxManage modifyhd cfcb7143-af07-40ff-89b1-c953bfacaebb --autoreset off

The filename should match the GUID and is located in the Virtual Machines folder/{Machine Name}/Snapshots folder. Mine is {cfcb7143-af07-40ff-89b1-c953bfacaebb}.vdi respectively.

After that, any changes written to the disk will remain permanent! I hope this helps someone out there with a similar situation, and that this helps then understand it a little better 🙂

Win32 – SDL Loses Sound When The Main Window Loses Focus – Fix

0

So, I ran into an interesting problem this week while working on the “Alien Invasion” music disk that causes all sound to be disabled when the main SDL window would lose focus or become hidden. This could be a bit of a problem for a music disk, so I looked into trying to figure it out for myself.At first I tried the usual SDL culprits, which are the event system for handling focus, but no luck there.

After some poking around in the SDL source code, I was finally able to find a fix. In SDL_dx5audio.c you can change the following function to read:

void DX5_SoundFocus(HWND hwnd)
{
    // This makes sound audible regardless of focus being lost
    //mainwin = hwnd;
}

A better solution long-term in SDL will be to have an option to do this, rather than having to change the code, or just have this enabled by default. We’ll see! This was tested on 1.2.14 which is available to download from http://www.libsdl.org Hopefully someone else can find this useful too 🙂

Annoying Problems With std::vector on Linux Vs. Windows

1

So I spent most of this weekend working on getting my engine to compile correctly under GCC/Linux (Ubuntu 10.4) and ran into some serious headaches. It’s been a few years since I last built anything on Linux at all (last time was when I did some work for Epic Interactive and their linux ports) and took me a little bit to remember how makefiles worked etc. and bring my SDL code up to date.

After compiling the code, I was having a hell of a time trying to figure out why it would always cause a segmentation fault after the first few seconds of running. Here is what gdb had to say:

[Thread debugging using libthread_db enabled]
[New Thread 0xb3da2b70 (LWP 4813)]
[Thread 0xb3da2b70 (LWP 4813) exited]
[New Thread 0xb3da2b70 (LWP 4815)]
Program received signal SIGSEGV, Segmentation fault.
0x0807c27d in ?? ()
(gdb) backtrace

#0  0x0807c27d in ?? ()
#1  0x08083eee in ?? ()
#2  0x0807e59f in ?? ()
#3  0x08082231 in ?? ()
#4  0x08062d98 in ?? ()
#5  0x0804deaa in ?? ()
#6  0x0806659b in ?? ()
#7  0x00369bd6 in __libc_start_main () from /lib/tls/i686/cmov/libc.so.6
#8  0x08049891 in ?? ()

Unfortunately, that doesn’t really tell me much of anything 🙂 After a little bit of playing around with the manual pages in GDB, and some serious googling, I was able to get the app to compile with some debug symbols. This is the output:

[Thread debugging using libthread_db enabled]
[New Thread 0xb3da2b70 (LWP 3711)]
[Thread 0xb3da2b70 (LWP 3711) exited]
[New Thread 0xb3da2b70 (LWP 3713)]
/usr/include/c++/4.4/debug/vector:265:error: attempt to subscript container
with out-of-bounds index 0, but container only holds 0 elements.
Objects involved in the operation:
sequence "this" @ 0x0xb162bf4 {
type = NSt7__debug6vectorImSaImEEE;
}
Program received signal SIGABRT, Aborted.
0x0012d422 in __kernel_vsyscall ()
[Thread debugging using libthread_db enabled]
[New Thread 0xb3da2b70 (LWP 3711)]
[Thread 0xb3da2b70 (LWP 3711) exited]
[New Thread 0xb3da2b70 (LWP 3713)]
/usr/include/c++/4.4/debug/vector:265:error: attempt to subscript container
with out-of-bounds index 0, but container only holds 0 elements.

Objects involved in the operation:
sequence "this" @ 0x0xb162bf4 { type = NSt7__debug6vectorImSaImEEE; }
Program received signal SIGABRT, Aborted.0x0012d422 in __kernel_vsyscall ()

This error is generated whenever I try and set up Vectors in the code to handle some rather simple arrays. I even tested the code where I created a vector, and checked its size to see if it was 0 and was still able to create the same problem. This is how I did all the safety checks in my code; if Vector.size() > 0 { Safe To Do Some Stuff, If Size Was Legal For Array }.

So, for whatever reason, they behave very differently than in Windows. I really don’t have the time to figure out the specific reasons, though after a couple of hours of googling trying to get GDB to display as much information as it did, it turns out a lot of people have issues with vectors doing strange things on Linux.  As a result, I will be removing that code from the project to make sure it’ll compile and run on all 3 platforms (Windows, Mac and Linux) without any further issues! Lucky for me, it is an easy fix!

Go to Top