Journal of computing related issues for Web Authoring, and general topics using Mac, Windows and Linux platforms.

Wednesday, November 28, 2007

Collapsing Icons Fixed

For a couple of years now I have irritating problem that when I start Windows XP that most times all my carefully desktop shortcut icons I had grouped by function around my screen edges all moved to the left of the screen in 3 columns in random order.

I used a free utility as a workaround see earlier post.

Now in fixing an unrelated Adobe PSE problems, see previous post, I had to disable all start-up programs and one was called Seticon.exe. I googled this and low and behold someone had reported it caused just the problem I had been experiencing, apparently it is installed for 6-in-1 (4 Media Card slots, a floppy drive and a USB connection) device. See this page.

So I disabled this and to date have not had the problem again. Incidentally my 6-in-1 Media reader still functions fine.

This fault returned after I had re-installed XP the first time I attached GigaOne Disk Drive. This is a 30GB USB drive in a case with various card readers around it, so that you can download contents of digital camera card and reuse card, great when away on long trips. So it is consistent with the Seticon being installed when "plug and play" found this machine for the first time after rebuild.

Photos Shop Elements will not load Fixed by removing QuickTime

PhotoShop Elements 5 Fails to Start
Now this is very strange and I will be glad if anyone can explain. I have used Adobe Photoshop Elements 5 and before that 4 for several years. Then suddenly on the 26th it would not load, although it did work last time I used it a couple of days before. The Organiser (Organizer) started to load and when it got to "Initializing threads" it just disappeared. Rest of the system was fine, Even PSE 5 Editor could be started by clicking on file in Program Files folder but would not go to Organizer from within Editor either.

I un-installed and re-installed TWICE, no change. Followed some very detailed tips from Adobe Support pages that involved changing PSA (Catalogue) files and Windows XP register, but no change.

Adobe web pages then suggested to stop all start up programs via RUN MSCONFIG although I found it easier to do this through Windows Defender Software Tools.

Fix found (or rather stumbled across)

Then I saw somewhere a reference that CODECS can cause this. Now I had installed some unrelated utility that had also installed latest QuickTime so I tried to un-install this, which threw up an error message during un-install. Anyway tried to start PSE again and it went a bit further with a different error message this time (sorry forgot to note down error).

So I made sure it was un-installed by renaming "QuickTime "Folder in "Program Files" and what do you know, PSE 5 loaded fine!!

However next day back to same old problem. I noticed that the QuickTime icon was on my desk top again, some how it had installed itself. So again I un-installed it but again PSE disappeared at "Initializing Threads" stage. I discovered there was a new QuickTime folder next to the one I had renamed, I had renamed it QuickTime-delete-26-11. So rename this new one and PSE 5 works fine again.

Used Defender to remove QuickTime from Startup as opposed to just disabling it, so time will tell if it manages to get in the way again.

One bonus however was that whilst I was disabling Startup Programs I managed to find solution to unrelated problem of collapsing icons on desk top, see next post for detail,

Sunday, November 18, 2007

Firefox Add-Ons I Use

  1. GMail Space
    great for backing up files typically spreadsheets and documents, these are then avaialble to you wherever you log on. A bit slow for large jpgs.

  2. Split Browser
    enables you to window within Firefox and so have various parts of Tabs visible at the same time.

  3. Scribefire

    hopefully quick way of adding to my blogs. I am testing it by writing this artice.


  4. Google Notebook

    Does what is ays, lets you make notes and/or paste clips from html


Powered by ScribeFire.

Friday, November 16, 2007

Linux and I Back Together Again

Having said I was taking a break from Linux due to time taken to fix problems I could not resist downloading latest Fedora 8 and having a play which as an off shoot led me to fix most of my outstanding problems.

Bullet summary

  1. Problems with updating and repositories was caused by GWART2-54125 DSL Router and DNS addressing.

  2. This led to also fixing Firefox IPV6 issues so I do not have to disable.

  3. Accessing Windows and Vista from Linux working fine, still need to access Linux from these.

  4. Google works well as cross platform tool.



Router and DNS

With both SUSE and Ubuntu I had problems in getting the software updater and the add software package processes to work. Very occasionally this would work but normally could not find repository. I tried various ones. It had worked OK with SUSE 10.2 before I had upgraded to 10.3

Then I found the same problem with Fedora 8. So it had to be a problem common to all so I suspected the in-built firewall in router so I disabled it but no change, so I re-instated it.

Then I did some googling including router in search which led to solution.

Router was a GURU, which I think is a badged Safecom,


GWART2-54125, (GWART 54125) and the problem was reported at http://ubuntuforums.org/archive/index.php/t-328874.html

There are detailed instructions on how to do this at http://safecom.cn/code/product/adsl/SWART2-54125/FAQ/dns-setting.html

My ISP is Orange and they had the DNS information at this address

Once I had done all this upgrades and software additions worked fine.


Firefox and IPV6

Previously on all my Linux Systems I had to disable IPV6 on Firefox for it to work. To do this you enter about:config in the address bar and hit enter and ipv6 in the filter in the config page which results in my case to two lines and by clicking on the first one it disables ipv6 and all is well.

However when I tested out Fedora 8 on my new Core 2 Laptop by just running live CD I did not have to do this. I then found that I could enable it on my desktops, SUSE, Ubuntu and Fedora and it works. So I can only assume the above actions also fixed this issue.


Accessing Windows XP and Vista

In Ubuntu just by looking at Places -> Network it found the locally connected desktops.

But if problems then the way that seems to be most successful is to

  1. Select Places->Connect to Server

  2. Select "Windows share" in Service Type and correct IP address in Server.

  3. Type something meaningful in "Name to use for connection"

  4. Connect



This should place Folder on desktop which you can open and be connected to other PC, assuming you have correct Share and Network parameters on these Window's PCs.


iGoogle

I currently have two desktops, one XP and one with removable drives so that I can use XP and Linux (SUSE, Ubuntu or Fedira) plus two laptops, one Vista and one older HP with Linux.

Occasionally I use my daughter's XP laptop when visiting.

I find iGoogle the best way of sharing data amongst them all. For example I am using Blogger to write this on Test Desktop currently with Ubuntu, but I can get at the same file from any platform.

Similarly with Spreadsheets or Documents. Also I can access all my bookmarks.

Saturday, October 27, 2007

Collapsing Icons and work around

One advantage of rebuilding my XP system, see previous post, was it cleared my collapsing icon problem, or so I thought. See end of post to how this happened.

I like a clean desktop and have my icons spread around the two side and top edge in related groups. However sometimes after start up these all shift over to a near alphabetic order on the left.

Having failed to fix I downloaded a free program from http://users.rcn.com/taylotr/icon_restore.html
which lets you SAVE and RESTORE icon layout from options listed when you right button click My Computer or My Documents.

---------------------------------------------------------------------------


For about three weeks after rebuilding XP this did not happen, The for the first time after rebuild I connected GigaOne Drive (basically a 30GB drive with card readers around edge so you can download cards in the field and then connect to PC at base where it appears as a hard drive).

