last updated:09 Aug 2004 15:54 UK time
|
 |
|
(Comments added for week ending Sun 08 Aug 2004) | View Other Weeks
|
|
| Hidden URLs - How easy are they to find | Sun 08 Aug | Aussie Chick |
| I am working on the website for http://www.calebsoftware.com at the moment.
Actually I am working on the backend. I have ftp access to the server where the website resides. I will be using a mySQL database to store user information, and to process registration details. For me to work with the server requires and tinker with my admin php scripts I needed to have some kind of access to the mySQL database. I have found a pre-written free set of php scripts that gives me exactly what I want.
Now I type in www.calebsoftware.com/...../index.php and I have full access to my database. Security wise currently if you know the URL, then you have access to the database. The passwords are hardcoded. I am looking to see if there is a way that I can enter them when I access the page. But havent gotten there yet.
Now (finally) my question.
How safe is this? If nothing else I can ftp into the site and change the name of the password.php file, this will stop the scripts from running and therefore stop anyone from getting access. When I want to use them it is a matter of ftp-ing into the site, and changing the name again.
If a URL exists that has access to a database of information, will it be found? or is the only one to find it via knowing the url??? |
| Sun 08 Aug | anon | PHP and MySQL. Is that a Linux server? Are you using Apache? Google to learn more about .htaccess files. You can password-protect a single directory using an .htaccess file (in fact, you can do a lot more too).
As a note, .htaccess is specific to Apache only. It means nothing in an IIS setup. |
| Sun 08 Aug | Aussie Chick | *grin*
I am positive you spoke a different language in that post. Okay, well not a different language, just alot of new terms that I fear will require alot of hard work and googling and scratching my head.
I will be honest. There is no way I can afford the time to do that sort of thing at the moment (not when I can just ftp into the site and hide the file).
But if it is considered the more sane approach, then you can be sure I will look into it as soon as I do have some time. |
| Sun 08 Aug | Brian | Well, it's no real security. Anyone who wants to access the admin pages just has to watch the HTTP traffic between you and the server, or start guessing. For a short-term situation, maybe it's acceptible. The biggest danger is that if you think it's 'good enough' you never fix it and do it right.
Look into htaccess. It's really not that hard to set up, and you can have a password and limit access by requesting IP/domain for extra security. Even if you're new to Apache, it should take at most a few hours and will really give you peace of mind.
If the data were really valuable, I would add something like SSL with a client certificate). |
| Sun 08 Aug | www.marktaw.com | On one of my sites, I was careless enough to install forum software twice. Once in a folder called 'forum' and once in a folder called 'forums'. Both pointed to the same database.
Someone found the unfinished install in 'forums' and - purposefully - finished the install, wiping out the database.
If your webhost gives you CPanel or something similar, you can password protect your directory via the admin GUI. If you're on a shared server, ask about it, most will provide it or something like it free. If you're on a dedicated server, it usually costs $20 a month. |
|
| How to raise prices? | Sun 08 Aug | anon |
| Just finished reading Erics article on pricing.
Im wondering how easy it is to play around with the pricing? How to raise the price? How to justify the move? How to answer all the moaning, groaning and whining? |
| Sun 08 Aug | tim | Time the increment to match a major upgrade?
Keep the original price for the low-medium slot product, and add a new price for the enterprice/high cost product?
Like the article says, you'll ALWAYS have whiners; listen for a bit, and when they don't let up, ignore them. They'll whine no matter what you do. |
|
| What's with Ars Technica? | Sun 08 Aug | Lisa |
| I keep getting black screens when I try to go there.
My IE security is on Medium. I tell Spybot Resident to go ahead and download the darn Avenue A.
What more do they want?! The entire rest of the Internet (that Ive ever visited) is fine with my security, but I cant even view A.T.s home page - daaaark black screen. |
| Sun 08 Aug | Doug | Works OK for me with IE security mostly maxed out including scripting and activex disabled. No other filters. |
| Sun 08 Aug | trollop | You're not on their black list, are you?
I had no probs viewing the site (looks useful - thanks) |
|
| Eric Sink's Software Pricing Article | Sun 08 Aug | anon |
| Has this been posted?
I know Eric had mentioned it made to the editor ... but took a couple of days to make it to MSDN . . . |
| Sun 08 Aug | Prakash S | http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnfoghorn/html/foghorn10272003.asp |
| Sun 08 Aug | Prakash S | oops, that was wrong....
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsoftware/html/software08052004.asp
this is the right one. |
| Sun 08 Aug | anon | Thanks d00d! |
|
| Buffer Overflow and Bounds Checking | Sun 08 Aug | Herman |
| What is buffer overflow? and how can one check that you are not overflowing your buffers? Also what the heck is bounds checking? Why are these such security risks? |
| Sun 08 Aug | Mr. Troll To You | You mean it's 2004 and buffers are still overflowing? Boy aren't we advanced. |
| Sun 08 Aug | Name withheld out of cowardice | You can use java and then you won't be overflowing your buffers. If you don' t know what these are and you can't use google to figure it out then you shouldn't be programing in languages that allow you to overflow buffers |
| Sun 08 Aug | Christopher Wells | I don't know how to overflow buffers either. The only way I can imagine is like ...
void foo(const char* a_string)
{
char buffer[60];
strcpy(buffer,a_string);
...etc ...
}
... but given that buffer overflows are said to be so commonplace, there must be some other way to do it. |
| Sun 08 Aug | thank you for using DoMyHomeworkForMe.com | A buffer is a big bucket where all your data goes. If it develops a hole then some of your data will pour out and be lost. (Note: you may recover your data from a memory 'pool' subsystem, but without that your data will be lost, but do no harm.) Bounds checking involves a quick scan of the 'bucket' to see if there are any 'holes' where it could 'overflow'.
Please post your teacher's marks - I'ld like to know how I did.
(On the rather unlikely chance that you're actually not just asking us to do your homework, please post the reason why you didn't spend five minutes with a search engine looking it up yourself. Hell, I don't care if it's homework or not - why be so lazy?) |
| Sun 08 Aug | Yes or No? | Is this not a place to strike up a conversation? |
| Sun 08 Aug | Roose | Christopher wells --
Weren't you the guy who was going off about the usefulness of pointers in the other thread? If you are so pointer happy then I would think you would know a bit more about how buffer overflows are exploited...
That foo function is a good example... since there is no way for the function to know how long a_string is. There should be an assert there at the very least.
It could start out with a_string being a fixed length at compile time, but then someone else might need to use foo and call it on user input -- BAM. Whenever you have user input (over a network, especially) and you use fixed length buffers, you have the possibility of a buffer overflow if you don't check the length of the input.
As I understand it the most common way is for them to write just enough data to get to the return instruction of a function, and then trash that instruction with a jump to somewhere else in the buffer, where they have written some code to take over your machine.
This is why some processors have a 'no execute' flag. This prevents someone from writing arbitrary instructions into memory and running them. If that section of memory is for data only then the CPU won't execute the data as instructions. |
| Sun 08 Aug | Christopher Wells | > Weren't you the guy who was going off about the usefulness of pointers in the other thread?
I was.
> If you are so pointer happy then I would think you would know a bit more about how buffer overflows are exploited.
You're right about how they're exploited; I said I don't know how they're caused, other than my one example.
> That foo function is a good example...
Any other examples? Or are all buffer overflows caused by exactly this: using strcpy on a fixed-length buffer (or using strncpy and forgetting to null-terminate the result)?
> Whenever you have user input (over a network, especially) and you use fixed length buffers, you have the possibility of a buffer overflow if you don't check the length of the input
And I suppose that if you use variable-length buffers, you (or your string class) must still check the length of the input (to know how large a buffer you must allocate). |
| Sun 08 Aug | Christopher Wells | > Why are these such security risks?
Imagine that a function like my foo() above was used by your email reader to process the 'from' line of the emails you receive ... written like this with a fixed-length buffer because, to give a fictional example, the internet standard for emails says that the from line MUST be shorter than 60 characters.
So I (a cracker) send you an email, whose 'from' line contains:
1) A random name
2) spaces to pad it to 60 characters
3) A number which contains the address of the begining of code described in 4
4) Machine code for whatever code I'd like to run ... dynamic load a system DLL and call a function to delete your hard-drive ... or to send me via return email the contents of your address book ... or anything. |
| Sun 08 Aug | r1ch | Buffer overflows can occur pretty much anywhere that a buffer is used if the developer isn't careful enough... Here a couple of less obvious examples borrowed from a good MSDN article on the subject ( http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncode/html/secure04102003.asp )
bool func(char *s1, int len1,
char *s2, int len2) {
char buf[128];
if (1 + len1 + len2 > 128)
return false;
if (buf) {
strncpy(buf,s1,len1);
strncat(buf,s2,len2);
}
return true;
}
bool func(byte *name, DWORD cbBuf) {
unsigned short cbCalculatedBufSize = cbBuf;
byte *buf = (byte*)malloc(cbCalculatedBufSize);
if (buf) {
memcpy(buf, name, cbBuf);
// do stuff with buf
if (buf) free(buf);
return true;
}
return false;
} |
| Sun 08 Aug | Tom Vu | This should explain it...
http://julianor.tripod.com/bufo.html |
| Sun 08 Aug | People want to know | Herman, you're writing an expert report on the subject I presume. How much will it be? $4,000? Which of the expert IT research groups do you work for? |
| Sun 08 Aug | People want to know | Send the link when you release it. We'll tell you where you got it wrong. |
|
| Client side validation | Sun 08 Aug | Joe |
| I have a two web forms - one with only 3 fields the second one 15. My partner insists on having client and server side validation. I am trying to convince him that server side validation is good enough. I have checked many sites and they dont do any javascript client side validation.
Am I being irrational here?
Joe
P.S. alerts in Javascript makes me nausious. |
| Sun 08 Aug | CF | Client side validation is nice because it doesn't require a round trip to the server just to see if the user put in her password. Alerts are nice because they are cross-browser compatible. Combine it with highlighting of the rows the user needs to check using CSS and you have a nice client-side check.
But don't be fooled into thinking that is all you need. Obviously in your case you understand that. But in Javascript it is incredibly simple to have your validation overwritten. For example, if I have super validator:
function superValidator(){
if(document.forms[0].password.length < 8){
return false;
}
}
A user can type into their location bar:
javascript:alert(superValidator=new Function('return true;'))
and your function is render useless.
So I think client side has it's place, and from a user would ask that you please use it, but just don't rely on it for anything more than a nicety for the user. |
| Sun 08 Aug | Peter | >they don't do any javascript client side validation.
Should be 'they don't do any javascript client side validation anymore.'
Too many hacks broke all sorts of client side validation. We only do it for making sure that the end user has actually typed stuff that resembles correct data before pressing submit.
One book I read (I think it was called web hacking) described a situation where the order form from the online store was all client side js. As a result, enterprising crooks would do 'save as' then edit the price of the shirts from $50 to $5 and then do a submit from the edited page: instant 90% discount.
As a result, most folks do very little client side validation. And as more and more folks are disabling js totally, pages depending on js will find more and more breakage. |
| Sun 08 Aug | Almost Anonymous | 'My partner insists on having client and server side validation. I am trying to convince him that server side validation is good enough. I have checked many sites and they don't do any javascript client side validation.'
You didn't check any of my sites then -- we do client and server-side validation for all our forms. Doing *just* server side validation is good enough but it's not good usability. Client-side validation is a great benefit for your users.
My form-generation library handles both the server side and client side validation together. So I don't have to worry about manually coding each form (which can take forever).
|
|
| {kill time}site with good website recommendations? | Sun 08 Aug | ` |
|
Recently saw someone mention this new website where you can see websites recommended by others etc? anyone remember the url? |
| Sun 08 Aug | anon | One of my favorite time-killers is the Daypop Top 40:
http://www.daypop.com/top/ |
| Sun 08 Aug | Prakash S | del.icio.us - is that what you were looking for? |
| Sun 08 Aug | ` | yes i frequent daypop and use delicious for bookmarks,
but it was not that one.
it was a catchy name (though not catchy enuf i guess) that i have been seeing in the wild in blogosphere lately |
| Sun 08 Aug | www.marktaw.com | http://www.freshnews.org/ |
| Sun 08 Aug | matt | blogdex ? metafilter ? memepool ? b3ta? plastic ? |
| Sun 08 Aug | TomA | http://www.wellvetted.com
Monthly compilation of adresses from several other sites. Some very nice designs. Many sites linked from there crash Opera too. |
| Sun 08 Aug | ` | sadly, none of those... i guess i will hopefully see it mentioned again. thanks. |
| Sun 08 Aug | www.marktaw.com | And search didn't turn up anything? |
| Sun 08 Aug | Rodger Donaldson | monkeyfilter.com? |
| Sun 08 Aug | eclectic_echidna | > hpmuseum.org
> wikipedia.org
> openrpn.org
> slashdot.org
> joelonsoftware.com
On the company internet
> mathworld.wolfram.com
> codeproject.com
> msdn.microsoft.com
> sourceforge.net
--
ee |
|
| Too many bells and whistles | Sun 08 Aug | CGI-bin Laden |
| The WinAmp thread got me thinking about something thats been a problem in software for a long time but seems to be getting worse: Feature Bloat.
This problem used to be only found in big programs, like word processors and database programs. But now, even the simplest programs are now being loaded with more and more useless, pointless features. WinAmp is one example.
Another is Nero. It used to be a good CD burning program but now theyve crammed way too much unnecessary crap into it.
One of the former cool features was having Nero automatically launch when I inserted a blank disk.
But no more. Now, when inserting a blank disk , your only choice is to lauch a Wizard that makes the CD burning process 10 times harder and more complicated. |
| Sun 08 Aug | KayJay | Just switch to normal mode. Click "Nero" at the bottom of the first Screen in the Wizard. Nero is one app. I have no complaints about. None. |
| Sun 08 Aug | Fred | Unless customers are willing to rent the software, or the company can make money from other products once a software has all the features most of its customers are willing to pay for... I don't see how it can remain in business unless it issues new versions and get customers to buy them.
On the other hand, I'm not sure shareholders would agree on taking some of the profits of profitable products to pay for the maintenance of deadware. Also, how long can a piece of software remain usable once it's no longer under development because the company folded? I'm using Ecco as my PIM, and although it's still remarkably good considering development stopped in 1997, it's beginning to show its age.
Hence WinAmp 5 :-) |
| Sun 08 Aug | www.marktaw.com | I dunno, I like Winamp's new features, especially the way it handles playlists, and the aforementioned way you can mass edit ID3 tags.
Skinning I can do without, I've never been a big fan of skins, except on Trillian because the default skin is so ugly and difficult to use. |
| Sun 08 Aug | Li-fan Chen | Microsoft Works 2.0 for DOS is so simple and sweet!
Just Kidding |
| Sun 08 Aug | Philo | Think of it from a psychological point of view, too. Have you ever finished a software project you've spent a lot of time on? Do you really say 'Okay, now I'm done'? Or do you think 'Now that it's done, I can add that one setting I put off' or you get an email with a suggestion you really agree with...
Did someone once say 'Software is never finished; it's only released'?
Philo |
|
| How to link 3D Studio Max and VC++ | Sun 08 Aug | Rajeev |
| I have developed some objects in 3D Studio Max. Let me know how to control(say move, rotate,etc) these objects through VC++. I have to rotate or move the objects which are developed in 3D Studio Max version 4.2. through VC++ programming. Please let me know how to do it... |
| Sun 08 Aug | Rajeev | Please hurry, it is for contract... |
| Sun 08 Aug | . | hint: don't tell people to hurry. |
| Sun 08 Aug | Rajeev | Please rely. Someone.
I am needing this for big American contract that was outsourced to us. I cannot earn my 3 rupees per day without this information. |
| Sun 08 Aug | KayJay | Get thee back under that bridge troll! |
|
| Getting Things Done: best brief tips | Sun 08 Aug | Mr.Analogy |
| Inspired by previous posts about the book Getting Things Done.
Please provide your top 1 or two TIPS. Try to keep it brief.
Ill start:
Have ONE short label for each project.
If you store different types of materials for the project, you ALWAYS use that label.
Email: subject: [Myproject] this is the subject
Brochures, catalogs, CDs in file folder with name MyProject
File folder on your computer called MyProject. |
| Sun 08 Aug | Nike | Just Do It. |
| Sun 08 Aug | no name | It takes a certain amount of ignorance and excitement to get things done. I'm reminded of that reporter who died in Iraq from an annurism(sp) in his lung? (Can't think of his name or the exact cause of death but that's beside my point.) The guy seemed so excited about everything he did. He was just happy all the time you saw 'em. Even when he was in Iraq. He was just excited to be doing his job. (I would have been exicted to work with Soledad O'Brien too!)
Anyway ignorance and excitement is what it takes. There really are no 'tips' you can give a person. I can't tell you to be excited. I can't tell you to code all day long and ignore the side effects of your poor design (ignorance).
So the best tip I can give is to be ignorant and excited. |
| Sun 08 Aug | Nemesis | As a stronger alternative to Nike's suggestion: JFDI - my favourite methodology ;-) |
| Sun 08 Aug | sid6581 | The thing that's helped me the most is keeping a list, on paper, of things to do. Then I just go through them and check off everything as it's done. Having that list right in front of me motivates me to get through it and check off those items, no matter how small they are.
This also helps me keep track of what I've done. |
| Sun 08 Aug | mb | Hmmm... doesn't look like any of the responses are reponses to the original post, which is about a specific book (more info @ http://davidco.com/ & various threads in this forum).
Here's a tip for software people, very much in line w/the theory of FogBugz: every task goes into the bug database. though i don't tend to follow that one at the early, less defined, stage of the project but rather use paper to-do lists. later on everything which takes more than 5 minutes goes into the db when it's requested. |
| Sun 08 Aug | JWA | I posted this in the previous thread, but it is worth repeating:
Start roughing out a project by grabbing a manila folder, opening it up and doing your 'mind map' or whatever right on the inside of it. Grab a manila folder, a pen, and some blank paper. Brainstorm the project on the manila folder, then move on to the next portions - object diagrams, db layouts, and UI sketches, etc. - on the blank paper. Put the sheets into the folder, label it, and now you have a fully planned out product and all of your thoughts on it nicely captured. It's out of your head in a system that you can trust. As you add additional items to your folder and work on that project you have all of your original thinking on it right there with you.
Also, the basic 'Do any item that requires less than two minutes immediately' is a good rule to follow.
--Josh |
| Sun 08 Aug | phil jones | Two quick thoughts ...
1) One short label.
This reminds me of one of the reasons I prefer wiki (and my own wiki-like desktop PIM http://www.nooranch.com/sdidesk/wiki/wiki.cgi) for keeping my notes in.
The fact that you have to give each page a unique, unambiguous name, is really good to help you remember things. Hyperlinks between all pages is pretty damned useful too, of course. But I'm becoming increasingly aware that the 'one unique and meaningful pagename' is an unremarked stroke of genius.
2) Checklists
The problem with all checklists for me, is that usually what gets put on them are the things I *need* to do, but don't particularly *want* to. Just keeping track of these doesn't solve the main problem : motivating me to do them.
In contrast, the things I actually want to do, I don't need reminding. |
| Sun 08 Aug | JWA | 'Just keeping track of these doesn't solve the main problem : motivating me to do them.'
This is the reason why the GTD method says specifically NOT to make lists of a bunch of steps to the project, but to only write down the Next Action(s) for the project. If you only write down the very next things that you can do, you remove the demotivation of looking at a list of things that you can't do just yet and that you aren't sure about.
--Josh |
| Sun 08 Aug | www.marktaw.com | Yep, the Next Actions List is probably the single best thing I took away from that book. It's something I did when I was at the peak of my organizational skills and worked at a job where nothing could be overlooked, and it's something I do again now that I read the book. |
|
| What would you ask for? | Sun 08 Aug | Jason |
| For the first time in my life Im being actively courted for a job. The VP Im talking to seems really intent on having me join the company. Im interested, but havent committed to anything yet.
It occurs to me that I should leverage his interest to my advantage. Never having been in this position before (and probably never again), Im not sure what I should ask for.
Besides a bigger salary, what else would you ask for? |
| Sun 08 Aug | Kalani | Thirty oiled virgins, a daily sponge bath, and a foosball table.
Well maybe you ought to ask for something more practical. What's important to you? Do you want to spend more time with your kids? Get as many work-from-home days as you can. Do you want to be as productive as possible? Ask for your own office (and some quiet). Do you want to study the blue-toothed booby? Ask for college funds.
Before you get a list of demands, first determine what your priorities are and what you aim to do while working at this place (your demands should be focused like a laser, not a clusterbomb). |
| Sun 08 Aug | sid6581 | Flexible work hours, good health insurance, 401k matching, responsibility and challenges, and a competitive salary. |
| Sun 08 Aug | Mr.Analogy | Ask for things that benefit you but cost them very little.
Flexible work shedule. Increased vacation time (with commensurate decrease in pay).
Fast computer. (Costs them a little, but increases your productivity at the same time. hopefully they'll realize that)
Dual monitor setup (see above) |
| Sun 08 Aug | KayJay | A contract for X number of years with a penalty for foreclosure. An assured income is way more of a productivity booster than a beowulf cluster of NEC Earth Simulators, IMO. |
| Sun 08 Aug | Tom Vu | Dual monitors
Operating system of your choice
Editor of your choice
Ability to download and install pograms on your workstation.
Part ownership or ability to become partner |
| Sun 08 Aug | kc |
Dual monitor setups are nice... but also request a 'training allotment' and make sure to put it in terms of:
'If I use it, my skills get better and you benefit. If I don't use it, it won't be spent. Either way, both sides benefit.'
I did that at my last job and managed to get my annual training allotment doubled. |
| Sun 08 Aug | kc |
Oh... and make sure to note what that allotment can be used for...
books, classes, seminars, software, conferences, etc |
| Sun 08 Aug | anon | Get it it writing and realize that as soon as you accept the offer, the freebies are over.
I like all the ideas. Training & Vacaiton increases are especially win-wins in my book. If the company won't give you that ... |
| Sun 08 Aug | CGI-bin Laden |
2 words:
hooker allowance |
| Sun 08 Aug | Christopher Wells | > A contract for X number of years with a penalty for foreclosure.
Or a year's notice: so that the contract is for an unspecified number of years, but they need to tell you one year before they end it.
I think I'd ask for competent and motivated coworkers; and access to resources that support development (customers, sales, QA). |
| Sun 08 Aug | John S West | One question to ask yourself is, 'what are you giving up'?
What do you like about the way things are? Think of requirements that would insure those things don't change, or that they get even better.
Two years ago I was in your position. I was an independent contractor. I loved working from home 99% of the time; I loved making an excellent hourly rate; I loved lots of flex time. In short, I liked my lifestyle and didn't want to change it.
Furthermore, if my suitor wanted me to come to work for them, I wanted to be compensated for the risk of closing down my consultancy, and the expense of eventually having to start it back up again. Plus, I wanted enough money to be able to rationalize the inevitable pointy-haired-boss nonsense I would have to put up with.
So, my core personal requirements were:
1) 100% telecommute
2) 20% more pay
3) A highly marketable job title (I chose CTO).
To my amazement, they said yes. I'm still there and still reasonably happy. |
| Sun 08 Aug | Serge Wautier | > Or a year's notice
according to the country you're living in, this may or may not be legal. So check it first, because if they give it to you, it might just turn to be worth less than the paper it's written on.
My 2 EUR-cents. |
| Sun 08 Aug | Peter | 2 flat panel monitors (more room for paper on my desk).
An allowance for books (pitch it so that the books are the foundation of the company library and aim for a book a week).
Time for research projects (maybe half day a week). You never know when something you diddled with ends up saving the company. Things like post-it notes are an example of a project that started as a 'don't do this on company time' to become something that 3M makes millions on. |
| Sun 08 Aug | www.marktaw.com | A 5:00 gaurantee. As long as you show up at 9:00AM, and take a 1 hour lunch, you can leave at 5:00. |
| Sun 08 Aug | TheGeezer | Dual monitors (for me this is non-negotiable)
Quiet office
A decent benefits package
New computer (not some shitty 700MhZ hand-me-down suffering from Windows 'rot' having been used by 4 different people in the past)
Coke/beer fridge on free-play |
|
| Backup Program | Sun 08 Aug | www.marktaw.com |
| I swear, this isnt spam. :-) Ive seen people ask for Automated Hands Free Backup programs here before.*
Found this free automated backup program. Its not perfect (you can only select directories, not individual files), but what sets it apart is that itll FTP files for you. I think thats worth moving some files around for... FWIW, I found this on NoNags.com
http://www.2brightsparks.com/syncback/
Another good freebie is Karens replicator. I havent used it much, but I think itll give you more control, but wont FTP.
http://www.karenware.com/powertools/ptreplicator.asp
* http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=113164 |
| Sun 08 Aug | OJ bin Laden |
xcopy /s C:\*.* D:\ |
| Sun 08 Aug | www.marktaw.com | Hmm. I guess you could do everything with the task manager & command prompt.
But then why would anyone bother to write programs like these? |
| Sun 08 Aug | Stephen Jones | Second Copy from http://www.centered.com does pretty well everything. It's the one IBM use internally. |
| Sun 08 Aug | www.marktaw.com | Yeah, I've seen Second Copy recommended here a lot. I didn't know it did the FTP thing though. If it does, they don't exactly shout it from the rooftops. I even peeked at the tour and didn't see anything about it in there.
In any case, this one is free. :) |
| Sun 08 Aug | Fred | I'm using SC 2000 release 6.2, and it only supports NetBIOS. No trace of FTP. |
| Sun 08 Aug | CGI-bin Laden | 'I guess you could do everything with the task manager & command prompt.'
works for me.
First I use Ghost to make an image of my hard drive -- in the event of a disk failure or other major catastrophe. Then I just run a batch file daily that copies all new/modified files to another drive.
I just re-formatted my hard drive this weekend and restoring everything back to normal was as simple as
Load Ghost image
copy D:\*.* C:\ |
| Sun 08 Aug | Christopher Wells | > Then I just run a batch file daily that copies all new/modified files to another drive.
Does it copy the registry too? Does the batch file run while the OS is running, or do you run it off a floppy or something? |
| Sun 08 Aug | Guillermo | I run every night Karen's replicator to another drive, and the most important folders twice to network drive.
Also each few weeks I run a .bat containing call the the wzzip / wzcline winzip add-on, that creates complete tree of selected folders to a zip file with the files changed last 60 days, and saving this in a little 512MB usb-disk.
Now I've a new PC with two 200 GB disks using Raid-1 Serial ATA, in the hope an disk error will only took a minute to resolve... |
|
| Recommended setup for a Webcast? | Sat 07 Aug | anon |
| This is for a one-time live audio webcast.
This is what I have in my mind. The audio will be received through a computer connected to the Internet through a slower connection. The audio will be transmitted to Windows Media Server running on Windows Server 2003 over the slower Internat connection. From there the audio will be broadcasted over a faster Internet connection. This should make sure that 50-500 users should be able to listen to that webcast.
Any recommendation on how to get the audio from the PC to the Server? Or is there any other proposed solution? Remember, the audio input PC will have a slow Internet conneciton. Also, the budget is kind of limited since it would be a one-time event. |
| Sat 07 Aug | Philo | http://www.livemeeting.com/
Uses telephone teleconferencing for audio.
Philo |
| Sun 08 Aug | www.marktaw.com | Doesn't ShoutCast (made by the WinAmp folks) do this kind of thing? I think it broadcasts anything that WinAmp sees.
I have some friends who set up an audio show using freely available software. I can ask them to drop by this thread. |
| Sun 08 Aug | anon | Thanks MarkTAW.com. |
| Sun 08 Aug | anon | Philo, I want the "audience" to have a commonly used piece of software such as Windows Media Player. It's not a one-to-one meeting. |
| Sun 08 Aug | anon | I think Windows Media Encoder should work. |
|
| WinAmp = memory HOG. Any lightweight mp3 players? | Sat 07 Aug | Anon for today |
| AFAIC, WinAmp is a god damn virus. It pins my CPU.
Id like a simple stripped down mp3 player.
No bells/whistles. Just something w/ minimal footprint, and a play button. Any suggestions ? |
| Sat 07 Aug | OJ bin Laden | huh?
I pulled up Windows Task Manager while I was listening to some MP3s and WinAmp's CPU usage never went over 2 percent. |
| Sat 07 Aug | jdm | If you're reaally serious about a *lightweight* app, download wav.zip from:
http://www.cmdtools.com/ |
| Sat 07 Aug | jdm | The CMD promp is the play button. |
| Sat 07 Aug | Eric Debois | Winamp hogs about 16 megs on my system and less than 1% CPU. You can reduce the memory footprint by messing with the buffer allocations (options/prefrences/output/buffers).
By the way, make sure you dont have a version 3.xx because they are widely known to suck. |
| Sat 07 Aug | hoser | Windows media player is part of the OS. Be definition, that is lightweight. |
| Sat 07 Aug | PaulT | I noticed the same problem then I reinstalled with ONLY the classic skin, not the new skin and it makes a huge difference. |
| Sat 07 Aug | Alex | An unrelated problem: when the resolution is changed, Winamp's various panes become scattered (initially being docked to each other). |
| Sat 07 Aug | www.marktaw.com | Have you taken a look at FireFox? 15 megs just to load it, and then every time you load a page this number goes UP... Without ever really coming down.
Thunderbird is about the same at 39 megs for me right now.
IE is at 17 megs for me just for loading JoS and browsing a couple of threads.
Tell me, how much memory do you have that you're concerned with Winamp? (27 megs when I load it). |
| Sat 07 Aug | OJ bin Laden | 'Have you taken a look at FireFox? 15 megs just to load it, and then every time you load a page this number goes UP... Without ever really coming down.
Thunderbird is about the same at 39 megs for me right now.'
That's why I went back to Mozilla. |
| Sat 07 Aug | www.marktaw.com | The thing is, IE's also 15 megs when you launch it. Heck so is Windows Explorer.
Right now, of the 4 programs, Winamp is taking up the least memory at 13,848K. |
| Sat 07 Aug | www.marktaw.com | Oh, and 00 or 01 CPU Usage. |
| Sat 07 Aug | www.marktaw.com | Oh, and check out the Audioactive Player
http://www.audioactive.com/download/default.htm
And I'd look to make sure you didn't have visualization on in WinAmp, and really didn't have a virus or unwanted plugin. |
| Sat 07 Aug | Fred | To the OP: Get WinAmp 2.95 from here:
http://www.oldversion.com/program.php?n=winamp |
| Sat 07 Aug | www.marktaw.com | Weren't there favorite versions within the 2.x line? I believe features would be added and subsequently removed from later versions for no good reason... At the whim of the developer, I guess. I forget what consensus said was the best 2.x version. |
| Sat 07 Aug | eclectic_echidna | !foobar!
as in www.foobar2000.org
Take out plugins you don't want.
--
ee |
| Sat 07 Aug | SEECZAR | Re: IE
IE also has a 10mb memory usage in explorer.exe, seperated from IEXPORER.EXE.
Not really fair to compare the two when IE is built into the OS. |
| Sat 07 Aug | nakedCode | You could just get more memory and a decent CPU, I suspect winamp will not be the only resource hog you have if it is something that is worrying you |
| Sun 08 Aug | www.marktaw.com | 'If you're reaally serious about a *lightweight* app, download wav.zip'
Wow. That's scary. It matches every one of his requirements, yet is probbably nowhere near what he's looking for.
Can you write a batch file to simulate a playlist?
As a 15k download, I don't think he can complain about the memory footprint. |
| Sun 08 Aug | Thom Lawrence | I've got 2.91 Lite on this, my girlfriend's computer. I think that by 2.95, they'd begun to integrate the 3.0 bells and whistles. |
| Sun 08 Aug | Anon for today | When I turned off the stupid animated sound "graphs", the CPU usage plummeted. How retarded. |
| Sun 08 Aug | www.marktaw.com | You mean the little thing in the main window, or the visualizations? Because I always have the spectrum analyzer on, and CPU usage is still around 00 or 01.
The visualization, on the other hand, I fully expect to take up a lot of CPU time. |
| Sun 08 Aug | CGI-bin Laden | 'I've got 2.91 Lite on this, my girlfriend's computer. I think that by 2.95, they'd begun to integrate the 3.0 bells and whistles.'
I've seen a lot of people complain about WinAmp 3 but I used it for quite a while and thought it was fine.
I just used the default skin and turned off as many 'bells and whistles' as I could. |
| Sun 08 Aug | Martin | winamp 5.02, classic skin: ~3-4MB mem, virtually no CPU usage |
|
| Contract/part time Programmer | Sat 07 Aug | Populate |
| Hi,
I would like to know ur great and transparent view of contract/part time programming/job.
As a IT worker, and above 5 yrs of exp, I came to know many peoples in all over the world. Now, I changes companies, and go on as a carrer movement. Many of the companies CEO/ technical stuff, and many others request me to work for their work/job in part time or my lessire time.
I know they get good out put from me(at leats the software run more than 4 yrs without any troble), so definately they will interested for my serviced.
But my question is, by doing so in weekend or my lesire time, am I do soemthing wrong for my current employer?
Did I spoil some of my present employer valuable time (as for the case, I can not stop thinking on analysis for this part time job, when I work in my office).
What do you think al. Pls let me know.
Thansk!
Populate
(hlaha@yahoo.com) |
| Sat 07 Aug | stan | Please repost using standard english. |
| Sat 07 Aug | Bella | > Did I spoil some of my present employer valuable time (as for the case, I can not stop thinking on analysis for this part time job, when I work in my office).
You answered your own question. Yes, your outside activities are distracting you. However, your problem is not your side work, it's your lack of ability to focus., |
| Sat 07 Aug | Clay Dowling | The biggest thing holding you up is without a doubt your command (or lack thereof) of the language. You can improve both your freelancing and day job by learning English. The typical North American employer will not want to hire somebody for full time work who speaks or writes in a way that makes them look uneducated. |
| Sat 07 Aug | Anon-y-mous Cow-ard | Git, Troll! |
| Sun 08 Aug | Populate | I appreciate all your comments. Thanks for ur thinking on this area.
Yes, I asked myself, and I get anwer from myself quite different. I think, if I did some more extra work, I can grow up more confidence. In this way, I can prove myself wheather I am correct in my plan, way, idea etc.
I did it, and enjoy it.
And my dear friends, for good communication in US english, I do not think is mandatory. Which really reqrd is, to prove urself skill, present your power, motivation, plan and programming skill sets to the rest of the world.
You have to take the chalanges. Thats the thing you have, others feel it, and love you, obey you.
Pls continue every one to post on this topic
Thanks All.
Populate |
| Sun 08 Aug | sid6581 | If you can't bother to learn proper English, you come across as being sloppy. Sloppiness and programming don't go well together.
I'm not a native English speaker/writer either, but that doesn't give me an excuse to write however I want.
You can't even be bothered to spell out 'your', for crying out loud. Why should an employer trust you not to take similar ridiculous shortcuts in your code? |
| Sun 08 Aug | Stephen Jones | Dear Populate,
I hope you come from a country where there is a large population that speaks your native language, because your knowledge of English, and worst still your attitude, will ensure that no company from the English speaking world, and most from India, will offer you work. |
| Sun 08 Aug | Bored Bystander | It comes off like a troll: supposedly an idiot savant type with almost-illiterate written English skills who blithely states that he finds lots of lucrative work directly with C level executives and acts like it's all a fun game.
To anyone listening with any degree of professionalism who has been kicked in the teeth by this market and who takes their professional image seriously, a post like this is like chalk on a blackboard. Even if it's bullshit. |
| Sun 08 Aug | sid6581 | It doesn't seem to be a joke, if you search for hlaha@yahoo.com on Google you'll find him looking for freelance work. And his English is just as atrocious as here. |
| Sun 08 Aug | Christopher Wells | > But my question is, by doing so in weekend or my lesire time, am I do soemthing wrong for my current employer?
That depends on your employment contract. Sometimes you sign (agree to) a contract which says that you agree work for this one employer only, full-time ... and sometimes, for example if you're a part-time or contract worker, you don't sign such an agreement.
If you don't know, you could ask your current employer. |
|
| Getting Things Done vs. Hanging Files | Sat 07 Aug | Disorganized |
| After years of disorganization, Im planning to start the Getting Things Done method as detailed in David Allens book, which a lot of people here have recommended. I plan to throw myself into this and follow the system completely, at least initially, because I really want to clean up my disorganized life and stop things from falling through the cracks as they do all so often.
I have been reading the book in preparation for this, and it sounds like a solid system. However, one thing really confuses me: What is the deal with his animosity toward hanging files? I honestly do not understand it and am curious as to what Im missing.
David Allen: At the risk of seriously offending a lot of people who are already using hanging files, I recommend that you totally do away with the hanging-file hardware and use just plain folders standing up by themselves in a file drawer, held up by the movable metal plate in the back. Hanging folders are much less efficient because of the effort it takes to make a new file ad hoc and the formality that imposes on the filing system.
So here Im already confused. How do hanging files take more effort to make? He then quotes email he received from someone who made the switch after years of putting it off, but other than saying, WOW! Its so much easier, they dont really explain.
David Allen then continues by offering some tips for those saddled with them since at work...side-opening hanging-file cabinets have become standard corporate issue. This just puzzles me further, since arent the plain manila folders he advocates also side-opening? Or is he saying the cabinets are side-opening, and thats what he doesnt like? If the latter, wouldnt just avoiding that cabinet style be enough?
Continuing, he suggests people label the files, not the hangers. OK, now Im even more lost. In my hanging-file system, I have hanging files with labels on them. I dont get the distinction between files and hangers, as theyre the same thing. Are some people stuffing manila folders into the hanging files or something? His next tip is, Use only one file folder per hanger, so maybe.
His final tip is to keep a big supply of plain hangers and new file folders in the front of the first file drawer so you can make new files and store them in a flash. So, again, we have this concept of separate files and hangers.
Im honestly not trying to be difficult here. Its just unlike virtually everything else in the book I do not understand what the benefit is.
So lets compare. Heres how I (and pretty much everyone I know) works with hanging files: For each topic, you get a hanging file, label it, put the stuff in it, then put it in the hanging file cabinet. Thats it. I prefer it to plain manila folders because to use those file cabinets you have to mess around with the sliding metal backstop all the time. Either its too tight, or you have too much slack and your files are slumping, etc. Its a pain. Hanging files, by contrast, hang, so they are always nice and upright and you dont need a backstop at all -- just hang your file, and youre set.
The ONLY disadvantage I can see is if youre carrying them around the metal hangers sticking out at the sides can be slightly annoying. But that really isnt a big deal to me, and David Allen doesnt even mention that. From his point of view, he loves using the automatic labeler, so I could see that maybe he wouldnt like the slide-in labels most hanging files have, but he doesnt give that as a reason either. Instead, he makes vague statements about their inefficiency.
So what am I missing?
(Sorry to write such a long post about such a simple topic, but Im just hoping someone can tell me what Im missing...) |
| Sat 07 Aug | Just as disorganized | Wasting time worrying about things like that will keep you disorganized. All you need to do is "fill the unforgiving minute with 60 seconds worth of distance run" - which probably precludes wasting time on these discussion forums. |
| Sat 07 Aug | Kyralessa | The point is to make the filing system quick and easy, or you'll never do it. If you can do hanging files and it's still convenient enough that you file something right away as you go through your inbox, no problem. But as soon as you start stacking things in a 'to be filed' pile, you're no longer doing the GTD system.
The point of manila folders is that they're very easy, have no small loose pieces (unlike hanging folders with their plastic tabs and tiny labels), and it's more fun to print a label than to write on those itty-bitty hanging folder labels. Hence filing is quick and easy and you're much more likely to file something right away. The filing system is supposed to be something you don't have to think about or analyze very much. |
| Sat 07 Aug | Disorganized | Just as disorganized,
I certainly wouldn't claim that worrying about this was a productive use of time. But I was just curious about this because David Allen seems to think it's important and yet from the book I couldn't really see why.
In addition to reading the book, I looked at some sites and forums about GTD. I came across numerous references to people trashing all their hanging file folders, cabinets and all, and saying what a difference it made. So when I got to that point in the book, I was eager to find out the big secret that made non-hanging folders so much more productive. Instead I came away thinking, 'Huh?'
Kyralessa,
I understand the point of making things quick and easy (and fun). I just didn't see how non-hanging files accomplished any of that. For me, hanging files are a lot easier to work with since they just hang nicely instead of requiring you to fuss with a backstop to find a compromise between 'too tight' and 'too saggy'.
'The point of manila folders is that they're very easy, have no small loose pieces (unlike hanging folders with their plastic tabs and tiny labels), and it's more fun to print a label than to write on those itty-bitty hanging folder labels.'
OK, I can buy that, I guess. But David Allen never SAYS that. Instead he talks as those hanging files are a dual system where you need hangers and files. I was skimming through the list of supplies he recommends and came across another reference to this there: 'You'll need plenty of fild folders...You may also need an equal number of Pendaflex-style file-folder hangers, if your file system requires them.'
So my best guess is that we live in completely different universes -- in his, people using hanging file systems by putting manila files into the hanging files (what he calls 'hangers'), and in mine they just use the hanging file by itself. Honestly, I have NEVER seen anyone do what he suggests is the norm, with the exception of when they had existing manila folders and kind just lazily dumped them into a hanging folder rather than pull out the contents.
'The filing system is supposed to be something you don't have to think about or analyze very much.'
I agree. And I don't plan to analyze it this much on a continuous basis! I was just a little puzzled when after reading how getting rid of hanging files has changed people's live when I got to the explanation of why they were so horrible I didn't understand what the problem was.
At this point I'm going to continue with my hanging file system, since I find it quicker and easier than backstop-based file cabinets.
Unless, of course, some David Allen guru pops in to show me what I've missed and convinces me that hanging files really ARE one of the most evil inventions of all time. ;-) |
| Sat 07 Aug | Philo | Disorganized - I'm with you. I use hanging files, but my lack of organization has nothing to do with that; it's just a cross between ADD ('ooh, shiny') and laziness.
I *have* seen people put manila folders inside hanging folders - generally in highly-structured offices, like legal or accounting offices where the hanger will be a client or a year and the manila folders will be subdivisions (client income, client expenses or months)
Honestly, when I see that kind of absolutism about a tool, esp. without justification, I recognize it's a kind of 'Here is my single belief and why I am so successful' - it's like the 'leave your desk clean at the end of the day' or 'Keep three calendars on the wall' thing. That tool served them well, but it's not a panacea. It's a good tool, and useful, but it doesn't solve the problem.
Fine bookcases can still be built with hand tools - it's not impossible if you don't have a Makita plunge router.
Philo |
| Sat 07 Aug | RedFox | II 've come to realize that you don't *need* that many folders when you work on projects.
What I do:
* one folder per project where I put everything without too much sorting
as the project grows, it may have its own binder. When the project is over, it stays in the shelf for 6 months. After that it's eiter archived or moved to the maintenance shelf.
BTW I dumped about 100 Kgs of useless binders and papers I accumulated over the years 'just in case'.
Work by 'projects', it's much easier to sort things by projets than by vague categories... |
| Sat 07 Aug | JWA | 'side-opening hanging-file cabinets'
In that snippet he's referring to side-opening *cabinets*, not side-opening hanging files. In file cabinets like this: http://www.business-supply.com/product_images/image/EB033400.gif you can't easily use manila folders only, because there is no back stop. The rest of that section is then him recommending better ways of using that style of cabinet by using hanging file folders to basically support the manila folders.
I've taken a number of tips from his system and have been very happy with them. In my case I do use manila folders with a labeller, but my filing cabinets don't have backstops so I put them into hanging files for storage. I do put multiple folders in a given hanging file, but only as a means of supporting them, the resulting divsions/grouping mean nothing.
Another tip that I read on their website and really like is to start roughing out a project by grabbing a manila folder, opening it up and doing your 'mind map' or whatever right on the inside of it. For example, the other day I got an idea about a new product. I grabbed a manila folder, a pen, and some blank paper. Sat down on the couch and brainstormed the product on the manila folder, then went on to do the object diagrams, db layouts, and UI sketches on the blank paper. I put the sheets into the folder, labeled it, and now have a fully planned out product and all of my thoughts on it nicely captured. All in around an hour, and it's out of my head in a system that I can trust.
In case you haven't seen it, there is a fairly active 'posting board' on their site where these kinds of questions are regularly discussed: http://www.davidco.com/forum/
--Josh |
| Sat 07 Aug | JWA | http://www.business-supply.com/product_images/image/EB033400.gif
(damned-trailing-space-issue-on-this-board :) ) |
| Sat 07 Aug | Philo | Josh - nice plan on starting a project. I remember my worst 'Smart but doesn't get things done' days where, when I have an idea for a new project I blow eight hours trying to decide on the software to use to plan it...
Just like writing - sit down and start.
Philo |
| Sat 07 Aug | ronk! | I think he likes the manilla folders better is because it is much quicker to create new ones. Just scribble on the tab and you're done. Most hanging folders have those goofy clear tabs. Using one is combersome, the plastic cover adds no real value and can become separated, especially if you lift out the folder and take it with you. But you won't want to anyway; they are are unwieldy, having metals tabs that stick out and might scratch the coffee table or you if your not careful.
I can understand why he doesn't like them, some people might like creating those types of folders. I think my wife is one of those people, its like a ritual almost. For her being organized in not an issue, she loves it. This is not the intended audience here. Its people like me, who don't like to spend anytime organizing, that can benefit from this type of advice. If filing something means assembling the clears tabs and tiny paper strip onto the hanging folder after having hunted down all the parts out of my carefully organized storage, then in my case its probably not going to get done.
His pragmatic advice avoids that by making it super quick and gets almost all the same long term benefit as the slower, more cumbersome method. |
| Sat 07 Aug | JWA | 'I remember my worst 'Smart but doesn't get things done' days where, when I have an idea for a new project I blow eight hours trying to decide on the software to use to plan it...'
Man, I can relate. What gets even worse is when you blow another day or two deciding that no good program exists, so you'll need to write one. Recursive productivity paralysis is NEVER a good thing :).
--Josh |
| Sat 07 Aug | www.marktaw.com | His issue with hanging file folders stems mainly from the fact that when you use them in conjunction with manila file folders you end up with 3 manila file folders in 1 hanging file folder, and 3 manila file folders will have nothing to do with each other.
Yellow 'Pendaflex' Hanging File Folder
- Anderson Account
- Apex Account
- Arthurson Account
Green 'Pendaflex' Hanging File Folder
- Beatrice's Deli Menu
- Beaumon Account
- Brainy.com Logos
etc.
I believe he says that if you're going to use hanging file folders, be sure to use one of them per item/manila file folder, and not stuff a group into each hanging file folder. |
| Sat 07 Aug | Kyralessa | Another point to consider, whichever type of folders you use, is having them easily accessible. I kept my hanging folders in a couple of plastic file chests which stack. But as a result, I'm disinclined to unstack them to retrieve or file something...which results in the 'to be filed' pile.
When I started GTD, I got a couple of small cardboard box-things that hold a few dozen files apiece, and I keep them within reach of my desk chair. It may not be a better system than hanging files, but it's better for me, for two reasons: (1) Since it's quick and easy, I do the filing as it comes. (2) Since its goal is to be functional rather than perfect, I'm less inclined to tweak it to be perfect.
I'm a perfectionist and have a tendency to make huge projects out of perfecting things. Since this filing system is imposed from outside, as it were, and since it's not my preferred method in the first place, I'm less inclined to spend days trying to 'fix' it; instead I just use it. |
| Sat 07 Aug | www.marktaw.com | Oh, and I guess 'Hanging folders are much less efficient because of the effort it takes to make a new file ad hoc and the formality it imposes on the filing system.' I guess the whole 'little white tab / plastic label' thing bothers him too.
I was never a fan of hanging file folders in the first place, so when he advocated getting rid of them, I had no problem with it. My girlfriend still uses them though. |
| Sat 07 Aug | male secretary | Check out http://www.mnftiu.cc/mnftiu.cc/filing.html for some good filing tips. |
| Sat 07 Aug | www.marktaw.com | I believe this is the link you wanted to point us to:
http://www.mnftiu.cc/mnftiu.cc/filing.001.html |
| Sun 08 Aug | Stephen Jones | What else, apart from signed contracts, would you want to use paper for anyway?
Paper is superior to the computer in many ways, but information storage and retrieval is not one of them. |
| Sun 08 Aug | www.marktaw.com | I think paper's ineffeciency is it's big selling point.
Why do I think this? Well, think of the amount of, say, heat or water it takes to destroy a filing cabinet, vs. the amount it takes to destroy a hard drive. |
| Sun 08 Aug | Stephen Jones | Put a match to your paper files and a match to your portable HD and see which goes up in flames first. |
| Sun 08 Aug | www.marktaw.com | I would fully expect the hard drive to fail before the equivelant amount of information on paper. Ever try to burn a book? It's extremely difficult because air doesn't get in between the papers.
War and Peace is 3.13 MB (according to Project Gutenberg). Try burning 250,000 copies of War and Peace - in a metal filing cabinet - and then tell me again how easy it is. |
| Sun 08 Aug | www.marktaw.com | Besides, Stephen, you're overlooking the obvious arguments.
Digital storage is becoming cheaper - the reams of paper and ink required to fill 80 gigs of information probably cost much more than an 80 gig hard drive, or the equivelant amount of optical storage.
Digital storage is more environmentally friendly.
Digital storage is easier to archive, duplicate, and transport.
As you mentioned, digital storage is easier to search through.
Digital storage is easier to manipulate/edit.
You really should be concentrating on futhering your argument and not trying to refute mine. |
| Sun 08 Aug | www.marktaw.com | Oh, and it takes up far less space too. |
| Sun 08 Aug | Simon Lucy | Getting things done is nothing to do with hanging files, manila folders, desk drawers or the static properties of your carpet.
Everything I have is on my desk I don't waste time sticking it somewhere else to forget where it is, therefore I must be getting things done, I might not be able to tell anyone what bit of paper they sent me and doing the accounts is always a pain in the arse but hey, I'm getting things done. |
| Sun 08 Aug | www.ChristopherHawkins.com | I used to use hanging files with manila subfolders within. It worked out pretty well for a while.
In the last couple of years, I've taken to creating what I call 'project books' - a three-ring binder with a bunch of section dividers within. Each client project gets a project book. Whenever I have a printed document relating to a given project, I slap it in the 3-hole punch and file it within the appropriate divider in the appropriate notebook.
It's nice and portable with no fear of anything falling out if I should have to cart the notebook with me to a client meeting. |
| Sun 08 Aug | tim | I have a stack of manila folders on the corner of my desk, one for each project that I've worked on. I never print out anything explicity for the folder, but it serves as a collection for all hardcopies I generate during a specific project.
For example, one folder here has a few header file (C++) printouts I made, with my hand-written comments on the side. It also has a few pages with an STL tutorial that was particularly useful at the time. The sort of stuff that just doesn't store well electronically.
If someone has a question about a previous project of mine, often I'll browse quickly through the relevent folder, and it helps to get my mind back into that space. |
|
| JOS Homepage Dates | Sat 07 Aug | Shonty |
| Whats up with the JOS homepage article dates?
venerdì 6 agosto 2004
mercoledì 4 agosto 2004
martedì 3 agosto 2004
domenica 25 luglio 2004
....
Weird eh! |
| Sat 07 Aug | Matthew Lock | Pesky Italian Hackers! |
| Sat 07 Aug | Joe | It's a bug (feature?) in CityDesk, formats all the dates with the locale of the PC being used to edit the page. |
| Sat 07 Aug | Stephen Jones | It's because he's going to Italy on holiday, and in response to this thread
http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=172126&ixReplies=17 |
| Sun 08 Aug | Simon Lucy | Its a feature that requires you to read the page, and then understand it and at the same time have a sense of humour.
It looks you failed at least one out of three of these. |
|
| Do I need a help file | Fri 06 Aug | Aussie Chick |
| RefMate is finished.
Well, I am still finishing the website, and the documentation. However the coding side is done.
How much documentation do I need?
Do I need to create a help file? My program is very small, I have done my best to make it fool proof, however I have heard rumours about bigger fools....
I dont want to create a help menu that doesnt help.
I am afraid if I start writing a help file it will be full of unhelpful points just to make the help file look reasonable, to make the contents look full etc. When really what I think would be most helpful would be a link to an FAQ on the website.
My reasoning is this:
- So far I havent had feedback that suggests anybody has had any problems at all with the program. I had a wide range of students look at it, they found bugs, but didnt ask any help questions. Well maybe one.
- I dont want to write an entire help file full of filler stuff just so that the answer to this one problem doesnt look lonely.
- I am sure there will be more issues, an FAQ page is more dynamic
Does anyone have any thoughts on this? |
| Fri 06 Aug | www.marktaw.com | Sounds good to me. I have programs that link to the website for documentation. There's no reason that the documentation can't start as a FAQ.
Question: Do you expect everyone who uses your software to have an internet connection? |
| Fri 06 Aug | www.marktaw.com | And
C O N G R A D U L A T I O N S ! ! !
on finishing RefMate. |
| Fri 06 Aug | Aussie Chick | I don't know if I expect them to have an internet connection.
I think that most people have internet connections today. (let me clarify I think most university students in Australia have access to an Internet connection).
I don't expect that the user be connected to use the program, however I don't think that it is too much to ask that they go to a website for the FAQs. I could help by ensuring that the formatting of the FAQs was printable/downloadable. ie include an uptodate downloadable *.doc file. |
| Fri 06 Aug | Aussie Chick | THANKS!!!!!!!!!!! |
| Fri 06 Aug | www.marktaw.com | I think a FAQ combined with a support forum would be ideal. It would be a great way to get feedback on the product.
Did you/will you do a beta test period? Question may come up during this that you can add to your FAQ. |
| Fri 06 Aug | Aussie Chick | Yes I did some beta testing a few months back.
This ironed out some bugs, and probably bought in one or two real 'questions' that could be used in the FAQ.
Yes, I would like to implement a support forum too.
I do have a forum already (which I used for the beta testers), however it requires registration and all sorts of fun stuff.
A forum like this one would make an excellent support forum. |
| Fri 06 Aug | www.marktaw.com | Yes, it certainly helps that you can ask a question easily, and without registering.
I assume you're on a bit of a deadline, it being August already. Just set up a support forum, and link to it from the Help menu.
I don't know how simple/complex your software is, but it should have *some* sort of instructions. Why not combine a tour & instructions? It's a selling tool when it's on your website, and it's a 'how to get started' when it's bundled with the product. |
| Fri 06 Aug | Aussie Chick | Yukko, can you tell I don't like writing documentation?
Yes a tour of some sort would be good for both the reasons you described. I hadn't htought of it, but now I find it hard to refute.
The software is pretty basic. Only one form. |
| Sat 07 Aug | www.marktaw.com | Oh yes, I remember looking at your software a few months back. Just do a couple of screen caps and put a description for each of the items in the screen cap, and do a high level overview of the concept, and then link to the forum.
Starting with the screen cap should give you something to start with. It shouldn't take more than 15 minutes, but if you get into it, you can spend as much time as you want. |
| Sat 07 Aug | John Howard | I think in another time and another place AussieChick and MarkTAW can be a good husband and wife. |
| Sat 07 Aug | www.marktaw.com | Where are we eating dinner? |
| Sat 07 Aug | www.marktaw.com | * (In another thread AussieChick said that all Americans she knows only care about where they're gonna eat dinner.) |
| Sat 07 Aug | George Bush | no vegemite please |
| Sat 07 Aug | Aussie Chick | I was going to do curried sausages and mashed potato. |
| Sat 07 Aug | www.marktaw.com | Sounds good to me. Just as long as it's NOT at the Hard Rock Cafe, I'm cool with it. |
| Sat 07 Aug | Seeker | One suggestion, you may want to bundle a version of your FAQ, or Tour or whatnot with the product so no internet connection is required. Then, you could also have a link in the product to 'Visit Current Documentation' on your website.
Also, I think the best way to document is through usage examples, rather than just an index with random information. For instance, come up with a list of features, and then show examples of each. This would be both a tour and help doc as Marktaw stated.
Good Luck. |
| Sat 07 Aug | www.marktaw.com | Yeah... That's what I meant. Bundle it with the product & then provide a link to the forum. Sorry if I wasn't clear. :-) |
| Sun 08 Aug | trollop | The thread seems to be converging - could I ask how about a Help button to bring up the annotated screencaps, lead on to docco (FAQ and examples), show links to online support/forum *and* display your copyright notice?
Could be done using what you've used so far, in html or, if you're into some pain, MS Help Workshop or somesuch.
(Aside -when I moved my product documentation into help I found many poor design choices most of which were fixed by changing the interface to what could be explained in help. So next time, help will evolve alongside the code).
Your utility looks the bee's knees and deserves to prosper. (I have 3 students right here who should be interested.)
However you sell or distribute, it's pretty essential to have your contact details and copyright notice right there *in* the code so as it's passed around folks will know it's you and how to pay. Have you researched the selling process? Could be one of the better thread sequences ...
Please let us all know when it's available. |
| Sun 08 Aug | Harvey Motulsky | A few comments.
A good help system should not just give help on using the program, but also about the general domain of the program. So in your case, ideally the help system would teach students about bibliographies in general. Where to find guidelines for styles. Where to search. What to do when you want to cite a web site or conversation rather than a journal article... My software does statistics, and I'd say 90% of the help and manuals is about stats, not the program itself. (This is probably a version 2 thing for you.)
As you think about your help, think about two kinds of people. One kind (those on this board) want to be told what a program does, what its limiations are, how its data are structured. Once they 'get it', they'll figure out which keys to press. The other kind wants to follow examples -- to be told exactly what to do with screen shots to reassure that they are doing it right. From detailed examples, they generalize to doing other things with the program.
The Windows Help system is an ok solution for failry complex help needs (but far from perfect). Maybe you can get by with buttons on your dialog that say 'help' or 'Explain' or 'More info' that popup a second dialog with a paragraph of explanation.
Don't focus only on help using a particular dialog. Also help people figure out the scope of your program. Help the person who is trying to save their bibliography to a database, or is trying to make a database of videos, or trying to import their bibiolography already formatted as an excel table...
Good luck! |
| Sun 08 Aug | Mr.Analogy | We have a very limited help file in our 20 programs.
One has a big heading at the start that says :
'thanks for reading this. Please let us you know you read it and we'll enter you in a prize contest'.
NO ONE has EVER mentioned the above. I don't think anyone reads the help. Programs are designed so that reading a manual/help isn't necessary.
We do have a toll free tech support line to guarantee that they truly don't need help. VERY few people ever call that. |
|
| longhorn commercial name ? | Fri 06 Aug | j. Goldstein |
| What it will be?
Im not sure MS can came up with the cooler name than XP. |
| Fri 06 Aug | americain | Windows LK
Linux Killer
or just plain LucK |
| Fri 06 Aug | Andrew Gibbs | WindowsMD, or WMD for short
'Weapons for Microsoft Domination'
People will remember it well, because of the Weapons of Mass Destruction fiascos. |
| Fri 06 Aug | Dennis Forbes | Windows 2011 |
| Fri 06 Aug | Li-fan Chen | >2011
*lol*
Actually I hope so. I really don't see the urgency to push out another major architectual overhaul so soon. Remember how happy the the System 9 folks were before 10 came around? Okay maybe Joe IT MCSE can't wait that long, but really, they should stuff as much pork into that shumai before steaming it. |
| Fri 06 Aug | Rao | Windows FD "Forever Delayed" |
| Fri 06 Aug | Li-fan Chen | >Remember how happy the the System 9 folks were before 10 came around?
Oh my, the stuff coming out of my ass. I HATE System 9. |
| Fri 06 Aug | Li-fan Chen | > I HATE System 9.
Okay that's a little strong. But who loves all the crashes since System 6? Do I see any hands? |
| Fri 06 Aug | www.marktaw.com | http://www.bordergatewayprotocol.net/jon/humor/video/switched.mov |
| Sat 07 Aug | hoser | 2011, the year we make contact. No need for Wndows then. Aliens run Unix. |
| Sat 07 Aug | Des Eggie | WinFF
Windows For Free |
| Sat 07 Aug | Li Fan "Jacky" Chen | WindowsTS (Windows Tightly Secure) |
| Sat 07 Aug | www.marktaw.com | 'Windows: Even your grandmother knows how to use a computer because she was born in 1983' aka Windows 2074.
Windows FUD.
WSX aka 'Mac is still one step ahead of us'
'I left the Windows open and Spyware stole all my passwords'
'Windex: We're every bit as stable as Linux.' |
| Sat 07 Aug | no name | Microsoft Windows Longhorn Great Experience Enterprise Datacenter Edition 2008 |
| Sat 07 Aug | trollop | Win05 - back to the Future Edition
Win69 - back to the Pasture Edition
WinK - Windows Korean Edition
WinLoSe - Linux obligatory, Suse Edition
WinPoker - Win, Lose or Draw Edition
WinDraw - Autodesk buys Microsoft Edition
WinGEWin - GE buys Microsoft Edition
WinGE - Microsoft buys GE Edition
WinRx - geriatric, where's my pills edition
WinWa - George x of America edition (x =1,2 and 3)
WinOIL - probable future edition
Winhearts - just possible edition (Sudan only)
Winminds - stuck in committee edition
- with respect, does it matter at all what blip is used to efer to the no doubt fun-enhancing opsys the Redmond wizards next proffer? If your A/G or ours stay in place can you ever expect to call what you see go past Ever? |
| Sat 07 Aug | Iago | At this rate, probably just "Windows Forever". |
| Sat 07 Aug | John C. | Windows FX ? |
| Sat 07 Aug | Bored Bystander | Windows Extreme. |
| Sun 08 Aug | Des Eggie | Bored: Windows Extreme.
The next version after that: Windows SuperExtreme
aka
WinSEX |
|
| Good forms design ref? | Fri 06 Aug | Albert D. Kallal |
| Does anyone have a good forms design references?
I have a good many links that talk about good UI, but none that talk about layout some guide lines.
(you can have a good ui, but still have a crappy layout!!!).
I looking for the stuff like:
First Name: ___________
Last Name: ___________
Address: ___________
City: ___________
Or
First Name:___________
Last Name:___________
Address:___________
City:___________
I.e.: should you left justify the labels, or right justify. Does anyone has a good link ref to guild lines for the stuff like above?
Albert D. Kallal
Edmonton, Alberta Canada
kallal@msn.com
http://www.attcanada.net/~kallal.msn |
| Fri 06 Aug | no name | I would say as long as you are consistent throughout your whole UI there should be no problem. Unless of course your users complain about it. |
| Fri 06 Aug | Herbert Sitz | Albert -- I'm surprised, I would have thought you'd have been all over this years ago.
Since Microsoft Office has the most widely used applications, I think it's easiest to just treat them as the standard and sort of learn by looking at how their user interfaces are designed.
But MS publishes rules for creating apps that give users the proper 'Windows user experience'.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwue/html/ch14d.asp
It's useful stuff, but the level of detail gets a little too tedious for my taste. I think you can learn faster and better just by getting a good feel for how things are done in the MS Office apps.
The blurb on alignment relevant to question in your post is not one of the more detailed, but you get from it that the standard alignment of labels for fields is left aligned:
'Alignment
When information is positioned vertically, align fields by their left edges (in western countries). This usually makes it easier for the user to scan the information. Text labels are usually left-aligned and placed above or to the left of the areas to which they apply. When placing text labels to the left of text box controls, align the top of the text with text displayed in the text box.' |
| Fri 06 Aug | www.marktaw.com | Yeah, left aligned - so that the starting point is in a predictable place each time - makes it much easer to scan. |
| Fri 06 Aug | MT Heart | Take a look at Robin Williams Design Workshop next time you're in Chapters/Borders/B&N.
http://www.amazon.com/exec/obidos/tg/detail/-/0201700883/qid=1091850287/sr=1-1/ref=sr_1_1/104-7397809-0975935?v=glance&s=books
She has a section on forms design in there - it's very good. |
| Sat 07 Aug | Mike | How about left aligned with leaders? Or something similar to carry the eye over to the field.
First Name:_____________
Last Name:_____________
Address:...._____________
City:..........._____________
State:........_____________
Zip:............_____________ |
| Sat 07 Aug | Eric Debois | Steve Krug : Dont make me think.
I dont remember if he covers forms explicitly, but his advice applies to forms to.
My own first pieces advice would be to make sure there are no ambiguities, test it for the whole range of use cases, and break it down into clear sections if its alot.
If you have a shop that takes international orders, make sure to really get a hold of an adress in africa or asia to test it with, and take a look at what ends up in the database.
Overzealous validation scripts can really piss a user off. |
| Sat 07 Aug | Albert D. Kallal | >Albert -- I'm surprised, I would have thought you'd have been all over this years ago.
Yes, so much so..that I am now lacking reasons (or perhaps memory!) as to why I do things the way I do!
Actually, I want some nice articles to give to a person who is building screens and doing some design work for me.
>But MS publishes rules for creating apps that give users the proper 'Windows user experience'.
Yes, I been through many of those MSDN articles. I kind would liked some samples that show bad screens VS some that have been cleaned up to “nice” screens. Those articles are bit too long. I don’t want to have write-up my own guidelines for my consulting work..but I just may very well have to do this!
And, there is not always a hard and fast rule.
I will say that left, or right justified labels *can* look quite fine, and someone in this thread pointed out:
>I would say as long as you are consistent throughout your whole UI there should be no problem. Unless of course your users complain about it.
The above very much rings true. I think that is the best advice.
As mentioned, I did want to have some docs to give to someone.
The other reason why I asked is I am in currently in a project where the screens I am working on were NOT done be me (this is different project then the guy doing design work For me). I can’t change these! In this project, the labels are right just, and they look ok to me (not great, but they are just fine….). It now means that I am being forced to change the way I do things!
So, this is just a question of too often dealing with different designs, be they from other clients, or people doing work for me.
This is not even a issue of arguments
I simply want to add some structure into this issue.
Albert D. Kallal
Edmonton, Alberta Canada
kallal@msn.com
http://www.attcanada.net/~kallal.msn |
| Sun 08 Aug | Clutch Cargo | Take a look at "Seeing Data". It's brand new so I haven't read it yet, but it looked somewhat interesting. |
| Sun 08 Aug | Guillermo | I prefer right justify labels. left justify labels are harder to read.
labels finished in dots are only used in character-based forms. |
|
| Looking for a time logging application | Fri 06 Aug | Fairlight |
| Ive read the article below :
http://www.dexterity.com/articles/get-more-done.htm
So now Im looking for a good software application for keeping a detailed time log :
Can anyone recommend me one ?
>> Cut
Keep a detailed time log. The first step to better managing your time is to find out how youre currently spending your time. Keeping a time log is a very effective way to do this, and after trying it for just one day, youll immediately gain a tremendous amount of insight into where your time is actually going. The very act of measuring is often enough to raise your unconscious habits into your consciousness, where you then have a chance to scrutinize them more closely.
Heres how to keep a time log. Throughout your day record the time whenever you start or stop any activity. Consider using a stopwatch to just record time intervals for each activity. You can do this during only your working time or throughout your entire day. At the end of the day, sort all the time chunks into general categories, and find out what percentage of your time is being spent on each type of activity. If you want to be thorough, do this for a week, and calculate the percentage of your total time that you spent on each type of activity. Be as detailed as possible. Note how much time you spend on email, reading newsgroups, web surfing, phone calls, eating, going to the bathroom, etc. If you get up out of your chair, it probably means you need to make an entry in your time log.
You may be surprised to realize that you are spending only a small fraction of your working time doing what youd consider to be actual work. Studies have shown that the average office worker does only 1.5 hours of actual work per day. The rest of the time is spent socializing, taking coffee breaks, eating, engaging in non-business communication, shuffling papers, and doing lots of other non-work tasks. The average full-time office worker doesnt even start doing real work until 11:00am and begins to wind down around 3:30pm.
<< Cut |
| Fri 06 Aug | www.marktaw.com | http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=171664
It's a day old, but I think the information is still relevant. |
| Fri 06 Aug | Ward | >>> It's a day old, but I think the information is still relevant.
Surely the state of the art has advanced since then...
Allnetic was a good recommendation, I'm trying out the 30-day demo. |
| Sat 07 Aug | Data Miner | How about Notepad?
What is the big deal about logging time? In the 'old days', we wrote stuff down on paper using pointy things called pens and pencils.
Maybe you should start out with crayons... |
| Sat 07 Aug | www.marktaw.com | Because you won't write it down until AFTER it happened and you won't know what time you REALLY started or stopped. Here you just click an icon in the systray and go.
See my thoughts in the linked-to thread. |
| Sat 07 Aug | John C. | Has anyone seen a source for this claim:
>>Studies have shown that the average office worker does only 1.5 hours of actual work per day.
It doesn't sound completely unreasonable, but last time I saw it I went off and Googled and couldn't find anything specific. |
| Sat 07 Aug | Rank Merida | >>Studies have shown that the average office worker does only 1.5 hours of actual work per day.
Looks like you're talking specifically about government employees. :-( |
| Sun 08 Aug | Data Miner | >>Studies have shown that the average office worker does only 1.5 hours of actual work per day.
Looks like you're talking specifically about government employees. :-(
<<
No, that would be 1.5 hours a MONTH... |
| Sun 08 Aug | www.marktaw.com | I might as well post it here since that thread has gone down beyond the bottom of my browser window.
This utility will insert the time every time you hit F2. You can use it in conjunction with a text file/spreadsheet/whatever to track your activities. You have to set it when you start it up, but it should keep the time for the rest of the day.
www.marktaw.com/temp/timestamp.zip
I still think The Allnetic WTT is better because it will remind you if you go/come back from idle to start/stop tracking your time, and it will combine all the times. I spent many a Friday afternoon juggling my numbers so it looked like I actually did a solid 8 hours of work every day, and the WTT helped me do it. Also, nobody ever notes the time of an interruption, but WTT will notice when you go idle.
Anyway... If you're still keeping track of your time in a flat text file or similar, you can use this utility to plug in the time for you. |
|
| Why are pointers used? | Fri 06 Aug | Eugene |
| I am curious as to why pointers are used and what are they good for. What benefits do they have when writing a program? |
| Fri 06 Aug | Eric Lippert | The question is way too vague to answer.
Tell you what -- you answer the question 'Why are _numbers_ used in programs and what are their benefits?' Then we'll know what you're getting at. |
| Fri 06 Aug | old_timer | Because they point to things.
I was going to write something really sarcastic here but it's just so basic I simply can't get down that low. |
| Fri 06 Aug | Mike Weller | Basically when you get down to machine instructions, you need to tell the CPU things like
'Here's a number Mr.CPU - the address of a memory location. Now be a jolly good chap and get me the number that is stored in that location'
Data doesn't just come from thin air - you need 'pointers' to 'point' to memory locations where your data is.
*very basically* |
| Fri 06 Aug | . |
Because control freaks from back in the 1980's are used to writing software when memory was not a cheap, abundant commodity and want/wanted to preserve what little they had/have by referencing data by moving around a virtual, tiny stick with a pointer on the end instead of passing the actual object around in memory, which takes up more processing time and RAM. |
| Fri 06 Aug | Dave B. | A couple benefits of pointers that I can think of:
1. They prevent data duplication - they allow one instance of the data to be manipulated by many different parts of the program without duplicating the data.
2. Resource (RAM...) Preservation - Obviously this is the benefit derived from not duplicating your data.
3. Abstract memory addresses. You need some concept to abstract the memory addresses and the instructions the underlying processor uses to deal with them. |
| Fri 06 Aug | Ha | Because new ones are very expensive. |
| Fri 06 Aug | another point | They provide a mechanism to support indirection. This is important in making a program dynamic in the sense that the memory structures are detemined at runtime. |
| Fri 06 Aug | Kalani | Yeah if you've got 50,000 records of 10 MB each, it's better to just randomly copy them around than to refer to them indirectly.
How about a complicated structure like a digraph of some objects (an FSM representing a regular expression for example)? What's a clear way of saying CurrentState = CurrentState->Transition(c) without resorting to pointer semantics? |
| Fri 06 Aug | Eugene | Wow that helps me a lot! Thanks "another point" and "Dave B". Those were good answers. It's like a light all of a sudden just went off in my head. heh. |
| Fri 06 Aug | Eugene | I'm sorry if I was too vague, I didn't know how to word the question. |
| Fri 06 Aug | no name | Is this your homework? I hope not. |
| Fri 06 Aug | Chris Tavares | Because every problem in computer science can be solved with another level of indirection. |
| Fri 06 Aug | Stephen Jones | Many people say that the use of such artefacts as pointer arithmetic is the result of deficiencies in C which require a workaround, and that is why students find them difficult to understand. |
| Fri 06 Aug | A guy | It's interesting to note that some languages that support pointers don't support dynamic memory allocation. Take RPG IV for example. It can't be used to dynamically allocate memory but you can point to data with pointers so as not to duplicate it. |
| Fri 06 Aug | *p | It's a way of filtering developers. Only 10 percent of the population are mentally capable of understanding pointers. |
| Fri 06 Aug | Code Monkey | Pointers are used for a couple of simple reasons 1) Providing indirection 2) Allowing one to pass a large parameter list to a function without needing to duplicate the whole data |
| Fri 06 Aug | Egor | Pointers also come in handy when you want to pass a parameter whose type is unknown until runtime. You can pass an untyped pointer and then cast it to the types necessary down your code. |
| Fri 06 Aug | Dino | Memory addresses can be calculated (useful when dealing with arrays, strings, dynamic data structures or inheritance/polymorphism etc). The calculated address is stored in a pointer. Getting back to the actual value is called de-referencing.
A pointer is nothing else but a variable holding a memory address that addresses indirectly either data or code.
At a more basic level, processors implement instructions that require address calculation and some level of indirection. For example a simple conditional jump jnz address1 is in fact:
if Z flag then
increment instruction pointer
else
set instruction pointer @ address1
end if
execute instruction @ [instruction pointer]
The next instruction is indirectly referred via the instruction pointer.
Without indirection computers would simply not work. |
| Fri 06 Aug | /. | So far there isn't one thing on there that you can't do with a reference, rather than a pointer, I think the user was asking more along the lines of: What can a pointer do that a reference cant |
| Fri 06 Aug | mackinac | They are very useful when writing low level system code such as device drivers. On some computer systems hardware devices have registers that are mapped to sections of memory.
Say, for example, your system has a UART with a read register at address 0x10000, a transmit register at 0x10001, and a control register at 0x10002. Then you could write:
/* Outline with various details missing */
char *readReg = (char *)0x10000;
char *writeReg = (char *)0x10001;
char *cntlReg = (char *)0x10002;
/* Read next character from the UART */
nextChar = *readReg;
/* Send character 'A' out the UART */
*writeReg = 'A';
/* Set a control bit */
cntlReg |= BIT_MASK; |
| Fri 06 Aug | haha | Am I Gene? Nope. |
| Fri 06 Aug | Me | Nice troll /.
A pointer has to be used for dynamic memory allocation (malloc, new) which was already mentioned. Other than that you can use pointers as alternatives to array notation. (Increment and Decrement the pointer to traverse the array and add or subtract a certain amount to index the array.) |
| Fri 06 Aug | _ | I though /. was making a very good point.
After all a pointer is really just a 'reference' to an object in memory. It just so happens that it's 'referenced' by its address in memory (which if we want to be pedantic isn't its physical address anyway but some fake virtual address).
There isn't a fundamental reason for high-level programming lanugages to have C-style pointers.
Which reminds me. Why do C & C++ distinguish between '.' and '->' anyway? Why do we have to write 'p->element()' when 'p' happens to be a pointer and p.element() otherwise. Why can't we just write 'p.element()' and let the compiler sort it out, after all it knows what 'p' is. |
| Fri 06 Aug | matt | You need to stop thinking in terms of high-level languages (where pointers might well seem a bit, well, pointless at a first glance), and think in terms of the hardware, just for a minute. This should give you the insight into why pointers are unavoidably necessary at the machine level.
Essentially, the computer has a bunch of data stored in RAM, and it needs some way to remember where pieces of data are stored, a way to tell it where in the RAM to retrieve a piece of data from, etc. Essentially pointers. Without pointers there'd be no way to tell the CPU where to store and retreive data. (Well, you'll typically have a small number of 'registers' to work with aswell, but that's kinda besides the point). If you do any low-level coding, say writing assembly code, you'll use indirection and pointers all the time as a matter of necessity.
From then you can think about things like at which level should the idea of a pointer be abstracted away and hidden from the programmer? Languages like C and C++ let you play with raw(-ish) pointers, whereas languages like Python abstract the notion of a pointer by making 'references' to variables, essentially playing around dynamically with a symbol table. But real pointers are still used behind the scenes, if you look at the Python source code, for example. |
| Fri 06 Aug | Skagg | 'There isn't a fundamental reason for high-level programming lanugages to have C-style pointers. '
Errrr, the whole concept of interface-based programming is based on C-style pointers. |
| Fri 06 Aug | Christopher Wells | > Why do C & C++ distinguish between '.' and '->' anyway?
In C++ a reference cannot be null, and a pointer can: so you must use a pointer instead of a reference, if you want to define it before you have anything for it to point to.
The other difference is that you can change what a pointer is poting to; whereas you define which object the reference is refering to when you define the reference, and cannot subsequently make it refer to some other object.
For example, the following is legal:
int* p = 0; //p is null
int a = 3;
p = &a; //p points to a
int b = 4;
p = &b; //p points to b
You cannot do the above with C++ references.
C only has pointers, not references. |
| Fri 06 Aug | /. | so indulge my ignorance for a second Christopher, but what is the difference bettween
int* p = 0; //p is null
int a = 3;
p = &a; //p points to a
int b = 4;
p = &b; //p points to b
and
//JAVA
Integer p=null;
Integer a = new Integer(3);
p=a;
Integer b = new Integer(4)
p=b;
p.setInt(5); //or whatever the method is
System.out.println(b)
>>5
Same thing no? |
| Sat 07 Aug | Christopher Wells | > Same thing no?
Yes I think so; and a C# 'reference' too is the moral equivalent of a pointer (caveat: C# types are either value types or reference types ... somewhat similar to the difference between 'int' and 'Integer' in Java).
But C++ makes a distinction between pointers and references ... perhaps because C++ doesn't distinguish between value and reference types.
Using references:
intt& a; //compiler error: reference to nothing
int b = 1;
int& c = b; //ok: c is a reference to b
int d = 2;
c = d; //this doesn't make c a reference to d ... instead it assigns d's value to the integer referenced by c, i.e. now b == 2
Using pointers:
int* a; //no compiler error
int b = 1;
int* c = &b; //ok: c is a pointer to b
int d = 2;
*c = d; //this doesn't make c a pointer to d ... instead it assigns d's value to the integer pointed to by c, i.e. now b == 2
c = &d; //this reassigns c so that it's now pointing to d instead of b |
| Sat 07 Aug | Christopher Wells | > > Why do C & C++ distinguish between '.' and '->' anyway?
Also, when you define a C++ class you can overload its -> operator (but not its . operator). This is used for defining 'smart pointer' classes: classes that you use like pointers, but which provide additional features such as reference counting the object that they're 'pointing' to and automatically deleting it). |
| Sat 07 Aug | Christopher Wells | > int b = 1; int* c = &b;
Or 'int* c = new int(1);' if you want the pointee to be allocated from the heap instead of on the stack. |
| Sat 07 Aug | _ | Matt, I work on embedded systems, write assembler regularly and have no problems with the concept of pointers and how they relate to the underlying hardware. But when the original poster asks 'what benefit do pointers have when writing a pogram?' then frankly the answer is that most of the time they have no benefit, unless you're doing really low-level software.
You are right that without pointers there would no way to tell the CPU where to store and retrieve data, but it doesn't mean that you have to expose that detail to high-level programmers. After all you could argue that without ALU flags the CPU wouldn't be able to handle conditional execution. But you don't see many languages exposing the CPU flags directly to the programmer, not even in C.
Besides in most large-scale operating systems dereferencing a C/C++ pointer isn't hitting the RAM directly. That's a fiction carried forward from the days of flat memory spaces. On most large systems, a pointers go through several layers of hardware indirection before it hits the RAM. And if you're unlucky you may need to wait many milliseconds while the OS fetches a page of virtual memory from disk before you can access the value referenced by your 'raw pointer' .
Skagg & Christopher, Yes you are right. If you look at the world through the C/C++ lens (which many of us do every day) then pointers are essential. Thankfully the programming world is slowly moving away from its reliance on unsafe pointers for all but the jobs that really require them. 'Why are pointers used?'... because we've got used to them and haven't stopped to ask why! |
| Sat 07 Aug | T. Norman | For the most part, pointers are used because the language forces you to use them to get the job done. Some languages force it more than others -- it is almost impossible to write a nontrivial C program without pointers, but you could write a useful large Ada program without them.
In most cases, pointers should be avoided if you can accomplish the same task without them (unless avoiding pointers would overly complicate the code or hurt performance). |
| Sat 07 Aug | Roose | Nice post, _, agreed. |
| Sat 07 Aug | Christopher Wells | > 'Thankfully the programming world is slowly moving away from its reliance on unsafe pointers for all but the jobs that really require them.
I don't get it: poiners (or references) seem to me to be fundamental to programming.
They're not language-specific, present in some languages but not others: if a class contains another class, the UML notation for example supports your specifying whether it's contained by value or by reference.
A program needs subroutines, subroutines need parameters, and those parameters need to be 'by reference'.
And a non-trivial program has non-trivial data structures: for example I have one screen which contains N graphs, each graph displays M waves and O markers, and this is implemented using containers for the various objects.
Yes you can make 'pointers' 'safer' than in C++: remove the ability to do reinterpret_cast; implement reference-counting and garbage collection; call things 'references' instead of 'pointers'; and implement a library of 'container' classes (which use pointers) so that high-level programmers don't need to implement them. They're still pointers.
I liked _another point_'s point: 'They provide a mechanism to support indirection. This is important in making a program dynamic in the sense that the memory structures are detemined at runtime.' That said it all, I thought.
> Some languages force it more than others -- it is almost impossible to write a nontrivial C program without pointers, but you could write a useful large Ada program without them.
I don't know many languages. What language[s] should I look at, to see how it does away with pointers? Or if I look at Ada, for example, will I just say 'Well it doesn't have pointers ... but it does have references, which serve the same purpose as pointers.'? |
| Sat 07 Aug | matt | '_' : Well I didn't make any claims that pointers are a useful thing to have hanging around in a high-level language - I was just trying to explain why they must exist at some level. I guess it wasn't exactly clear whether the OP knew this or not.
But yeah, I can't immediately think of any task I've had in a high-level language which needed pointers as opposed to references. That said I've not done any C++ for ages... |
| Sat 07 Aug | Christopher Wells | > Yes you can make 'pointers' 'safer' than in C++: remove the ability to do ...
... and pointer arithmetic (for example incrementing a pointer to get a pointer to the next element of an array). |
| Sat 07 Aug | _ | Chris, You have a bad case of C++ myopia. Of course you can't write meaningful C or C++ programs without pointers. But that doesn't mean that you can't write programs without pointers, in the C sense of the word 'pointers'.
> .. and pointer arithmetic (for example incrementing a pointer to get a pointer to the next element of an array).
Yes. Who needs the ability to increment the same unsafe pointer passed the end of the array too? The number one cause of buffer overruns and security problems.
High-level languages should abstract away raw pointers in the same way that they abstract registers and CPU flags. Let's hope that in 10 years time C and C++ are viewed in the same light that assembler is today. |
| Sat 07 Aug | Christopher Wells | > Chris, You have a bad case of C++ myopia.
Can you even think of an object diagram (not a class diagram) without imagining pointers/references? That's my question.
> Let's hope that in 10 years time C and C++ are viewed in the same light that assembler is today.
I already view them in a similar light.
> High-level languages should abstract away raw pointers in the same way that they abstract registers and CPU flags.
I guess the closest I've come to a 'high-level language' then are SQL and XML: structured storage, with a flat API from which you extract arrays of whatever you want. Even so, when I think of 'foreign keys' that relate the records SQL tables, I see these as pointers ... and XML documents are trees of elements, where the branches that link the trunk to the leaves are another kind of pointer. |
| Sat 07 Aug | T. Norman | SQL foreign keys and XML nodes are not pointers, because they are only logical representations of the relationships between different elements of data. Shuffle around the data on disk or in memory, and without using a different foreign key value or XML path traversal you can still find the data you want.
If a foreign key actually represented the track and sector and byte offset of another piece of data, then it would be a pointer.
A pointer references a location in the hardware (or virtual machine) in which the program runs -- not a location in a logical data structure created or used by the program. An array index is not a pointer, neither is an SQL foreign key, neither is a character's position within a string (even though pointers may be used to hold their values). I can implement a linked list in Ada using an array without pointers, by having each node hold the index of the next node in the list.
Java references are the equivalent of pointers though.
Of course, behind the scenes the OS, hardware, and DB deal with the actual memory and disk locations and will resolve everything into actual pointers. But that doesn't mean YOU are programming with pointers. |
| Sat 07 Aug | Kalani | >If a foreign key actually represented the track and
>sector and byte offset of another piece of data, then
>it would be a pointer.
If your RDBMS manages primary key generation for you, that value just might reflect the sector/track where the record is stored (OK, chances are that it doesn't, but the point is that the meaning of that value is opaque to you).
It's the same way with pointers. In fact, if you think that you can take a pointer value, open up your computer case, and identify exactly where the value it points to is located, you don't know enough about what your OS does for you.
>Shuffle around the data on disk or in memory, and
>without using a different [reference value] ... you
>can still find the data you want.
Sounds like virtual memory. :) |
| Sun 08 Aug | Christopher Wells | > If a foreign key actually represented the track and sector and byte offset of another piece of data, then it would be a pointer.
I didn't mean it literally. What I meant was that they're like pointers, in that they serve a similar purpose: for example if I have some customerid value such as '3', then I can 'dereference' on this value to get the customer data that is being pointed to, using a deferencing operator such as 'select * from customertable where customerid=3'.
I suppose that a language only needs to remove pointer arithmetic (and, remove constructs such as 'char *readReg = (char *)0x10000;') in order that its pointers be no longer 'real' pointers but instead be some kind of 'reference' or 'handle': because removing pointer arithmetic allows the system to do (for example) heap compaction. |
| Sun 08 Aug | T. Norman | All right, if you want to stretch things you can say that ANYTHING that refers to anything else is a pointer. But I would draw the distinction by evaluating whether the pointer values have meaning outside the machine (or virtual machine) in which the program is running.
A set of database tables can be migrated to a totally different type of machine, and all the data and its relationships will be maintaned without having to change any of the primary or foreign key values or do any special low-level operations. Customer ID 3 stays as 3. The same goes for a linked list implemented as an array in which the array indices are used to locate the next node. However, a linked list implemented with pointers can't be reconstructed in another machine with the same pointer values unless that other machine has fundamental similarities in its memory architecture and you are able to exercise low-level control over where memory is allocated. |
| Sun 08 Aug | Christopher Wells | > But I would draw the distinction by ...
Fair enough. Anyway, the reasons I use pointers is to ...
1) Instantiate objects on the heap (i.e. objects that continue to live after the subroutine which allocated them has returned), and then dereference to access those objects
2) pass objects by reference to subroutines
3) get polymorphic (i.e. virtual) function behaviour
... in languages that don't support using references and containers and virtual functions to implement these features.
OP: say if you need an explanation of what benefits these features have when writing a program. |
|
| Employment contracts & Intellectual Property | Fri 06 Aug | anonymous |
| I am about to start a new job in Pennsylvania. They gave me the employment contract, which I havent signed yet. What concerns me are the parts that say that anything I create while employed there belongs to them. The contract goes on to say that anything I create within the scope of employment and during my time with the company belong to them as well.
As I understand it, scope of employment means that as long as what I create has no relation to what the company does or what I do for the company then what I created belongs to me.
My reason for concern is that if I am wrong about the scope of employment, then any software that I may want to write on my own time outside of work (open-source or shareware) would belong to them and not me.
The contract also has parts that say I cannot work for any possible competitor or work with any former co-workers for 2 years after I leave.
I know Joel said in an earlier article that you shouldnt allow your employer to get away with things like this, because software developers are a hot commodity. However, I think that article was posted in 2000. Do you think that still applies today in 2004?
Has anyone asked their employer to change the employment contract to allow for them to own any work that they create on their own time and with their own resources? Were you successful in this?
I really want the job, but I am not comfortable with signing away my rights.
Any help or advice would be greatly appreciated. |
| Fri 06 Aug | old_timer | I used to work for the R&D division of a mega-large corporation and they had the same sort of restrictions. You are paid to invent and innovate, so any innovation regardless of what field it's in belongs to them. Even if it's in a totally unrelated field from what you are currently working on, you could possibly make this new invention into a new product or venture for the company.
Then I went to another company where I was not in R&D but product support services, so I got a clarification from the divsion counsel and the same does not hold true for those not in the R&D category. So if I build a better mousetrap now, since this company and my function within it have nothing to do with mousetraps, I can claim that as my own. I'm paid to deliver a product, not innovate by developing new products.
There's a lot of case law on the better mousetrap scenario and you'll find regardless of what the employment agreement they hand you says that there are some pretty solid legal precedents similar to the above. But it all hinges on your job definition. |
| Fri 06 Aug | Kyralessa | The first part, from the way you describe it, sounds like they're saying they own your work done for them, but they don't own your hobbies done on your own time. Typical and reasonable.
But the second part, which restricts your future employment, sounds unreasonable. If the job pays well enough to merit it, you ought to check with a lawyer to confirm whether or not it's actually enforceable.
You can certainly also solicit opinions here; my personal non-lawyerly opinion is that it's probably not enforceable, as it's too restrictive. But law is not always the same as common sense, so take a copy of the contract and get a professional opinion.
And if the place has a problem with you taking a copy of the contract to run it by a lawyer, then I think that says it all right there. |
| Fri 06 Aug | Jesse Smith | I don't think I would ever sign a contract containing those two clauses, especially the one that forbids you from working in your field.
Perhaps you can get the clause about intellectual property clarified to state that software created on your own time remains your own property (perhaps with an understanding that you won't moonlight on anything that would compete with your employer).
Personally, I would not sign the 2-year noncompete clause. I know these things are fairly enforced, but maybe a company that is unwilling to bend on this is going to be a bear to work with later, too.
I would try to explore the company's underlying interests behind these clauses, and see if you can come up with something that protects your right to work and development your own software, while also satisfying their fear of being ripped off.
I like the book 'Getting to Yes' by Fisher, Ury, and Patton for this approach. I haven't had a real opportunity to try these principles in a situation like an employment contract, though, so take this advice for what it's worth! |
| Fri 06 Aug | Jesse Smith | I wrote 'I know these things are fairly enforced...'
Should be 'rarely', of course. |
| Fri 06 Aug | wmeconsulting.us | Cross out the lines about anything you do outside of work belonging to them, cross out the 2-year non-compete clause, cross out anything else that sets off your inner alarm bells (trust them - they're nearly always spot on), initial the changes, return the contract to them. If they balk, walk - no, run. You do *not* want to work for these sorts of people, period. |
| Fri 06 Aug | Brad | There was an interesting thread on exactly this topic on the PerlMonks site:
http://perlmonks.org/index.pl?node_id=153046
Lot of text there, but worth perusing. |
| Fri 06 Aug | old_timer | The two year, or any number of years, months or weeks of non-compete in such contracts are totally unenforceable. Most states have 'right to work' laws that supercede such nonsense and those which do not still abide by the legal precedents set elsewhere. The fact they have it in there is for intimidation purposes only. They know full well that it is bullshit but they'll always try to get you to sign it because there might be one case in ten thousand where it could apply.
I have seen it happen at the R&D place where I worked. There was a big RFP up for bids and two engineers ran outside and submitted their own bid. Since they did work in the group inside the comapny that was bidding and the RFP was released prior to their leaving, they were wrong to directly compete in a process they had their hands on while still inside. The company did have the right to shut them down in that instance.
However for the rest of us just going to get another job at another company, no way. |
| Fri 06 Aug | Scott | This has been covered here several times before.
Cross out and ini |