I was planning to use it as external drive, download 18GB of photos which I could then connect to lap top and sort out at leisure. However XP did not recognise drive, and hung. Strange as drive was OK on older XP machine and new Vista Notebook. Anyway I loaded SW from mini CD provided by GigaOne and seemed OK. Did not have to load SW on other aforementioned machines.

Started copying and almost immediately PC display went black and PC restarted itself. And when it came back up it started the collapsing icons again! Drat!

Linux Summer Experience and why I am taking a break

Well Linux almost there but once again I have realised that I am spending so much time on investigating and experimenting that it is stopping me progressing on other projects, so yet again I am putting it on the back boiler.

As an example when setting up SUSE 10.3 on my Production Machine that runs XP which has plenty of power and spare disk I felt safe with the knowledge that I can always rebuild MBR (Master Boot Record) if problems. Well it went in fine except it would not boot up after installation, Oh well just slip in the XP Distribution Disk and rebuild MBR, which I have done plenty of times before, only to be greeted with demands from MS XP for Admin Password. Would not take any!

A bit of googling on laptop led me to advise that I can just take install option and although it looks like it is building new system it will not. Well it did!

Finally fixed MBR with old DOS v7 installation diskette. See http://www.tech-recipes.com/rx/483/xp_repair_fix_master_boot_record_recovery_console
for technique. It took all of 5 minutes.

Oh well it is generally believed that an XP rebuild does wonders for the performance, but I will spare you the details.

About three weeks ago I bought a new Lap Top Intel Core 2, 2GB, 15" display, Vista Home Premium, et al and against all my expectations I am enjoying the Vista experience. Everything is working first time with little effort from me. I have it talking to rebuilt Production machine, old HP laptop, old AMD Test machine with XP, SUSE 10.3 and Ubuntu 7.10.

Just taken old HP Laptop into sitting room, pushed in USB wireless stick and pointed Windows Media Player at large Music collection on desktop across wireless, plugged cable into headphone on laptop and other end into stereo kit and WOW, masses of music available, control of stereo all via old laptop.

Now I will clear space in room by ripping all remaining CDs, experiment with radio and see where I go. Oh and of course I still have Media Centre on new laptop with Vista to play with.

Now to connect old lap top and access data, upgrade Windows Media Player, update library, start playing the music took about 60 minutes. Now no doubt I can do all this with Ubuntu/SUSE but I know it will take me nearer 60 hours.

But I do believe linux will get there in the next couple of years, but I will leave it for now,

Sunday, July 15, 2007

C++ Calculator Prog Mod 5 with input checking for valid number






// kalk-05.cpp
//
// Calculator program that runs in console.
// Type M for menu.
//
// This is the original from PSW book Using C++
// I have used it as a basis to learn C++
//
// I have kept is at the following modifications will
// be easier to understand as the program becomes more sophisticated.
//
// Mods
// 01 Change command short cuts to alpha characters so that they are simple to
// key. Trivial change.
// 02 Add extra functions again trivial.
// 03 Add Memory functions
// MEM IN .. loads memory with current value
// MEM PLUS .. adds current value to memory
// Note: Mem Minus achieved by typing n (negative) to make current
// value negative and MEM PLUS. If required redo n to make current
// value positive.
// MEM SWITCH switches current value and memory.
// 03a Added code to change negative current value to positive when
// Power function AND exponent is less than 1 (e.g. 0.5 for square root)
// as even roots of negative numbers are imaginary
// 04 Add capability to use mem value in function, e.g. to subtract value in
// in memory from current value, but keep memory value.
// This was a bit complicated and required writing function to replace CIN
// and use of STRING to DOUBLE function
// 05 Improve by checking that values entered are numbers and not garbage.
//
// Planned mods
// 06 Capability to undo up to last 5 commands. Code with Vector?
// 07 Log comands to file so that they can be audited.
// Have default log KALKLOG.DAT in C:|MyDATA which is backed up to
// KALKLOG.BAK start of new program, overwriting previous version.
// 08 Allow user to change log file name and locaton.
// 09 Take data file in LOG format and run as batch program.
//
// Also plan to use as test for compiling in Linux and with other systems.
// May try to convert to Java and Ruby??
// When I have learned widows programming may try to convert to windows type.
//
// I know it is all old hat but it helps me to learn and may even help others.
//

#include <iostream>
#include <iomanip>
#include <cmath>
#include <cctype>
#include <string>
using namespace std;

void display_menu();
// int is_menu_choice(char choice);
void process_choice (char choice, // IN
double& num, // IN-OUT
double& mem); // IN-OUT
void cin_number(double& num, // IN-OUT
double& mem); // IN-OUT
char RT_Num_Check(string& digit);

int main()
{
char choice; // menu choice
double curr_val; // current value of calculator
double mem; // Calculator Mem function

display_menu();
cout << setprecision(15);
curr_val = 0;
mem = 0;

do {
cin >> choice;
choice = toupper(choice);
process_choice (choice, curr_val, mem);
}
while (choice != 'Q');
return 0;
}

void display_menu()
{
cout << "Calculator functions:\n"
<< " (A)add, (S)ubtract X(mult), (D)ivide , (N)egative,\n"
<< " (R)eciprocal, (I)nitialize, (P)ower [positive only], Q)uit,\n"
<< " (M)em in, mem p(L)us, mem (O)ut, mem s(W)itch \n"
<< " use mem to refer to memory in calculations"
<< " (H)elp show this menu again.\n\n";
}

void process_choice (char choice, // IN
double& curr_val, // IN-OUT
double& mem) // IN-OUT

{
// double mem;
double work; // required for memory sWitch function
double num; // numeric value entered by user
num = 0;
// mem=0;
switch (choice)
{
case 'A': cin_number(num, mem);
curr_val += num;
break;
case 'D': cin_number(num, mem);
curr_val = curr_val/num;
break;
case 'H': break;
case 'I': cin_number(num, mem);
curr_val = num;
break;
case 'L': mem += curr_val;
break;
case 'M': mem = curr_val;
break;
case 'N': curr_val *= (-1);
break;
case 'O': curr_val = mem;
break;
case 'P': cin_number(num, mem);
if (num < 1) curr_val = fabs(curr_val);
//stops possibilty roots of negative values causing errors
curr_val = pow(curr_val, num);
break;
case 'Q': break;
case 'R': curr_val = 1/curr_val;
break;
case 'S': cin_number(num, mem);
curr_val -= num;
break;
case 'W': work = curr_val;
curr_val = mem;
mem = work;
break;
case 'X': cin_number(num, mem);
curr_val *= num;
break;
default: cout << "\tInvalid operation!\n";
} // end switch
if (choice=='H') display_menu();
if (choice != ('Q' || 'H' ))
cout << setw(16) << ' ' << curr_val
<< endl;
}

void cin_number(double& num,
double& mem) // IN-OUT
{
string input;
char ValidNumber = 'N';
while (ValidNumber == 'N')
{
cin >> input;
if (input == "mem")
{
num = mem;
ValidNumber = 'Y';
}
else
{
ValidNumber=RT_Num_Check(input);
if (ValidNumber=='Y')
num = strtod(input.c_str(), NULL);
else
{
cout << input <<" Not a proper number\n Re-enter number\n";
}
}
}
return;

}
char RT_Num_Check(string& digit)
{
char NumOK; // result
int p; // digit position
char decimal = 'N'; // used to make sure not more than 1 decimal point
string sign = "0"; // used to check for negative
// cout << "The length of str is " << digit.length() << " characters.\n";
if (digit.substr(0,1) == "-") // sign -1
{
digit=digit.substr (1,(digit.length()-1)); // strip sign
sign= "-"; // to check so that neg restored at end
}
for (p=0;p<digit.length();p++)
{

if ((digit.substr(p,1) >="0") && (digit.substr(p,1) <="9"))
NumOK='Y';
else
{
if ((digit.substr(p,1) ==".") && (decimal=='N'))
{
NumOK='Y';
decimal='Y'; // so that later positions checked for erraneous 2nd decimal point
}
else
{
NumOK='N'; // if we reach here must be an incorrect number
break;
}
}
// cout <<"p is " <<p<< " number is "<< digit.substr(p,1)<<endl;
}

if (sign == "-")
digit = sign+digit; // put back negative if necessary
return (NumOK);

}


/*A typical run:

Calculator functions:\n"
(A)add, (S)ubtract X(mult), (D)ivide , (N)egative,\n"
(R)eciprocal, (I)nitialize, (P)ower, Q)uit,\n"
(H)elp show this menu again.\n\n";

I 2.5
2.5
P 3
15.625
R
0.064
x 100
6.4
n
-6.4
a 10
3.6
s 1.12
2.48
H
Calculator functions:\n"
(A)add, (S)ubtract X(mult), (D)ivide , (N)egative,\n"
(R)eciprocal, (I)nitialize, (P)ower, Q)uit,\n"
(H)elp show this menu again.\n\n";

2.48
d 2.5
0.992
i 4
4
p 0.5
2
n
-2
p 0.5
1.4142135623731
i10
10
m
10
r
0.1
w
10
o
0.1
x1000
100
l
100
l
100
o
200.1
i 2
2
m
2
i5
5
amem
7
p mem
49
d mem
24.5
a 5..2
5..2 Not a proper number
Re-enter number
5.2
29.7
q

------------------------

Note you do not need to leave space,
e.g. you can enter "d 2.5" or "d2.5"

*/




Friday, July 6, 2007

Linux Live Boot on Notebook with Wireless Cont

Having got wireless to work on PCLinuxOS 2007 on notebook, see previous post, I then set about trying to get USB to work.

After some Google activity I found reference to NOAPIC and ACPI=OFF commands that you ca add as Linux boot parameters by pressing Tab key when CD gives various boot options. APIC effects how IRQs are shared out and ACPI controls power management. Various entries had suggested that they can cause problems.

Sure enough if I add EITHER the USB works as it should, however I cannot then get the wireless to work. When PCLinuxOS starts it goes into its network routines and now does not find driver for my wireless inbuilt into Fujitsu Siemens Amilo L7310GW. This it correctly recognises as
Atheros Communications 802.11b/g Wireless PCI Adapter.

Thursday, July 5, 2007

Linux Live Boot on Notebook with Wireless

I have over recent months been looking for best method of running Linux on my Fujitsu Siemens Amilo L7310GW notebook without changing hard drive as I am not confident enough yet to risk damaging working XP system. So I want to build live boot ultimately off USB 2GB Pen Drive.

So I have tried various live CD boots and except Mepis I have not been able to get wireless to work. Mepis was OK but I could not get it to run on a high resolution screen.

Yesterday I bought August edition of Linux Format magazine and tried the PCLinuxOS on the DVD. Booted up fine and after wireless set to correct WPA key connected OK. (I had to switch off IPv6 in Firefox, as I have to do with all new distros to get Firefox to work see http://en.opensuse.org/Disable_IPv6_for_Firefox
One day I will find out what IPv6 is and why I have to disable it!

Changed resolution to 1280 x 1024 in Control Centre. However when I right click desktop and check here it says resolution is 1024x768 which looks more correct.

Only problem is that I do not see USB Pendrive when I insert it.

PCLinuxOS MiniMe
This has instructions on how to use USB Pendrive to live boot from

My PCLinuxOS
This well written log appears to be written by person travelling along same path as me so I will check it out in detail, especially hgow he/she made Pendrive boot.

Tuesday, July 3, 2007

C++ Calculator Program v4.0 with Mem as Parameter



// kalk-04.cpp
//
// Calculator program that runs in console.
// Type M for menu.
//
// This is the original from PSW book Using C++
// I have used it as a basis to learn C++
//
// I have kept is at the following modifications will
// be easier to understand as the program becomes more sophisticated.
//
// Mods
// 01 Change command short cuts to alpha characters so that they are simple to
// key. Trivial change.
// 02 Add extra functions again trivial.
// 03 Add Memory functions
// MEM IN .. loads memory with current value
// MEM PLUS .. adds current value to memory
// Note: Mem Minus achieved by typing n (negative) to make current
// value negative and MEM PLUS. If required redo n to make current
// value positive.
// MEM SWITCH switches current value and memory.
// 03a Added code to change negative current value to positive when
// Power function AND exponent is less than 1 (e.g. 0.5 for square root)
// as even roots of negative numbers are imaginary
// 04 Add capability to use mem value in function, e.g. to subtract value in
// in memory from current value, but keep memory value.
// This was a bit complicated and required writing function to replace CIN
// and use of STRING to DOUBLE function
//
// Planned mods
// 05 Improve by checking that values entered are numbers and not garbage.
// 06 Capability to undo up to last 5 commands. Code with Vector?
// 07 Log comands to file so that they can be audited.
// Have default log KALKLOG.DAT in C:|MyDATA which is backed up to
// KALKLOG.BAK start of new program, overwriting previous version.
// 08 Allow user to change log file name and locaton.
// 09 Take data file in LOG format and run as batch program.
//
// Also plan to use as test for compiling in Linux and with other systems.
// May try to convert to Java and Ruby??
// When I have learned widows programming may try to convert to windows type.
//
// I know it is all old hat but it helps me to learn and may even help others.
//

#include
#include
#include
#include
#include
using namespace std;

void display_menu();
// int is_menu_choice(char choice);
void process_choice (char choice, // IN
double& num, // IN-OUT
double& mem); // IN-OUT
void cin_number(double& num, // IN-OUT
double& mem); // IN-OUT


int main()
{
char choice; // menu choice
double curr_val; // current value of calculator
double mem; // Calculator Mem function

display_menu();
cout << setprecision(15);
curr_val = 0;
mem = 0;

do {
cin >> choice;
choice = toupper(choice);
process_choice (choice, curr_val, mem);
}
while (choice != 'Q');
return 0;
}

void display_menu()
{
cout << "Calculator functions:\n"
<< " (A)add, (S)ubtract X(mult), (D)ivide , (N)egative,\n"
<< " (R)eciprocal, (I)nitialize, (P)ower [positive only], Q)uit,\n"
<< " (M)em in, mem p(L)us, mem (O)ut, mem s(W)itch \n"
<< " use mem to refer to memory in calculations"
<< " (H)elp show this menu again.\n\n";
}

void process_choice (char choice, // IN
double& curr_val, // IN-OUT
double& mem) // IN-OUT

{
// double mem;
double work; // required for memory sWitch function
double num; // numeric value entered by user
num = 0;
// mem=0;
switch (choice)
{
case 'A': cin_number(num, mem);
curr_val += num;
break;
case 'D': cin_number(num, mem);
curr_val = curr_val/num;
break;
case 'H': break;
case 'I': cin_number(num, mem);
curr_val = num;
break;
case 'L': mem += curr_val;
break;
case 'M': mem = curr_val;
break;
case 'N': curr_val *= (-1);
break;
case 'O': curr_val = mem;
break;
case 'P': cin_number(num, mem);
if (num < 1) curr_val = fabs(curr_val);
//stops possibilty roots of negative values causing errors
curr_val = pow(curr_val, num);
break;
case 'Q': break;
case 'R': curr_val = 1/curr_val;
break;
case 'S': cin_number(num, mem);
curr_val -= num;
break;
case 'W': work = curr_val;
curr_val = mem;
mem = work;
break;
case 'X': cin_number(num, mem);
curr_val *= num;
break;
default: cout << "\tInvalid operation!\n";
} // end switch
if (choice=='H') display_menu();
if (choice != ('Q' || 'H' ))
cout << setw(16) << ' ' << curr_val
<< endl;
}

void cin_number(double& num,
double& mem) // IN-OUT
{
string input;
cin >> input;
if (input == "mem")
num = mem;
else
num = strtod(input.c_str(), NULL);
return;

}


/*A typical run:

Calculator functions:\n"
(A)add, (S)ubtract X(mult), (D)ivide , (N)egative,\n"
(R)eciprocal, (I)nitialize, (P)ower, Q)uit,\n"
(H)elp show this menu again.\n\n";

I 2.5
2.5
P 3
15.625
R
0.064
x 100
6.4
n
-6.4
a 10
3.6
s 1.12
2.48
H
Calculator functions:\n"
(A)add, (S)ubtract X(mult), (D)ivide , (N)egative,\n"
(R)eciprocal, (I)nitialize, (P)ower, Q)uit,\n"
(H)elp show this menu again.\n\n";

2.48
d 2.5
0.992
i 4
4
p 0.5
2
n
-2
p 0.5
1.4142135623731
i10
10
m
10
r
0.1
w
10
o
0.1
x1000
100
l
100
l
100
o
200.1
i 2
2
m
2
i5
5
amem
7
p mem
49
d mem
24.5
q

------------------------

Note you do not need to leave space,
e.g. you can enter "d 2.5" or "d2.5"

*/

C++ String to Double (strtod) function notes

As part of my ongoing exercise to write calculator in C++ I wanted to add capability of using memory content as parameter, e.g. add mem to current value.

Although I quickly determined that one solution was strtod function I had problems getting it to work until I read GID Forum at http://www.gidforums.com/t-1131.html.

I have cut and pasted relevent section here.

Garth Farley Garth Farley is offline
Invalid Email Address
Join Date: May 2002
Location: Ireland
Posts: 638
Garth Farley is a jewel in the roughGarth Farley is a jewel in the roughGarth Farley is a jewel in the rough
The problem is that strtod() is a function that has been around since the original C. C didn't have strings as we know it (a class which contains the characters), instead strings were character arrays, with the end being denoted by the a NULL terminator (\0).

So, in plain C, to get a string, you'd have

char[] word = {'h', 'e', 'l', 'l', 'o', '\0'};

These were pretty dodgy, since the only way to know the end of a string was to see the NULL character at the end. If the \0 is overwritten (and it can happen pretty easily), then the memory is continually read until a NULL character is found, getting a load of rubbish along the way. And writing to this would overwrite memory needed elsewhere, crashing all.

C++ improved this drastically, with the string class, which stores the length of the string along with a character array - so it doesn't rely on a NULL character.

However (getting back to the point), strtod() function only can accept C style strings, i.e. character arrays. You can convert a C++ string to a C string using a method of the string class, c_str().

word.c_str() - returns a character array with a NULL at the end.

So to answer your question, the syntax to get that working is:
CPP / C++ / C Code:
n1=strtod( t1.c_str() );

Monday, July 2, 2007

C++ Calculator Program v3.0 with Mem Functions


// kalk-02.cpp
//
// Calculator program that runs in console.
// Type M for menu.
//
// This is the original from PSW book Using C++
// I have used it as a basis to learn C++
//
// I have kept is at the following modifications will
// be easier to understand as the program becomes more sophisticated.
//
// Mods
// 01 Change command short cuts to alpha characters so that they are simple to
// key. Trivial change.
// 02 Add extra functions again trivial.
// 03 Add Memory functions
// MEM IN .. loads memory with current value
// MEM PLUS .. adds current value to memory
// Note: Mem Minus achieved by typing n (negative) to make current
// value negative and MEM PLUS. If required redo n to make current
// value positive.
// MEM SWITCH switches current value and memory.
// 03a Added code to change negative current value to positive when
// Power function AND exponent is less than 1 (e.g. 0.5 for square root)
// as even roots of negative numbers are imaginary
// Planned mods
// 04 Add cacpability to use mem value in function, e.g. to subtract value in
// in memory from current value, but keep memory value.
// This was a bit complicated and required writing function to replace CIN
// and use of STRING to DOUBLE function
// 05 Improve by checking that values entered are numbers and not garbage.
// 06 Capability to undo up to last 5 commands. Code with Vector?
// 07 Log comands to file so that they can be audited.
// Have default log KALKLOG.DAT in C:|MyDATA which is backed up to
// KALKLOG.BAK start of new program, overwriting previous version.
// 08 Allow user to change log file name and locaton.
// 09 Take data file in LOG format and run as batch program.
//
// Also plan to use as test for compiling in Linux and with other systems.
// May try to convert to Java and Ruby??
// When I have learned widows programming may try to convert to windows type.
//
// I know it is all old hat but it helps me to learn and may even help others.
//

#include
#include
#include
#include
using namespace std;

void display_menu();
// h/H displays instuctions
// int is_menu_choice(char choice);
void process_choice (char choice, // OUT
double& curr_val, // IN-OUT
double& mem);
int main()
{
char choice; // menu choice
double curr_val; // current value of calculator
double mem; // Calculator Mem function

display_menu();
cout << setprecision(15);
curr_val = 0;
mem = 0;

do {
cin >> choice;
choice = toupper(choice);
process_choice (choice, curr_val, mem);
}
while (choice != 'Q'); // user selects quit
return 0;
}

void display_menu()
{
cout << "Calculator functions:\n"
<< " (A)add, (S)ubtract X(mult), (D)ivide , (N)egative,\n"
<< " (R)eciprocal, (I)nitialize, (P)ower [positive only], Q)uit,\n"
<< " (M)em in, mem p(L)us, mem (O)ut, mem s(W)itch \n"
<< " (H)elp show this menu again.\n\n";
}

void process_choice (char choice, // OUT
double& curr_val, // IN-OUT
double& mem) // IN-OUT

{
double work; // required for memory sWtch function
double num;
switch (choice)
{
case 'A': cin >> num;
curr_val += num;
break;
case 'D': cin >> num;
curr_val = curr_val/num;
break;
case 'H': break;
case 'I': cin >> curr_val;
break;
case 'L': mem += curr_val;
break;
case 'M': mem = curr_val;
break;
case 'N': curr_val *= (-1);
break;
case 'O': curr_val = mem;
break;
case 'P': cin >> num;
if (num < 1) curr_val = fabs(curr_val); //stops possibilty roots of negative values causing errors
curr_val = pow(curr_val, num);
break;
case 'Q': break;
case 'R': curr_val = 1/curr_val;
break;
case 'S': cin >> num;
curr_val -= num;
break;
case 'W': work = curr_val; // switches current and memory values
curr_val = mem;
mem = work;
break;
case 'X': cin >> num;
curr_val *= num;
break;
default: cout << "\tInvalid operation!\n";
} // end switch
if (choice=='H') display_menu();
if (choice != ('Q' || 'H' ))
cout << setw(16) << ' ' << curr_val
<< endl;
}

/*A typical run:

Calculator functions:\n"
(A)add, (S)ubtract X(mult), (D)ivide , (N)egative,\n"
(R)eciprocal, (I)nitialize, (P)ower, Q)uit,\n"
(H)elp show this menu again.\n\n";

I 2.5
2.5
P 3
15.625
R
0.064
x 100
6.4
n
-6.4
a 10
3.6
s 1.12
2.48
H
Calculator functions:\n"
(A)add, (S)ubtract X(mult), (D)ivide , (N)egative,\n"
(R)eciprocal, (I)nitialize, (P)ower, Q)uit,\n"
(H)elp show this menu again.\n\n";

2.48
d 2.5
0.992
i 4
4
p 0.5
2
n
-2
p 0.5
1.4142135623731
i10
10
m
10
r
0.1
w
10
o
0.1
x1000
100
l
100
l
100
o
200.1

q

------------------------

Note you do not need to leave space,
e.g. you can enter "d 2.5" or "d2.5"

*/

C++ Sample Calculator Program version 2


// calcltr-02.cpp
//
// Calculator program that runs in console.
// Type M for menu.
//
// This is the original from PSW book Using C++
// I have used it as a basis to learn C++
//
// I have kept is at the following modifications will
// be easier to understand as the program becomes more sophisticated.
//
// Mods
// 01 Change command short cuts to alpha characters so that they are simple to
// key. Trivial change.
// 02 Add extra functions again trivial.
// Planned mods
// 03 Add Memory functions
// MEM IN .. loads memory with current value
// MEM PLUS .. adds current value to memory
// Note: Mem Minus achieved by typing n (negative) to make current
// value negative and MEM PLUS. If required redo n to make current
// value positive.
// MEM SWITCH switches current value and memory.
// 04 Add cacpability to use mem value in function, e.g. to subtract value in
// in memory from current value, but keep memory value.
// This was a bit complicated and required writing function to replace CIN
// and use of STRING to DOUBLE function
// 05 Improve by checking that values entered are numbers and not garbage.
// 06 Capability to undo up to last 5 commands. Code with Vector?
// 07 Log comands to file so that they can be audited.
// Have default log KALKLOG.DAT in C:|MyDATA which is backed up to
// KALKLOG.BAK start of new program, overwriting previous version.
// 08 Allow user to change log file name and locaton.
// 09 Take data file in LOG format and run as batch program.
//
// Also plan to use as test for compiling in Linux and with other systems.
// May try to convert to Java and Ruby??
// When I have learned widows programming may try to convert to windows type.
//
// I know it is all old hat but it helps me to learn and may even help others.
//


#include
#include
#include
#include
using namespace std;

void display_menu();
// int is_menu_choice(char choice);
void process_choice (char choice, // IN
double& curr_val); // IN-OUT
int main()
{
char choice; // menu choice
double curr_val; // current value of calculator

display_menu();
cout << setprecision(15);
curr_val = 0;
do {
cin >> choice;
choice = toupper(choice);
process_choice (choice, curr_val);
}
while (choice != 'Q');
return 0;
}

void display_menu()
{
cout << "Calculator functions:\n"
<< " (A)add, (S)ubtract X(mult), (D)ivide , (N)egative,\n"
<< " (R)eciprocal, (I)nitialize, (P)ower, Q)uit,\n"
<< " (H)elp show this menu again.\n\n";
}

void process_choice (char choice, // IN
double& curr_val) // IN-OUT
{
double num;
switch (choice)
{
case 'A': cin >> num;
curr_val += num;
break;
case 'D': cin >> num;
curr_val = curr_val/num;
break;
case 'H': break;
case 'I': cin >> curr_val;
break;
case 'N': curr_val *= (-1);
break;
case 'P': cin >> num;
curr_val = pow(curr_val, num);
break;
case 'Q': break;
case 'R': curr_val = 1/curr_val;
break;
case 'S': cin >> num;
curr_val -= num;
break;
case 'X': cin >> num;
curr_val *= num;
break;
default: cout << "\tInvalid operation!\n";
} // end switch
if (choice=='M') display_menu();
if (choice != ('Q' || 'H' ))
cout << setw(16) << ' ' << curr_val
<< endl;
}

/*A typical run:

Calculator functions:\n"
(A)add, (S)ubtract X(mult), (D)ivide , (N)egative,\n"
(R)eciprocal, (I)nitialize, (P)ower, Q)uit,\n"
(H)elp show this menu again.\n\n";

I 2.5
2.5
P 3
15.625
R
0.064
x 100
6.4
n
-6.4
a 10
3.6
s 1.12
2.48
d 2.5
0.992
i 4
4
p 0.5
2
n
-2
p 0.5
UNPREDICTABLE SEE LATER VERSION
q

------------------------

Note you do not need to leave space,
e.g. you can enter "d 2.5" or "d2.5"

*/

C++ Calculator Sample Program



// calcltr.cpp
//
// Calculator program that runs in console.
// Type M for menu.
//
// This is the original from PSW book Using C++
// I have used it as a basis to learn C++
//
// I have kept is at the following modifications will
// be easier to understand as the program becomes more sophisticated.
//
// Planned mods
// 01 Change command short cuts to alpha characters so that they are simple to
// key. Trivial change.
// 02 Add extra functions again trivial.
// 03 Add Memory functions
// MEM IN .. loads memory with current value
// MEM PLUS .. adds current value to memory
// Note: Mem Minus achieved by typing n (negative) to make current
// value negative and MEM PLUS. If required redo n to make current
// value positive.
// MEM SWITCH switches current value and memory.
// 04 Add cacpability to use mem value in function, e.g. to subtract value in
// in memory from current value, but keep memory value.
// This was a bit complicated and required writing function to replace CIN
// and use of STRING to DOUBLE function
// 05 Improve by checking that values entered are numbers and not garbage.
// 06 Capability to undo up to last 5 commands. Code with Vector?
// 07 Log comands to file so that they can be audited.
// Have default log KALKLOG.DAT in C:|MyDATA which is backed up to
// KALKLOG.BAK start of new program, overwriting previous version.
// 08 Allow user to change log file name and locaton.
// 09 Take data file in LOG format and run as batch program.
//
// Also plan to use as test for compiling in Linux and with other systems.
// May try to convert to Java and Ruby??
// When I have learned widows programming may try to convert to windows type.
//
// I know it is all old hat but it helps me to learn and may even help others.
//

#include
#include
#include
#include
using namespace std;

void display_menu();
int is_menu_choice(char choice);
void process_choice (char choice, // IN
double& curr_val); // IN-OUT
int main()
{
char choice; // menu choice
double curr_val; // current value of calculator

display_menu();
cout << setprecision(15);
curr_val = 0;
do {
cin >> choice;
choice = toupper(choice);
process_choice (choice, curr_val);
}
while (choice != 'Q');
return 0;
}

void display_menu()
{
cout << "Calculator functions:\n"
<< " +(add), *(mult), ^(expo),\n"
<< " (I)nvert, (S)et, (Q)uit,\n"
<< " show this (M)enu again.\n\n";
}

int is_menu_choice(char choice)
{
switch (choice)
{
case '+': case '*': case '^':
case 'I': case 'S': case 'Q':
case 'M':
return 1;
default:
return 0;
} // end switch
}

void process_choice (char choice, // IN
double& curr_val) // IN-OUT
{
double num;
switch (choice)
{
case '+': cin >> num;
curr_val += num;
break;
case '*': cin >> num;
curr_val *= num;
break;
case '^': cin >> num;
curr_val = pow(curr_val, num);
break;
case 'I': curr_val = 1/curr_val;
break;
case 'M': break;
case 'Q': break;
case 'S': cin >> curr_val;
break;
default: cout << "\tInvalid operation!\n";
} // end switch
if (choice=='M') display_menu();
if (choice != ('Q' || 'M' ))
cout << setw(16) << ' ' << curr_val
<< endl;
}

/* A typical run:
Calculator functions:
+(add), *(mult), ^(expo),
(I)nvert, (S)et, (Q)uit,
show this (M)enu again.

S 2.5
2.5
^ 3
15.625
I
0.064
* 100
6.4
q
*/

C++ Program - Console Calculator

The following entries are my further exploration of basic C++ where I am building a calculator to run in Dos Window.

Further documentation is in the detailed comments embedded in the code.

Monday, June 11, 2007

C++ - Hero's Method of Calculating Triangle Area


// tri_over.cpp
// Illustrate overloaded tri_area functions
#include
#include
#include
#include
using namespace std;

double tri_area (double base, double height);
// Base & Height formula
// Area = 1/2 x base x height

double tri_area (double a, double b, double c);
// Hero's Three Sides formula
// Area = Sqareroot [s(s-a)(s-b)(s-c)] where s=a+b+c (i.e. perimeter)

int main()
{
double base, height,
s1, s2, s3,
area;
cout << "Enter base and height of a triangle: ";
cin >> base >> height;
area = tri_area(base,height);
cout << "Area = " << area << endl;
cout << "Enter lengths of sides of a triangle: ";
cin >> s1 >> s2 >> s3;
cout << "Area = " << tri_area(s1, s2, s3) << endl;
system("PAUSE");
return 0;
}

double tri_area (double base, double height)

{double area_bh;
area_bh=(base*height/2.0);
return area_bh;
} // stub

double tri_area (double a, double b, double c)
{ double area_3s, per;
per=((a+b+c)/2);
area_3s=sqrt(per *(per-a)*(per-b)*(per-c));
return area_3s;
}

C++ Program - Identify Pythagoras Triangle


// Pythagoras-03.cpp

/* Listing of right angle triangles with whole number sides e.g. 3 4 5
Need only try possible values below Squareroot of side_1 sqaured + side_2 squared

I want to treat triangle (3 4 5) as a duplicate of (4 3 5)
Achieve this by only selecting results with side_1 > side_2

Also need to remove multiples such as (6 8 10) (12 16 20)
all multiples of (3 4 5).
Do this by seeing if greatest common denominator > 1 by calling
gcd with side-1 and side_2 to find their gcd and then call gcd
again with this gcd and hyp.
If this is 1 then combination is not a multiple
gcd uses Euclidean method to find gcd.

Virtual printer provides an alternative output source for printer
redirecting to D:\\My Documents\\Temp\\VPRINTER.OUT.
I use this as the console does not keep all of output in lon runs.
You can comment it out if you wish.


*/
#include
#include
#include
#include "D:\My Documents\Borland Studio Projects\mytools.h"
// #include "C:\Documents and Settings\Rod Talboys\My Documents\Borland Studio Projects\mytools.h"

void get_range (int& min, int& max); //out
int gcd (int a, int b); // in-out

void main()

{
// Virtual printer
// This file provides an alternative output source for printer
ofstream vprn ("D:\\My Documents\\Temp\\VPRINTER.OUT");

int max, min, side_1, side_2, hyp, count;
int hypmax, hypmin;

get_range (min, max);
cout << "Pythagorean triangles between " << min << " and " << max << endl;
vprn << "Pythagorean triangles between " << min << " and " << max << endl;

count=0;

for (side_1=min;side_1<=max;side_1++)
{
for (side_2=min;side_2<=max;side_2++)
{
// check if side_1*side_1 + side_2*side_2 is perfect square
// establish hypmin and hypmax
if (side_1>side_2) (hypmin=side_1);
else (hypmin=side_2); // removes surplus
hypmax= floor(sqrt(side_1*side_1 + side_2*side_2)); // processing
for (hyp=hypmin;hyp<=hypmax;hyp++)
{
if ((hyp*hyp==(side_1*side_1 + side_2*side_2))&& (side_1 < side_2))
{
if ((gcd ( hyp, gcd (side_1, side_2))) == 1)
{
cout << side_1 << " " << side_2 << " " << hyp << endl;
vprn << side_1 << " " << side_2 << " " << hyp << endl;
count++ ;
}
}
}
}
}
cout << "There are " << count <<" Pythagorean triangles between " << min << " and " << max << endl;
vprn << "There are " << count <<" Pythagorean triangles between " << min << " and " << max << endl;
system("PAUSE");
return 0;
}

void get_range (int& min, int& max) //out
{
bool valid; // valid for input and prime for prime number

valid = false; // initialise values
max = 0;

while (!valid)
{
cout << "Enter min and max (less than 1,000) values for smaller sides: " << endl;
cin >> min >> max;
if (max > min && max <= 1000)
valid = true;
else
cout << " Invalid entry try again." << endl;
}
}

int gcd (int a, int b)
// Use the Euclidean algorithm to calculate and
// return the greatest common divisor of a and b.
{
int r;
a = labs(a); b=labs(b);
while (b>0)
{ r = a%b; a = b; b = r; }
return a;
}

C++ Programming

I have for years (about 38!) fiddled about with programming. First time was at Rolls Royce in 1968 when bored I played around with a machine about 20x6x4 inches in size programming it to solve quadratic equations.

Then in 1974 I joined IBM as a Systems Engineer (technical marketeer who kept the salesman on this planet - BTW I ended up as a salesman myself) where they taught me to write Assembler. Shame they did not teach me how to get the programs to work. Then had a play around with high level language PL1, good language but did not last. I even taught a class on CICS/VS (don't ask) programming.

So now retired with time to have another play especially as there is a wealth of free compilers, development environments, tutorials and documentation all at the end of broadband. For someone who started writing programs by using coding sheets which were sent to punch room (arghh - nice girls though) and then booking computer time feeding the cards in waiting for the compilation report, correct errors and send back to punch room so the new cards would be ready to do to do the same cycle next day. Today seems like sc-fi has become reality.

I decided to start with C++ and learn enough to be able to code a few sample mathematical exercises because .... strange as it may seem .... I wanted too.

First to select a reasonable, free, compiler that preferably work on Linux too, my longer term target environment. I looked at both Borland Turbo C++ and MS Visual C++, both worked but environment too sophisticated for my immediate needs as I want to be able to understand what is going on.

So I am using Bloodshed Dev-C++ which you can find at http://www.bloodshed.net/devcpp.html
and so far this has been fine.

To get me started I am reading "Using C++" by Julien Hennefeld and CharlesBurchard. It assumes you know little and approaches C++ from a traditional background of code examples and does not introduce Objects until mid way through book. It is published by PWS and its web pages seem to have disappeared so at first I could not get code examples but I found a site St Edwards who have put all the code up on their web pages at http://myweb.stedwards.edu/laurab/bookcode/

For online C++ Reference I currently use

I will put my code samples on the blog. They are of no consequence and put there mainly as backup and documentation for myself.

Wednesday, April 18, 2007

QUANTA PLUS Web Developer SUSE 10.2

If you are looking for above in SUSE 10.2 then checkout http://www.mail-archive.com/opensuse@opensuse.org/msg31380.html

Quanta is in the package "kdewebdev3". If I remember correctly I went to Applications->System->Configure->Install Software
and located "kdewebdev3", selected it
and ran install. It asked for the CD 5(?), I inserted DVD I had from Linux Mag with SUSE 10.2 install on it, it found software and all ok.
(Note I have 2 "Install Software" I chose the 2nd)

Note I just tried to repeat this before writing blog and could not find "kdewebdev3" I guess having been installed it is removed from Available list.


Linux Windows Equivalent Programs

There are some key applications I use in my Windows system that will need to be matched with Linux equivalent. Here is the results of my studies to date, note I am only listing programs of interest to me.

Common - versions for both Linux and Windows
  1. OpenOffice (Opensource Office Suite - so good I did not install MS Office on new PC)
  2. Picasa photo viewer and entry editor
  3. Firefox web browser
  4. GIMP - Photoshop type program - currently getting to grips with this
Web based available to both Linux and Windows
  1. Googlemail
  2. Google "Office"
Windows - Linux equivalent
  1. NotepadPro editor and HTML builder
    -> KATE as editor QUANTA PLUS as HTML builder

  2. Photoshop Elements (mainly used to catalogue my photos currently 16,000+)
    -> F-Spot Great news is that if you save Tag information to file in PSE then when you Import into F-Spot the Tag information is automatically loaded.

Applications still to be resolved

This does not mean that there is none, just I have not either found them or decided yet


  1. SERIF PagePlus - Publisher application
  2. SERIF WEBPlus - High function web developer
  3. SERIF MOVIEPlus - High function but complicated movie editor
  4. PDA synchroniser
  5. Mediaplayer
  6. CD/DVD writer
  7. FTP
  8. DivX MP4 support

Monday, April 9, 2007

Linux SUSE 10.2 VM accessing Windows Files of Host

From previous posts you will see that I have set up a SUSE 10.2 Guest within my Windows XP system using VirtualBox on my Notebook. Also I have managed to access XP files on my home network from my native SUSE 10.2 PC, By combining the methods I can access XP files on my Notebook from within SUSE guest.

Enter smb://192.168.1.3 and it gave me access to "My Documents" which I have setup as shared. The address of my PC (192.168.1.3) I found this time by using MS "System Information" found by following
Start->All Programs->Accessories->System Tools and then from within "System Information" follow System Summary->Components->Network->Adapter and in my case used IP address found in wireless.

Monday, April 2, 2007

Linux SUSE 10.2 via VirtualBox on Laptop

Well at last I have a Linux system coexisting with my Windows XP and connecting to web through wireless without having to change XP system, especially boot options. See previous post

It was not without problems and some problems appeared to "heal" themselves. I will add more info when time permits.

Note, this entry is being typed into Google Blogger, in Firefox, in SUSE 10.2, running as virtual machine under control of VirtualBox within MS XP on my Fujitsu Siemens Amilo Notebook and through wireless connection to GURU ADSL router/modem into Orange Broaband.

Sunday, April 1, 2007

VirtualBox Virtual Machine

Thanks to an article in Computer Shopper this month I downloaded the Windows Version of VirtualBox from http://www.virtualbox.org and installed on my Test system. This is an AMD 2000 based machine with 1GB of memory and a swappable hard drive so that I can boot up either Linux or MS XP.

This VirtualBox was claimed to set up an environment in a host system, be it Linux or Windows, within which you can install another operating system, provided of course you have install software. So I installed SUSE 10.2 within my XP system. Took some time, stalled on first attempt towards end on "Synchronising ZenWorks" or something similar.

Anyway 2nd time was fine and I now can boot up SUSE 10.2 from within XP!

Only (silly) problem was to switch between guest Linux and XP host you need to press "Control Right". I thought they meant press CTL and right arrow key together, but no they mean press the CTL key on the right.

It all reminds me of IBM VM system I used when at work.

I will have a go now at installing in my Notebook.

Thursday, March 29, 2007

Linux Laptop Wireless (cont.)

Earlier post I described how with Live Simply MEPIS 6.0 CD I managed to boot Linux on my Laptop and access Internet via wireless connection to my ADSL modem/router. Unfortunately after initial success this stopped working. Not sure why, but I had been trying other Linux Live CDs and perhaps
this was cause?



Anyway I visited
http://www.mepis.org


and downloaded the ftp://ftp.ukc.mirrorservice.org/sites/mepis.org/testing/SimplyMEPIS-CD_6.5.rc3_32.iso

built CD with Nero and booted up lap top.



Internet access did not work, not surprising as wireless needs WEP key. Therefore do the following


  1. Choose main KDE tab,

  2. Systems Settings,

  3. Internet & Networking,

  4. Mepis Network Assistant


    1. At this point Password for ROOT needed (this is root)



  5. Select Wireless Tab


    1. Select WEP encryption

    2. Enter WEP key


  6. Select Interfaces Tab


    1. Select ath0

    2. Select Start/restart on Apply

    3. Select Apply (at bottom)





Receive warning message saying something like "With most cards may take 15 sec before ready, for some cards may have to reboot"


Now I still want to try and boot from flash memory USB so that I can customise system, and/or remote USB attached hard drive.

Wednesday, March 28, 2007

Mozilla Firefox Tip

As part of my progression to open source software I use FireFox as my default browser. Tabbed browsing, now also available in IE7, is fine but I prefer, when I open a new Tab, that the address from currently viewed page is copied over and the page then opened up. I discovered by chance that this is the case if you select "New Tab" icon and click middle button!

Sunday, March 25, 2007

Web site built by Serif WebPlus

As mentioned previously I am impressed with Serif software. I have lust uploaded my WIP web site built with Serif. Check it out on http://www.RoderickT.com

Monday, March 19, 2007

Accessing files on my XP PC from Linux PC

Still plodding along on my Linux journey. Been having difficulty in accessing my "Shared" files on MS XP PC from my Suse Linux PC. These are connected on home network via DSL Router/Modem.

Just done a Google search and found http://www.linuxforums.org/forum/suse-linux-help/55876-suse-10-0-file-sharing-networking-how.html where is explains how to use Konqueror to achieve this.

I followed advice, entering smb://192.168.1.4 and it immediately connected to my WinXP machine and gave me access to "My Documents" which I have setup as shared. The address of my PC (192.168.1.4) I found by using the free SANDRA program on the XP machine.

Check out http://www.faqs.org/docs/Linux-HOWTO/SMB-HOWTO.html for info on SMB.

I now want to see if I can set the link up between Linux and XP machines so that I do not have to explicitly quote IP addresses

Achieved the above line quite easily. When I enter

When I enter smb://192.168.1.4 the shared files which in my case include "My Documents" appear in the konqueror window. Just select this and drag onto the desktop, and then a single click takes you straight to WinXP machine "My Documents". I then renamed this icon to a meaningful name without the IP address and now I have achieved my objective.

Thursday, March 1, 2007

Serif Software

As stated earlier I am hoping that my next PC, in 2 or 3 years time, will run on Open Software and Linux, and so escape expensive SW bill and put funds into hardware. However I am a fan of the UK Serif Software, although I think it only works on Windows platform.

For several years I have used PagePlus, and found it very intuitive and well featured. I am currently on version 11. It fulfills Publisher functions at a much lower price. Recently a friend wanted a plan drawn up and PagePlus (10 at the time) did the job fine. Very easy to make a flyer and I used it as a basis to rewrite my wife's web site www.fascinatingfungi.com

Because I purchased the PP 11 upgrade online, I was approached by Serif salesman to see if I wanted to order any other packages at special prices. Now I have dealt with Serif in the past and I know you can haggle and negotiate further price reductions, which as an ex-salesman I enjoy the banter.

This prompted me to order the WebPlus package, which uses a similar approach. This looks fine but as of yet I have not used it for real. I plan to rewrite my own web pages www.roderickt.com with it .

Finally as I had just purchased a new Camcorder I also purchased MoviePlus 5. I have just completed creating my first video with this which has prompted me to write this article. I have used several film editors, Pinnacle, Ulead, Windows.. but I found this more to my liking and richer in function. The MoviePlus approach is to provide you basic functions which you can add to and build up your movie, rather than a collection of pre-built features. So it is a bit difficult to learn but very powerful and to date no limiting factors.

You can try back dated versions of Serif SW for free by downloading it from
www.freeserifsoftware.com . I tried PhotoPlus from this source, in fact paid £5 to get version 8 which is more up to date than free version although not the current version, however I am not too keen on this and no doubt will keep on using Adobe Photoshop although I plan to have a good look at the open software GIMP.

Serif's main web page is www.serif.com/

Saturday, February 10, 2007

Linux on Wireless Laptop Notebook MEPIS

Over recent years I have been dabbling in Linux to see if a real alternative to XP. Current Distros are a lot better than a few years ago and certainly for desk tops with external router modems all looks fine. Still some problems with printing.

My aim is to be in a position to use Linux as only operating system when I next purchase a PC and/or desktop, which will probably be in next 2 to 3 years, as current products are less than a year old. Then I can save £200-400 which can go utowards hardware!

But before I devote to much time and effort I need to get Linux working on my Laptop, a Fujitsu Siemans Amilo L7310 GW Pentium D wide screen which connect to net via in-built wireless and GURU wireless LAN router. For desktop Linux testing I use my older AMD 2000 machine with swappable drive that is currently loaded with Suse 10.2 but I do not want to install Linux on Laptop, nervous I may harm its XP system, so I have been looking at Live CD boots. Several of these would not display screen, and those that did would not connect to net via wireless, although would connect if ethernet cable plugged in, which goes through same router.

I came across The LiveCD List http://www.livecdlist.com/?pick=All&sort=Votes page and noticed that MEPIS users were having success with wireless so downloaded SimplyMEPIS_6.0_i386.iso from ftp://ftp-linux.cc.gatech.edu/pub/linux/distributions/mepis/released
wrote to CD with Nero and it found the wireless automatically and I am away accessing the net!

I now want to see if I can copy CD to USB drive and boot from 2GB USB so that I can configure system to use screen better etc. At the moment when I plug in USB drive it is note detected

Sunday, January 28, 2007

NERO PREMIUM 7 Update.

Email to say new Update for Nero Premium 7. I went to web, downloaded (120MB+) and installed no problem except lost connection to online Help files.

Had to download the Help Files from http://www.nero.com/nero7/eng/User_Guides.html(.CHM) separately also chose PDFs as well .

I put the CHM in folder I created in ProgramFiles/Nero They still did not work, had to open each one and in File Explorer which caused MS Open File Warning and unless you turn off "Always ask before opening file" check box it will not work .

Once this is done works fine from File Explorer Still could not access CHM Help files from within applications. To fix this I needed to copy CHM file into each Nero Application Folder Step through folders to find CHM stub files with same name as downloaded ones and then copy over.

I could not find SMARTSTART or homes for NeroScout_Eng.chm and NeroSipps_Eng.chm (internet phone)

Sunday, January 21, 2007

Introduction

One of three blogs I am creating to record actions and thoughts so that I can recall them later and may even be useful to other people.

You know how it is! You spend several hours or even days solving a problem for your PC and software, and for some reason need to do it again (new PC, recovery or whatever) and all you can remember is that you know you did it before but be damned if you can remember how!

Other Blogs are Photography, my major hobby, and Education, I have a thirst for knowledge and facts.

I hope to use these as feeds to my website where significant events will be summarised.

Blog Archive

About Me

Husband, dad and grandad. Physics graduate from London University in late 60s. Retired from IBM company in 2000 after 27 years as both Sytems Engineer and Salesman. Interests include photography, nature, science, maths, walking, travel. I like facts as a basis of opinion and not opinion that is assumed to be fact.