Slashdot Mirror


F/OSS Flat-File Database?

Leemeng writes "I'm looking for a simple, free, and F/OSS flat-file database program. I'm storing info about Wi-Fi access points that I come across, maybe 8-9 fields per entry. I've outgrown Notepad. This info is for my own reference only; it is not going on a Web server. Googling was unhelpful, with results skewed towards SQL, Access (MS), and Oracle, all of which would be overkill for my purposes. My criteria are: it must be simple, F/OSS, must work in Windows Vista, preferably use a portable format, must not be an online app, and must not require Java. Does such a beast exist?"

702 comments

  1. Python? by fyngyrz · · Score: 5, Informative

    Can't be Java... well, how about Python?

    Here is a completely free (PD, not GPL-style "you're free to do as we tell you") database engine that will do what you have described thus far.

    The database engine is about 19k bytes (not a typo), has no dependencies (other than Python itself), supports a useful subset of SQL so you can actually create flexible queries that produce well-sorted results from your database, and it works everywhere Python does, which is to say, it works pretty much everywhere. It's just as happy operating on a command line as it is on a web server. The results (the actual databases) are 100% portable from OS to OS. I use it on various linuxes, OS X, and Windows for tasks very similar to yours.

    Comes with tutorial examples, sample databases and extensive docs. In a 13k (not a typo) archive.

    :-)

    --
    I've fallen off your lawn, and I can't get up.
    1. Re:Python? by Anonymous Coward · · Score: 0, Offtopic

      "[sic]" is the standard expression if you wish to inform readers that something is "not a typo".

    2. Re:Python? by maxume · · Score: 5, Insightful

      Why not sqlite? Comes with Python 2.5 on Windows. It adds a relatively weighty 800k or so to my python installation on Windows, but the installation is dozens of megabytes overall, so it doesn't really matter.

      --
      Nerd rage is the funniest rage.
    3. Re:Python? by E+IS+mC(Square) · · Score: 0, Flamebait

      Nope. It is not.

    4. Re:Python? by goombah99 · · Score: 5, Interesting

      You need YAML

      I think is exactly what you are requesting.

      --
      Some drink at the fountain of knowledge. Others just gargle.
    5. Re:Python? by theripper · · Score: 1, Offtopic

      [sic] is used when you are quoting something to show that the typo is not yours.

    6. Re:Python? by fyngyrz · · Score: 3, Informative

      No, it isn't just that. It is used to show that what you are quoting is verbatim, for instance in cases where an assertion is unique, questionable, or worded unusually. This also works for obvious spelling errors, of course.

      --
      I've fallen off your lawn, and I can't get up.
    7. Re:Python? by solferino · · Score: 2, Interesting

      GPL-style "you're free to do as we tell you"
      Care to tell me exactly what the user of GPL software is not free to do? Otherwise maybe you'd like to retract your casual FUD-spreading aside.
    8. Re:Python? by Facetious · · Score: 4, Funny

      Look, now you are just contradicting everything. He came here for an argument.

      --
      Let us not become the evil that we deplore.
    9. Re:Python? by Anonymous Coward · · Score: 0, Troll

      > Care to tell me exactly what the user of GPL software is not free to do?

      Use it in any project that isn't GPL'd. Because all other free software licenses are, after all, stealing.

    10. Re:Python? by el+americano · · Score: 4, Funny

      YAML is a recursive acronym for ...

      Next!

      --
      Those are my principles. If you don't like them I have others. -Groucho Marx
    11. Re:Python? by fyngyrz · · Score: 4, Informative

      Why not sqlite?

      • SQLite isn't present or compiled in, in all Python installations, 2.5 or otherwise
      • At 800k, it's about 50x the size of class dbtxt (executable)
      • Source is huge compared to class dbtxt, so maintainance is not easy
      • SQLite is considerably more difficult to use (it's also more capable, though)

      That's all I have for ya, offhand. ;-)

      --
      I've fallen off your lawn, and I can't get up.
    12. Re:Python? by goombah99 · · Score: 4, Interesting

      YAML meets the flat file requirement and can be made to be the persistent DB behind Python, Perl, Ruby.

      If it were not for the Flat File requirement then a simple Python shelve or Perl Tie would be the most logical solution since they are both part of the standard library so don't require installing libs on random computers you might use or port to.

      of those two Perl Tie is probably the most suited because it's backed by a real DB operating off the disk not fully in memory.

      But why not do both: use YAML as the DB backing the Perl Tie.
        then you get a nice human readable flat file.

      --
      Some drink at the fountain of knowledge. Others just gargle.
    13. Re:Python? by ehrichweiss · · Score: 5, Informative

      Well that assertion was a massive FAIL. I make quite a living thanks to the GPL and I know tons of others who do the same.

      --
      0x09F911029D74E35BD84156C5635688C0
    14. Re:Python? by fyngyrz · · Score: 5, Insightful

      Care to tell me exactly what the user of GPL software is not free to do? Otherwise maybe you'd like to retract your casual FUD-spreading aside.

      I can't legally utilize GPL'd source code within a commercial application without doing some very specific (and not always possible) things that the GPL license instructs me I must do. Any other ways I can help with your basic F/OSS education? I'll be here all day.

      --
      I've fallen off your lawn, and I can't get up.
    15. Re:Python? by Anonymous Coward · · Score: 3, Insightful

      Hooray, falsehoods!
      You're more than welcome to use with any other software, you just can't distribute.

    16. Re:Python? by Facetious · · Score: 5, Funny

      Great. Now I'm going to have to call Red Hat and tell them their profits aren't real. I always hate to make that call. Just last week I had to tell Steve Ballmer that chair!=discus||frisbee. He was pissed.

      --
      Let us not become the evil that we deplore.
    17. Re:Python? by Nwallins · · Score: 2, Informative

      I can't legally utilize GPL'd source code within a commercial application without doing some very specific (and not always possible) things that the GPL license instructs me I must do. You can use the software all you want. Just don't distribute it.
    18. Re:Python? by mini+me · · Score: 1

      SQL of any variety is the wrong tool for the job here. He just wants to store a hash. BDB is probably ideal, although there may be some merit to using something akin to CSV or XML if there is a need to exchange the data with other applications.

    19. Re:Python? by fyngyrz · · Score: 2, Informative

      Yes, that's pretty much what I said, only with more details. What's your point?

      --
      I've fallen off your lawn, and I can't get up.
    20. Re:Python? by rindeee · · Score: 1

      But you can do this with non-free software's source? I'm missing your point I believe.

    21. Re:Python? by aweraw · · Score: 5, Insightful

      Mod parent up.

      IMO, the people who still, after all these years, haven't figured out how to make money with GPL software are the failures, not the GPL.

      Its just a software license; it doesn't preclude you from charing money for your work, and it doesn't mandate you make your work avaiable to the general public. I can't fathom why some seemingly intelligent people have such a hard time grasping this concept.

      --
      5468652047616D65
    22. Re:Python? by moderatorrater · · Score: 5, Interesting

      I'm missing your point I believe. Or being purposely obtuse which you (probably rightfully) feel you can get away with because this is a very GPL friendly forum. BSD, MIT, etc licenses allow you to do whatever you want with the code with none of the strings that the GPL has. Your false dichotomy between GPL and closed source doesn't really help promote a useful dialog about freedom of source.
    23. Re:Python? by Anonymous Coward · · Score: 2, Insightful

      fyngyrz, what's with the inflammatory anti-GPL remark that's not even relevant to the topic at hand?

      I'm a huge fan of the GPL, but when I refer someone to BSD software I don't stick in useless remarks about it being the license that's "free for selfish pricks who want to enjoy the benefits of freedom for themselves while depriving others of same".

      Give it a rest -- that chip on your shoulder is neither useful nor attractive. There's nothing wrong with choosing to share unconditionally, and there's nothing wrong with choosing to share with those who choose to share.

      Plus you've mischaracterized the GPL -- it remains free to *use* unconditionally, the strings are attached only to redistribution.

    24. Re:Python? by fyngyrz · · Score: 3, Insightful

      But you can do this with non-free software's source? I'm missing your point I believe.

      Yes, you missed the point. You can do it with PD software, specifically with the software in the post that this thread depends from (class dbtxt.) PD source allows you more freedom(s) at the user end. GPL source allows you (a lot) more control at the author end.

      --
      I've fallen off your lawn, and I can't get up.
    25. Re:Python? by dixonpete · · Score: 5, Informative

      There's an add-on for Firefox that makes SQlite use fairly painless: SQLite Manager. Brilliant work.

    26. Re:Python? by matt_hs · · Score: 1

      (PD, not GPL-style "you're free to do as we tell you")

      The GPL boils down to:

      • Please, go ahead, use my code. I put in a lot of effort and want to share it.
      • Make any changes you want for your own personal or professional use. So long as it remains in house, knock yourself out.
      • If you want to distribute the code, I ask that you provide appropriate credit and make sure others can make changes to it too.

      For most GPL projects, this is what it means. How is that unreasonable??

    27. Re:Python? by DAldredge · · Score: 1

      If you are not making your work publicly available why use the GPL?

    28. Re:Python? by ortholattice · · Score: 1

      Warning (for people who forget to tar -tzf first): dbtxt.tar.gz consists of top-level files, so tar -xzf dbtxt.tar.gz will spray files all over your home directory if that's where you downloaded it. Put it in its own directory first.

    29. Re:Python? by Anonymous Coward · · Score: 5, Funny

      no he didn't. he came here for abuse.

    30. Re:Python? by fyngyrz · · Score: 0

      fyngyrz, what's with the inflammatory anti-GPL remark that's not even relevant to the topic at hand?

      First, it's a fact. If you aren't comfortable with it, lobby within the GPL community for changes. I'm not going to be responsible for your discomfort with accurate characterizations of the GPL's push of obligations onto end users of source code.

      Secondly, the remark was 100% relevant, because the point I was making is that the software, being PD, offers considerably more freedom to the end user than offerings that arrive under the aegis of the GPL. This is a benefit that is extended specifically as a consequence of avoiding he GPL.

      Third, I like to point out to people that PD is inherently a freer distribution method than that offered by the GPL. It is my hope that more PD projects will be made available by other authors as a result of my extolling the superior virtues of PD; and should that come to pass in any form, the effort was well worth it.

      Lastly, why is it that you seem to saying the GPL should be immune to criticism? Did I, at any point, tell you that you weren't free to criticize PD, my software, or anything else?

      Plus you've mischaracterized the GPL -- it remains free to *use* unconditionally, the strings are attached only to redistribution.

      I haven't mischaracterized anything as far as I can see. The user can't redistribute GPL'd apps under certain conditions because of limits defined by the GPL. They can, however, redistribute class dbtxt under the same conditions, because it is PD, and no such limitations are imposed with PD distribution. This means (among other things) that under the GPL, improved functionality executables cannot be redistributed without the specified hoop-jumping, which impacts end users; class dbtext, however, can be redistributed any way you like including changing (or not) stuff and slapping the GPL on the result, if you were so inclined. It doesn't change the fact that the original remains PD. Freedom! Smells good, eh?

      --
      I've fallen off your lawn, and I can't get up.
    31. Re:Python? by samkass · · Score: 1

      "free for selfish pricks who want to enjoy the benefits of freedom for themselves while depriving others of same".

      Since most I know who list an absolute F/OSS requirement do so solely because they wanted to use other people's work without paying for it, I suspect the original poster wasn't all that interested in altruism anyway.

      --
      E pluribus unum
    32. Re:Python? by QuantumG · · Score: 1

      Cause the people you *are* giving it to can't use proprietary licenses to victimize others, and they can still do useful and helpful things with it.

      --
      How we know is more important than what we know.
    33. Re:Python? by legutierr · · Score: 1, Informative

      OK, dbtxt looks interesting, but SQLite is very stable (it's used as the data storage in the iPhone, in Firefox, and in Skype, for example), and has a ton of features, like:

      - mostly ACID compliant (i.e. transactions w/rollback)
      - standard SQL (or close enough to it; de facto, there's no such thing), including joins
      - indexes and primary key generation
      - concurrent use by multiple processes w/locking
      - extremely cross-platform, including many OSs and most languages
      - a great command-line editing tool

      I'm not surprised that most of the posts here site SQLite, because it is great. And it's public domain, so it can be used by anyone, anywhere, for any commercial or private purpose.

      Having a db that is human readable can be a good thing--and a bad thing (anyone can change its contents manually?). Being small is a good thing. But even if you are doing embedded programing, is 800k such a burden that you would give up this feature set?

    34. Re:Python? by NotBorg · · Score: 1

      What if I fork it and begin the name with a K or maybe a G?

      Doh.

      --
      I want this account deleted.
    35. Re:Python? by fyngyrz · · Score: 2, Interesting

      For most GPL projects, this is what it means. How is that unreasonable??

      Did I say it was unreasonable? It's your code, you're free to put any conditions you want on it. I encourage you to do so. PD, GPL, BSD, commercial, etc., that's your call. With these choices come consequences to the end users of the application and/or the source code, though, and there's no squirming out of them.

      What I said was that the GPL imposes "you're free to do as we tell you" conditions while holding up PD in contrast. Which is precisely accurate. PD doesn't impose such conditions; hence PD is a feature offered as compared to any GPL'd alternative. Since it is a feature that directly improves usability and lightens the conditions under which the user can sell, modify and redistribute the source code, I find it well worth mentioning.

      --
      I've fallen off your lawn, and I can't get up.
    36. Re:Python? by morgan_greywolf · · Score: 4, Funny

      Abuse is down the hall, room 164a, I think.

    37. Re:Python? by NMerriam · · Score: 2, Interesting

      If you are not making your work publicly available why use the GPL?


      Just because you don't necessarily want/need to make it public doesn't mean you want to distribute it as binary-only or not be able to use other GPL code in the development or expand it in unforeseen ways in the future.

      I'm not a programmer, but in one of my past jobs I used to hire developers for projects. One of the caveats I applied to everything we did was that it had to be GPLed, partly for flexibility down the line if we needed to modify it or distribute it to partners (gov't and universities), but also because the nature of the work was such that 95% of the foundations already existed in other GPL projects, all we needed was customization to our particular workflow. It's no secret that a lot of free software is only usable by techs, and much of what I was doing was developing user-friendly interfaces for our employees, and then paying to have the backend made functional.

      But we never had the software available for the public, just because they'd have little interest in it as it was so customized for our particular use and I'm sure some of the very situation-specific code was fairly hacky. I know the developers did push patches upstream when it made sense, and I encouraged them to do so and even paid for more hours here and there to make sure the code was clean enough to do that. I strongly suspect that most developers who make a living with GPL/BSD software (other than employees of Red Hat and Mozilla and the like) pay their rent on projects like this. It's a great symbiotic relationship between the GPL software community and private enterprise.
      --
      Recursive: Adj. See Recursive.
    38. Re:Python? by DAldredge · · Score: 2, Interesting

      How do proprietary licenses victimize others?

    39. Re:Python? by hedwards · · Score: 1

      I'm a huge fan of the GPL, but when I refer someone to BSD software I don't stick in useless remarks about it being the license that's "free for selfish pricks who want to enjoy the benefits of freedom for themselves while depriving others of same". It happens that BSD, MIT etc., licensed software are used in that manner, but it's probably a lot less common than one would think. The main reason being that as soon as you fork the code into a closed software project, you start to incur large expenses.

      Really, there are only a few possibilities (And combinations of) to this, you end up with a vanilla copy, which you don't include source for, you constantly merge in bug fixes and new features from the original or you've created a fork. Realistically, only the first option is likely to make any business sense. But even then there's going to be times when sending a patch upstream is the most economical thing to do. That way you can avoid the old Linux distro problem of maintaining a non-standard patch set and all the trouble that causes.

      I'm just not so sure that it happens less with GPL software, sure it would be a violation of the licensing terms, but when you've compiled it into a binary, I'm not so sure that a few headers here and there or small segments of code would ever be noticed.
    40. Re:Python? by sticks_us · · Score: 3, Interesting

      I'm late to the party, and there are certainly a ton of other good suggestions, but I just had to pipe in and cast another vote for YAML.

      Even if you don't end up using it for this particular app, it definitely deserves a look. Although it'll never displace XML, it definitely answers at least some of the questions XML attempts to answer, reduces "tag bloat," and is easy on the eyes.

      --
      "Beware of bugs in the above code; I have only proved it correct, not tried it." -- Donald Knuth
    41. Re:Python? by morgan_greywolf · · Score: 5, Insightful

      He said he wanted a flat-file database. Why, on this Earth, would he ever need "standard SQL including joins." SQL is designed for relational databases and, in particular, joins are only EVER used in a multi-table, relational database. In fact, the guy even said "SQL is overkill".

      IOW, SQLite, as "lite" as it is compared to Oracle, MySQL, PostgreSQL, etc. is still overkill.

      I'm with the GP -- dbtxt looks really cool. Although, I do gotta say that OpenOffice.org would fit the bill just fine for what his requirements are: Calc can be used as a flat-file database, and I think there is support for simple CSV databases in Base.

    42. Re:Python? by Anonymous Coward · · Score: 0

      > At 800k, it's about 50x the size of class dbtxt (executable)

      Yeah, but it can actually store strange and exotic things like strings that have codepoints > 127.

      I suppose if you really need a database for your 8-bit PIC, then you should take a look at dbtxt.

    43. Re:Python? by cbreaker · · Score: 1

      You indeed HAVE mis-characterized the GPL. You said "you're free to do as we tell you." No. You can do whatever the hell you want with the application, code, whatever.

      The only stipulation is that you must include any code changes if you distribute modified GPL software.

      Why that's so difficult for some people to understand is beyond me.

      --
      - It's not the Macs I hate. It's Digg users. -
    44. Re:Python? by QuantumG · · Score: 3, Insightful

      Uhh.. is that an honest question?

      Proprietary licensing is specifically designed to make the licensee dependent on the licenser. If there's bugs in the software then the licensee can't fix it and there is only one place the licensee can go to get the bugs fixed, the licenser, who is free to refuse to fix the bugs or demand exhorbinate fees to do so. Same with new features or support.

      If you wouldn't do this to someone directly then giving code to someone else so they can do it is unethical.

      --
      How we know is more important than what we know.
    45. Re:Python? by cbreaker · · Score: 0, Troll

      You can try to weasel out of your comment all you want, but it was obviously meant to be a troll. There was no hidden meaning - it was just you trolling.

      --
      - It's not the Macs I hate. It's Digg users. -
    46. Re:Python? by Waffle+Iron · · Score: 1

      It is my hope that more PD projects will be made available by other authors as a result of my extolling the superior virtues of PD

      As I understand it, placing works in the public domain is not necessarily a good idea for software authors because they have no protection against liability in the event that someone claims that a bug resulted in loss or injury.

      Using a BSD-style license achieves essentially the same thing while at least asserting some disclaimer of liability for the author.

    47. Re:Python? by smilindog2000 · · Score: 3, Informative

      I'll throw out a shameless plug for something totally unsuitable for what the poster wants: datadraw. It's an in-memory super-high-performance (think raw C code or better - not SQL), database generator that I've not only had a lot of fun with, but which now supports well over 1M lines of algorithmic code - some of the most high performance stuff around.

      --
      Beer is proof that God loves us, and wants us to be happy.
    48. Re:Python? by smilindog2000 · · Score: 4, Informative

      Grr... some shameless link! Should have checked it: datadraw

      --
      Beer is proof that God loves us, and wants us to be happy.
    49. Re:Python? by lightversusdark · · Score: 1

      Sell a compiled binary of a modified version of the program without making the modified source code available.

      --
      "There is nothing nice about Steve Jobs and nothing evil about Bill Gates." - Chuck Peddle
    50. Re:Python? by fyngyrz · · Score: 4, Interesting

      Having a db that is human readable can be a good thing--and a bad thing (anyone can change its contents manually?). Being small is a good thing. But even if you are doing embedded programing, is 800k such a burden that you would give up this feature set?

      Sure, it can be. For instance, adding 800k of stuff to your application means that you are giving up control. You might have the source (which is going to be somewhat larger in this case)... but do you have the time to dig into it if there's a problem? Does reporting the problem necessarily mean it's even going to get fixed? For instance, I've reported many problems to various authors, some of which got fixed, some didn't. Likewise, adding a feature can be non-trivial with a large (source code) project. Compare that to a very lightweight thing that, let's say, almost does what you want but you just need feature X. Might be a whole lot easier to add that to a 20k "almost-there" set of source than megabytes of source, is that not possible?

      Distribution of a class module with a python app is an entirely trivial thing to do. For that matter, you can take the class and put it in the same file with your application if that appeals, giving you the advantages of atomic distribution -- harder for an end-user to separate things and make whole app, as you handed it to them, fail to work.

      And I suppose the elephant in the room is that the end user may have no need for the features. I sell a commercial program with features not available in other programs in the same general application space, functionality-wise; that doesn't mean it will sell to anyone on that basis unless they actually need those features, right? In this specific case, based on the article, the needs described seemed to be met by what I'd written, and hence my post.

      PostgreSQL whips the living hoo-ha out of SQLite; it is larger, but offers more features (sound familiar?) Yet SQLite has a place, as your advocacy clearly indicates. I would venture that the difference between SQLite and class dbtext is similar, just occupies another place on the size/features scale. In the end, the user, based on their requirements, may go "what a POS" and step up the ladder. From either one.

      OK, dbtxt looks interesting, but SQLite is very stable

      dbtxt also seems to be very stable. It's never failed for me, nor have I ever received any indication that it wasn't doing what it was supposed to do when used as indicated. Also -- as a user myself -- I'm quite interested in fixing it, should it turn out to have problems.

      Also, just as an aside, If someone can explain cross-platform file locking in python to me in terms I can understand, and if python's ability to lock can be made to implement a reasonable form of "wait for lock to release", I'd like to add that as a feature, too. I found python's docs on locking to be more than a little opaque. I'm sure it's just me.

      --
      I've fallen off your lawn, and I can't get up.
    51. Re:Python? by maxume · · Score: 0

      It's semantics. One way of reading "whatever the hell you want with the application, code, whatever" includes being able to distribute changes without distributing the source. That same reading says that if you include a stipulation, you can't do "whatever" anymore.

      --
      Nerd rage is the funniest rage.
    52. Re:Python? by iminplaya · · Score: 1

      It denies them access. So GPL is necessary until the concept of exclusivity goes away for good.

      --
      What?
    53. Re:Python? by Anonymous Coward · · Score: 0

      What about python shelves!

      A ``shelf'' is a persistent, dictionary-like object. The difference with ``dbm'' databases is that the values (not the keys!) in a shelf can be essentially arbitrary Python objects -- anything that the pickle module can handle. This includes most class instances, recursive data types, and objects containing lots of shared sub-objects. The keys are ordinary strings.

      you can take your txt file and screate a shelve.

    54. Re:Python? by fyngyrz · · Score: 1, Insightful

      Yeah, but it can actually store strange and exotic things like strings that have codepoints > 127.

      Codepoints, eh? Cool!

      Actually, dbtext, as is, can be made to store anything you like; this is a natural consequence of the fact that there are lots of fun and interesting ways to put codes of 8-bit and greater sizes into multiple 7-bit containers, including approaches that maintain readability for the base ASCII set.

      I will grant you, however, that such exotic and deeply complex programming feats may be beyond your own abilities. In that case, and presuming you want to store such objects, dbtext is surely not for you. I am deeply, deeply saddened. Well, not really. But you can think so if you like.

      Or... and I know this is a crazy, crazy idea... if you need such a thing, you could always ask the author if they would be willing to implement it for you. They might do it. Sort of boggles the mind, doesn't it? Polite and respectful human interaction. Seems... wrong, somehow, doesn't it?

      --
      I've fallen off your lawn, and I can't get up.
    55. Re:Python? by scott_karana · · Score: 2, Insightful

      I wish the GPL was more permissive, myself; while it needn't be as open as BSD and MIT licenses, it'd be nice to allow for similar but incompatible licenses like the CDDL to link with it.

      In before "Use LGPL": we'll never see ZFS in the Linux kernel because of the above problem, unless Sun decides to get rid of the clauses that make you immune to patent suit from them.

    56. Re:Python? by larry+bagina · · Score: 1

      in which case, the GPL discourages sharing.

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    57. Re:Python? by bigstrat2003 · · Score: 1

      Yes. In other words, not free. Granted, I wouldn't have any issues with the GPL at all, if it didn't promote such hypocrisy: claiming to embrace freedom of software, while simultaneously restricting freedom beyond what is necessary. Such hypocrisy is abominable, and should not be accepted.

      --
      "16MB (fuck off, MiB fascists)" - The Mighty Buzzard
    58. Re:Python? by Anonymous Coward · · Score: 0

      Shut up you argumentative faggot loser

    59. Re:Python? by QuasiEvil · · Score: 2, Informative

      Use it in any project that isn't GPL'd. Agreed - this is a particular problem when it comes to library code that folks have either intentionally or ignorantly GPL'd. If I'm not modifying the library code, just using it, I don't want to have to jump through hoops on the calling interface. I don't want to have to build as a shared library with a runtime link. It's a pain, and an unnecessary headache. I'm more than happy to help distribute the source I built against, but I don't want it GPLing my app in the process.

      So, the freedom I want is the freedom to license my code as I see fit, while still making use of the high quality of free software (libraries) and supporting them with bugfixes, patches, and another distribution point. With the GPL, you're really only free to make more GPL software. Part of freedom is allowing people to do things you don't like and/or don't agree with. That part seems to have been lost here.

      I've been moving my own personal released code to BSD lately, and my professional code, well, is largely internal apps for my employer.

    60. Re:Python? by Anonymous Coward · · Score: 0
      Maybe I've been looking at code too long today, but the first thing that came to mind is you have order of operations wrong.

      Should be (chair != discus) && (chair != frisbee)

    61. Re:Python? by bigstrat2003 · · Score: 1

      make sure others can make changes to it too. That is precisely the unreasonable part. If you're truly embracing freedom of software, then that means you embrace it fully, not saying "You can contribute, but only if you do so in a way which is acceptable to me". Either you're giving up your work to the community, or you're not. The GPL tries to do both at the same time, when it really needs to just pick one.
      --
      "16MB (fuck off, MiB fascists)" - The Mighty Buzzard
    62. Re:Python? by fyngyrz · · Score: 4, Insightful

      ...the licenser, who is free to refuse to fix the bugs or demand exhorbinate fees to do so. Same with new features or support.

      To be fair, a proprietary licenser is also free to fix the bugs ASAP and well, provide such fixes for free, also to provide new features for free if they like. I do this all the time with a commercial application. A PD author also retains such freedom. These are not benefits that exclusively arrive via the GPL. And it is well to consider that with a GPL, PD or commercial application, one is free to demand money to fix something, to add features to it, to explain or teach its use, or even to simply use it. Doesn't mean you'll get it, but it doesn't mean you won't, either.

      If you wouldn't do this to someone directly then giving code to someone else so they can do it is unethical.

      I don't think you've really analyzed this far enough. Giving someone something, and then telling them what they can and cannot do with it, carries ethical problems in the form of imposing your will on someone else (and it also devalues the gift, in my personal opinion.)

      "Here's a gift of a book; but you can only read it if you use LED lights." "Here's a gift of a cat; but you can only have it if you'll eat it." "Here's a gift of a some money, but you must spend it upon me."

      You see? This is why the term "freedom" has always seemed to go so poorly with the coercive requirements that the GPL applies to the various recipients in the chain of "gifts."

      --
      I've fallen off your lawn, and I can't get up.
    63. Re:Python? by Anonymous Coward · · Score: 1, Insightful

      His point is blindingly obvious and it's well known to anybody familiar with the GPL, so I can only imagine you are being dense on purpose. You are going around saying that the GPL has restrictions on use. It does not. It restricts distributing copies. You are free to use GPLed software any way you see fit. It is only when you distribute copies that you need to follow the rules laid out in the GPL. If all you are doing is using the software, you don't need to agree to the GPL at all.

    64. Re:Python? by Anonymous Coward · · Score: 0

      Well that assertion was a massive FAIL. I make quite a living thanks to the GPL and I know tons of others who do the same. It's great that you and others are able to make money with GPL software. However, you must be able to understand that a developer using third-party code has more freedom when that code is licensed under MIT, BSD, zlib, or similar licenses, as opposed to GPL or LGPL. That is the assertion implied by the previous poster's "you're free to do as we tell you" categorization of the GPL. As someone else pointed out, you would be obtuse not to realize or admit that.
    65. Re:Python? by legutierr · · Score: 5, Interesting

      He said he wanted a flat-file database. Why, on this Earth, would he ever need "standard SQL including joins." SQL is designed for relational databases and, in particular, joins are only EVER used in a multi-table, relational database. In fact, the guy even said "SQL is overkill". First of all, my point was that in comparison to a python-only tool like dbtxt, sqlite is probably worth the additional memory overhead of a couple hundred kilobytes.

      Second, I'm not sure that you know any better than I do what the poster really needs. Open office calc might be an option, but certainly not if 800k is too much space; open office is what, like 200 megs? And dbtxt might also be an option, if doing everything in Python is what the person wants; I love Python, but there are plenty of people who don't. I'm sure that all three proposals are equally valid.

      Now, to defend SQLite: in most cases, dealing with a relational database is "overkill" not because of SQL per se, but because of the fact that software needs to be installed and configured*, and because complex sets of processes need to be managed and maintained. SQLite is useful, in part, because it provides the functionality of a relational database without the complexity of the engine. Now, if you don't want or need SQL, then you might not consider that particular feature to be of particular benefit. Nonetheless, there are many situations where SQL might not be required, but where it might be useful, where in the past SQL might not have been used, but where now, because of SQLite, it will be used. There are very few cases where real-world information is not most accurately represented as relational data (in comparison to flat data). SQLite allows you to avoid making compromises regarding the way that that data is stored. And SQLite is fast.



      *(Although some interpreted languages might require that sqlite's libraries be installed on a system for it to be used by a program, that is not the case for compiled languages like C, C++, Obj-C, etc., where the sqlite libraries can be compiled directly into the code distributed to end users.)
    66. Re:Python? by MSG · · Score: 2, Informative

      I'm sure it's just me.

      It's not just you. Python exposes the locking mechanisms of the underlying platform and doesn't try to abstract any further than that.

      If you want simple, portable locking, use this recipe from ASPN:
      http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65203

    67. Re:Python? by mlwmohawk · · Score: 1

      I can't legally utilize GPL'd source code within a commercial application without doing some very specific (and not always possible) things that the GPL license instructs me I must do.

      You can absolutely create a commercial application sbased on GPL code. No one stops you from charging for distribution and packaging.

      What you can't do is take code, written by someone else, funded by someone else, made available to you under the condition that any changes you make to the code which doesn't belong to you, be made available under the same conditions.

      If that small and simple condition is too much of a burden, don't use it.

    68. Re:Python? by moo083 · · Score: 1

      That's exactly what I was gunna say. It's tiny. You can find GUI SQLite for Windows all over the place. Can't remember the name of the one I used offhand, but its not hard to find. And it saves into one simple file wherever you want, so it is very portable.

    69. Re:Python? by larry+bagina · · Score: 1

      You're describing the LGPL.

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    70. Re:Python? by legutierr · · Score: 1

      Like I said, dbtxt looks cool. And I agree with you that the thought of reading through sqlite's code to find a bug or add functionality is not attractive. But sqlite is on a totally different level of reliability; the fact that it is at the core of the iPhone's data management points to the level of confidence that people have in it. And it is what it is: if you need to do more than what an ACID-compliant, SQL-based relational database system can do, SQLite is probably not for you; but there are very few things that you can't do with an ACID-compliant SQL-based relational database system. And the fact is that 800k is an exageration (we were all mistaken about that). The SQLite c library is actually closer to 250k in size (http://www.sqlite.org/about.html).

    71. Re:Python? by blazerw · · Score: 1

      PD source allows you more freedom(s) at the user end Nope. User's have the same rights with both.

      At the authorship end, PD software gives you the right to piss your ideas away (or, to be more clear, write your brilliant code in obscurity while somebody else steals it and takes credit). GPL software provides motivation for improving the code by giving credit and takes away the freedom to steal.

      I'm OK with that.

    72. Re:Python? by Anonymous Coward · · Score: 0

      If that small and simple condition is too much of a burden, don't use it.

      Which I think was his point. PD is better in his opinion because he finds it less restrictive. Slashdot is so irritating sometimes with it's vitriolic and condescending members who think that their brand of OSS religion is the only religion and all other infidels should be hung.

    73. Re:Python? by jelizondo · · Score: 1

      The mistake is that they are charing money instead of charging


      Sorry, couldn't resist!

      --
      Be very, very careful what you put into that head, because you will never, ever get it out. - Cardinal Wolsey
    74. Re:Python? by Anonymous Coward · · Score: 0

      Be careful who you blame in the "not possible" argument. It could just be the other guy is at fault, not the GPL. E.g. Microsoft's new open protocols effectively prohibit use with GPLed code.

    75. Re:Python? by fyngyrz · · Score: 4, Insightful

      I can only imagine you are being dense on purpose

      Your imagination, not to put too fine a point on it, has failed you.

      You are going around saying that the GPL has restrictions on use. It does not

      Yes, in fact, it does.

      I have come across a snippet of GPL'd source code. I want to use it in my gigabyte of source code commercial app, which, prior to such inclusion, is legally mine to distribute, which is a use I make of this object, that is, my application. However, as quite common in commercial efforts, I cannot legally distribute the source code of my application. So, one day I use the GPL'd source code by compiling said GPL source into the commercial app. I mod it to better suit my use of it. My app is suddenly subject to a change in usability, imposed by the GPL, such that I no longer have the option of using the same way (which act can also be characterized as distribution) to earn money, and my customers no longer have the option to use my altered application. This viral alteration of the usability of my application is entirely courtesy of the GPL. In order to reverse this alteration and keep the code snippet in use in the application, I must perform actions that I actually do not have the option of choosing due to previously existing obligations (essentially source code distribution.) The end result is that the GPL'd code cannot be used if the commercial application is to remain usable.

      To be blunt, the word "use", (as well as all of its natural permutations) which you depend upon so heavily in your flawed analysis, doesn't have the limited meaning you wish it had — nor has it ever, or will it ever, have such a limited meaning. This is why your argument is specious.

      --
      I've fallen off your lawn, and I can't get up.
    76. Re:Python? by hairyfeet · · Score: 1

      Uh-Doesn't Calc require Java for some of its functionality? he said No Java so I'm guessing anything with Open Office is right out,otherwise I would suggest the database that comes with Open Office. For a simple little thing like he is doing the wizard can have him up and running in under five minutes and from my experience it is pretty solid. I gave away an old 350Mhz running Linux(Puppy or DSL) and the old 1.X version of Open Office awhile back and they are still using the little databases I cooked up for them in the Wizard for keeping track of donations and expenses and after a year of pretty constant use it still is doing its job. Last I heard the pastor even had his assistant cook up a little database for him to keep his sermons on so he can search by subject. For a simple little data job you really can't beat it IMHO. But that is my 02c,YMMV

      --
      ACs don't waste your time replying, your posts are never seen by me.
    77. Re:Python? by fyngyrz · · Score: 1

      Nope, not a troll. An offering of useful features; PD is a superior distribution mechanism for end users in terms of the freedoms that attach to the project, that's all.

      --
      I've fallen off your lawn, and I can't get up.
    78. Re:Python? by jake_fehr · · Score: 1

      Since most I know who list an absolute F/OSS requirement do so solely because they wanted to use other people's work without paying for it, I suspect the original poster wasn't all that interested in altruism anyway. I agree with you, but with a slightly different rationale. The original poster stated that the program must work with Windows Vista. I don't know anyone who is really gung-ho about F/OSS that doesn't use a distribution of GNU/Linux...
    79. Re:Python? by Anonymous Coward · · Score: 0

      BSD = short term freedom that encouraging forking and lack of contribution. GPL = long term freedom that encourages working together and contributing back due to license propagation. The GPL is superior.

    80. Re:Python? by Anonymous Coward · · Score: 0

      I can't legally utilize GPL'd source code within a commercial application without doing some very specific (and not always possible) things that the GPL license instructs me I must do. Any other ways I can help with your basic F/OSS education? I'll be here all day.

      Sure you can; just buy it from the authors under a different license. The GPL doesn't prevent you from doing that.

    81. Re:Python? by fyngyrz · · Score: 2, Informative

      But sqlite is on a totally different level of reliability; the fact that it is at the core of the iPhone's data management points to the level of confidence that people have in it.

      Wait a sec... That's not reliability; that's confidence. Reliability is a performance metric; confidence is not. I suspect — looking at some relevant SQLite pages — that dbtext might actually be more reliable, because my bug list is at zero and has never moved off zero since release, though it is used thousands of times every day just in my own venues. I have no idea how much others use it, though. ;-)

      --
      I've fallen off your lawn, and I can't get up.
    82. Re:Python? by fyngyrz · · Score: 1

      Python exposes the locking mechanisms of the underlying platform and doesn't try to abstract any further than that.

      Ew.

      use this recipe from ASPN:

      Link doesn't work... ?

      --
      I've fallen off your lawn, and I can't get up.
    83. Re:Python? by mlwmohawk · · Score: 1

      PD is better in is opinion because he finds it less restrictive.

      I think that is really a cop-out. It isn't about OSS religion, it really is simply about good manners, i.e. make available to other that which was made available to you.

    84. Re:Python? by The+End+Of+Days · · Score: 2, Funny

      So to sum up your post, you're free to do whatever you want, so long as we tell you that you can.

      Yeah, I don't think you made your point too well. Now ease down, sparky.

    85. Re:Python? by Sentry21 · · Score: 1

      But the GPL doesn't just limit corporations from making and selling products; keep in mind that it also prevents a lot of code-sharing between open-source projects.

      For example, the BSD kernels can't accept any code from Linux that might happen to benefit them (or any other GPL'ed code), but FreeBSD's license hasn't stopped them from adding support for ZFS and Dtrace, for example, as OS X has also done.

      In comparison, Linux can add neither ZFS nor Dtrace without completely re-implementing them from scratch (or Sun changing the licensing from their current open-source license to one that's GPL-compatible, which they shouldn't have to do).

    86. Re:Python? by fyngyrz · · Score: 1

      Everything in your power, eh? Flying to Washington tomorrow, are you? I'll keep an eye on CNN. :-)

      --
      I've fallen off your lawn, and I can't get up.
    87. Re:Python? by legutierr · · Score: 1

      I would say both that it is reliable and that people have confidence in it; people have confidence in it because it is reliable, and because many people use it, its reliability increases as bugs are found and corrected.

      I do want to thank you for showing me dbtxt, though. Your point that distributing a single file is very easy is well taken. It seems like an especially good thing to use if you are distributing a script to a machine the configuration of which you are unfamiliar with.

    88. Re:Python? by noidentity · · Score: 1

      Oh, the GPL doesn't give you the freedom to release non-free software? Who'd benefit if it allowed that? Oh, right, people like you, and at the expense of end-users.

    89. Re:Python? by fyngyrz · · Score: 1

      With PD code, you *do* own the code. Everyone owns the code. So you can do anything you want. Now that is good manners.

      --
      I've fallen off your lawn, and I can't get up.
    90. Re:Python? by fyngyrz · · Score: 1

      You just need a disclaimer and the declaration of the PD gift.

      --
      I've fallen off your lawn, and I can't get up.
    91. Re:Python? by fyngyrz · · Score: 1

      ...or just put it out anonymously, for that matter. Hard to sue "anonymous", though sometimes on slashdot the urge does, I admit, arise...

      --
      I've fallen off your lawn, and I can't get up.
    92. Re:Python? by Anonymous Coward · · Score: 0

      And here am I, having spent all of my mod points on lesser posts, albeit in more interesting stories, with nothing to offer except a "Well played, sir."

    93. Re:Python? by Hes+Nikke · · Score: 3, Funny

      SQL is designed for relational databases and, in particular, joins are only EVER used in a multi-table, relational database. I would like to know more about this single table relational database concept you just implied exists, where should I start reading? ;)
      --
      Don't call me back. Give me a call back. Bye. So yeah. But bye our, well, but alright we are on a shirt this chill.
    94. Re:Python? by MSG · · Score: 1

      Link works for me. What error are you getting?

    95. Re:Python? by Hal_Porter · · Score: 2, Funny

      I would like to know more about this single table relational database concept you just implied exists, where should I start reading? ;) Mod parent up. Pointing out subtle redundancy in statements in technical discussions is always Informative.
      --
      echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
    96. Re:Python? by Facetious · · Score: 1

      Wouldn't that be the logical equivalent of chair != (discuss || frisbee), or for those who speak English, a chair is neither discus (n)or frisbee. Your version is the same: a chair is not a discus and a chair is not a frisbee.

      --
      Let us not become the evil that we deplore.
    97. Re:Python? by mlwmohawk · · Score: 2, Interesting

      With PD code, you *do* own the code. Everyone owns the code. So you can do anything you want. Now that is good manners.

      There is a philosophical position that I think is important. The term "share and share alike" is something that most kids have learned in childhood for centuries for the greater good of society. The GPL simply puts that in the license.

      I am a capitalist, seriously, I honestly think that real people deserve real compensation for their work. Actually, let me rephrase that, people have the right to try to get compensation for their work.

      The BSD license makes no philosophical statement, and that is sad. I honestly believe that if you put your code out there for someone to use you should try to get something for it. Your life, the time you spend writing the code, is valuable. Make it worth something.

    98. Re:Python? by Anonymous Coward · · Score: 0

      Plenty of big guys [ RedHat ] and smaller guys [ DeveloperSide.NET ] making money from GPL.

    99. Re:Python? by jhol13 · · Score: 3, Informative

      dbtxt can only handle ASCII (<128 so even ISO-8859-1, etc. are no-no). This can be killer (it is for me).

      Other than that the dbtxt looks very nice indeed.

    100. Re:Python? by Binary+Boy · · Score: 3, Informative

      Never used a self join? I mean I'm no relational database theorist, so maybe you're correct on some level, but one can certainly create relationships between data stored in a single table.

    101. Re:Python? by gsmalleus · · Score: 1

      He said he wanted a flat-file database. Why, on this Earth, would he ever need "standard SQL including joins." SQL is designed for relational databases and, in particular, joins are only EVER used in a multi-table, relational database. In fact, the guy even said "SQL is overkill".

      Joins can be used to join a single table to itself. It is called a self join when used in this way.

      IMO, SQL is not overkill. It can be much more useful and faster than flat files.
    102. Re:Python? by Anonymous Coward · · Score: 0

      Care to tell me exactly what the user of GPL software is not free to do? Otherwise maybe you'd like to retract your casual FUD-spreading aside. Combine it with any of the bazillion other things that aren't GPL'd and can't be, and redistribute it even if you want to give it away.
    103. Re:Python? by totally+bogus+dude · · Score: 5, Funny

      That'd make the first one a shameful link, yes?

    104. Re:Python? by lysse · · Score: 2, Insightful

      Them's the breaks, if you want to use the code. If the licensing terms of the GPL are too onerous for you, then that's fine - don't use it. Just don't try to bullshit the rest of us because you're peeved that you can't have a freebie. It makes you look cheap and awfully transparent.

    105. Re:Python? by Keramos · · Score: 1

      Link seems to work for me, too.

    106. Re:Python? by abigor · · Score: 1

      So I'm being victimised by my copy of Skype, one of the most useful apps on my computer? I had no idea.

      Uh-oh, Parallels is over there leering at me - help, help, I'm being oppressed!

    107. Re:Python? by QuantumG · · Score: 1

      Try to get Skype to fix one of the thousands of reported bugs in their product, then you'll know why you're a victim.

      --
      How we know is more important than what we know.
    108. Re:Python? by abigor · · Score: 1

      He understands it perfectly well, and from many developers' perspectives, it makes the GPL cripplingly unfree. I personally don't feel that way, but a lot of people do.

      Anyway, it doesn't matter, as every single day people roll fully GPL'd code into proprietary products with none the wiser. I've seen it happen many, many times. Licenses aren't really given a whole lot of respect in the software development world, particularly in the non-West. I'm sure most of the free software keeners on Slashdot would be appalled at how blatant and common this is.

    109. Re:Python? by zzatz · · Score: 1

      "Here's a gift of a book; but you can only read it if you use LED lights." ...

      The GPL specifically places NO restrictions on use. You do not need to agree to the terms of the GPL in order to use GPL software. The terms come into effect only when you redistribute it. In essence, the only restriction imposed by the GPL is to prohibit imposition of any other restrictions. If that is too much of burden for you, what additional restrictions did you want to impose?

      Again, the GPL does not limit users in ANY way. It prevents publishers from adding limits, preserving the freedom of the users.

    110. Re:Python? by Anonymous Coward · · Score: 0

      OK, dbtxt looks interesting, but SQLite is very stable (it's used as the data storage in the iPhone, in Firefox, and in Skype, for example),

      SQLite is also one of the backends for OS X's Core Data API.

    111. Re:Python? by abigor · · Score: 2, Insightful

      I use it every day in my business - works great. But now my happiness is tainted by my victimhood. Perhaps spending some of those thousands of dollars I've saved on phone calls will make me feel better though.

      In other words: get some perspective. People who get raped or murdered are victims. People who use proprietary application software run the spectrum from happy users to suckers, but that's about it.

    112. Re:Python? by QuantumG · · Score: 0

      So basically, you're saying that if you're not being raped or murdered then you have nothing to complain about.

      What a wonderful life you must lead.

      --
      How we know is more important than what we know.
    113. Re:Python? by Jason+Earl · · Score: 1

      To be fair, a proprietary licenser is also free to fix the bugs ASAP and well, provide such fixes for free, also to provide new features for free if they like. I do this all the time with a commercial application. A PD author also retains such freedom. These are not benefits that exclusively arrive via the GPL. And it is well to consider that with a GPL, PD or commercial application, one is free to demand money to fix something, to add features to it, to explain or teach its use, or even to simply use it. Doesn't mean you'll get it, but it doesn't mean you won't, either.

      The difference between Free Software and proprietary software is that if the software is Free the client has the source code they aren't dependent on you. If you aren't going to abuse the client, why not give them the source code?

      I don't think you've really analyzed this far enough. Giving someone something, and then telling them what they can and cannot do with it, carries ethical problems in the form of imposing your will on someone else (and it also devalues the gift, in my personal opinion.)

      End users of GPLed software are free to use the software however they wish. They only thing that they can't do is take away those same rights from anyone else they share the software with.

      To use your crappy book example GPLed hackers are giving you a book and they are allowing you to copy it, share it with your friends, change it, and use it however you want. However, they do ask that if you share the book with your neighbor that he should get the same rights that you were given.

      The whole point is that the right to use, copy, and modify the software is available to everyone that gets a copy.

      You on the other hand want to take the book that was given to you as a gift, and share it with other people without giving them the same rights that you were given. You are the one "imposing your will" on others, and you didn't even write the software in the first place (otherwise it would have a different license).

      "Here's a gift of a book; but you can only read it if you use LED lights." "Here's a gift of a cat; but you can only have it if you'll eat it." "Here's a gift of a some money, but you must spend it upon me."

      You see? This is why the term "freedom" has always seemed to go so poorly with the coercive requirements that the GPL applies to the various recipients in the chain of "gifts."

      Except that's not what the GPL does at all. You can use GPL software however you like. The only thing that you can't do is distribute GPLed software (or derivatives of GPLed software) under a license that takes away the freedoms that you were given.

      The only time that the terms of the GPL become onerous is when someone wants to take software that someone else has written and release it as part of a proprietary program.

    114. Re:Python? by Jason+Earl · · Score: 4, Insightful

      Why should the GPL hackers share with you if you aren't willing to share with them?

      You don't like their license. That's fine, they don't like your license either.

    115. Re:Python? by Anonymous Coward · · Score: 0

      Uh, consider a schema whose primary keys are id_1, ..., id_n, such that two rows have the same id_1 if they belong to the same person. How would you analyze the other key fields? (Hint: joining on id_1)

      A relation is just a subset of the Cartesian product of a set of data. Nobody ever said you can't join the same set against itself.

    116. Re:Python? by kjots · · Score: 2, Informative

      (God, I don't know why I keep reading Slashot comments, I really don't; but I guess an eleven year habit habit is hard to break...)

      Let's start with the obvious, shall we?

      With the GPL, you're really only free to make more GPL software.

      That's the whole bloody point, except that instead of that second 'GPL' you should be saying 'copyleft'. The GPL and other copyleft licenses are specifically designed to prevent covered code from being used in non-copyleft projects. It's a basic design principal!

      ... the freedom I want is the freedom to license my code as I see fit ...

      You still have that freedom, you just don't have the freedom to relicense other people's code. Not even the BSD style licenses allow you this so-called 'freedom'.

      ... when it comes to library code that [other] folks have ... [I'm] just using it ...

      I added that [other] above to emphasize my point - that it's other people's code that you want to use. You didn't write it, so you can have no expectations that you should be allowed to use it. In this case, these other folks have decided to let you use the code that they have written, but only under their terms. You either have to agree to these terms, rewrite the library so that you can release the code under your own license, or bitch and moan about how unfair it is that you can't just do whatever the fuck you want with other people's hard work (you appear to have chosen the latter).

      Freedom does not mean being able to do whatever the fuck you want to do - that's anarchy, and it doesn't work. Freedom is having a set of universally recognized rights, and the means to enforce those rights on those that seek to trespass against them. Like copyright - it gives you (and only you) the freedom to do whatever you like with your work, and the power to prevent other people from doing whatever they like with your work. In this instance, QuasiEvil, you are the other people.

      Until everyone can be trusted to just 'do the right thing' (whatever the hell that is), freedom will always mean trading some small convenience (like the ability to walk into my neighbours house and take his stuff) for a larger convenience (like not having people walk into my house and taking my stuff). The GPL is no different.

      The truth is that is is possible to circumvent the GPL (i.e. to mix GPL and non-GPL code in the same project) - you just have to ensure that, when you are running the non-GPL code, the CPU's instruction pointer never refers to a block of GPL-covered code. You can achieve this by using networking and/or message passing techniques to pass information from one module to another, without requiring your non-GPL module to be linked with the GPL module. Yes, it's a fuck around, but one again we are simply trading a small convenience for a larger one.

      This post is from someone who releases code under the GPL to everyone in this forum that bashes the GPL at every opportunity (like the first poster). I've made my decision and I'm comfortable with it, so you might as well just shut the fuck up - you're bitching about something that no-one has any intention of changing.

    117. Re:Python? by poopdeville · · Score: 3, Informative

      No, he's completely wrong. A relation is a subset of the Cartesian product of sets. And one can form the Cartesian product of a set with itself. For example, the plane is realized by the product RxR.

      --
      After all, I am strangely colored.
    118. Re:Python? by poopdeville · · Score: 1

      That's a pain in the ass. Why bother implementing something like that, poorly, when SQLite does it already? I have a life, and sometimes it needs a small database. It doesn't need to write a small database.

      --
      After all, I am strangely colored.
    119. Re:Python? by poopdeville · · Score: 1

      YAML Ain't a Database. You're thinking of YAAD.

      --
      After all, I am strangely colored.
    120. Re:Python? by Waffle+Iron · · Score: 1

      You just need a disclaimer and the declaration of the PD gift.

      Then there's no legal requirement (like the BSD license has) for a 3rd party to distribute your disclaimer with your code. It's likely that end users won't even have a chance to see it.

      And the idea of trying to distribute anything more than a toy program anonymously is plain silly. How many hoops would you have to jump through to communicate with users or contributors while avoiding being tracked down? Just slap a BSD license on the damned thing and be done with it.

    121. Re:Python? by mabhatter654 · · Score: 1

      better answer is that it's already built in to FireFox 3! All you need is the manager plug in SQLite Manager and you can make your own entries right from the browser. Even includes create and browse which seems to be all this guy wants.

      It's also a real SQL database so when the time comes to grow again (and it will) simple SQL commands will be able to transfer your data to whatever new format you'll be needing.

      It took less time to get the plug-in, install it, and make a new database and table than it did to type in this post!

    122. Re:Python? by tonyr60 · · Score: 1

      Oh, I think most of the participants here are very familiar with using self join or whatever.

    123. Re:Python? by fyngyrz · · Score: 1

      Works now -- thanks

      --
      I've fallen off your lawn, and I can't get up.
    124. Re:Python? by scotch · · Score: 1
      The distinction between use and distribute in the context of copyright is clear and useful. Trying to blur the distintion in a discussion about copyrights seems, well, non-illuminating to put it mildly.

      Can we move this whole discussion to the dead-horse forum?

      --
      XML causes global warming.
    125. Re:Python? by fyngyrz · · Score: 1

      You're most welcome. I am delighted that you might be able to use my dbtext project somehow. Cheers!

      --
      I've fallen off your lawn, and I can't get up.
    126. Re:Python? by fyngyrz · · Score: 3, Insightful

      I honestly believe that if you put your code out there for someone to use you should try to get something for it. Your life, the time you spend writing the code, is valuable. Make it worth something.

      It's my code; I chose to make it PD; and I do get something for it, I get to add a shoulder to the wheel, as it were, if anyone will accept my contribution... and I enjoy the idea that the time I spent saves someone else some of theirs, hopefully such that they can create something above and beyond what I already did. Sometimes that's enough. I've gotten lots of help off the net, no strings at all -- so I don't find it at all peculiar to offer something back likewise sans strings.

      Some works we contribute; some things we ask a return for. I'm ok with both approaches, really, it is the ones in the middle (supposedly "free", but with substantial strings) that don't attract me either as a user or a contributor. That's just me. What seems to rile people up is if I talk about the reality of those strings. That's when we get these threadfests.

      --
      I've fallen off your lawn, and I can't get up.
    127. Re:Python? by Anonymous Coward · · Score: 0
      'Or' operation binds less tightly than inequality. Going by the C order of operations (which may or may not be what you're thinking of):

      Your first version is: A chair is not a discus, or a frisbee is true. This will be true if frisbee is true OR a chair is a discus.

      The parent is: chair is not a dicus, and chair is not a frisbe.

      Your second version is: the truth of dicus or frisbe is the same as the truth of chair. Ie, the problem in your versions is an implicit cast to bool near your logical or.

    128. Re:Python? by shaitand · · Score: 1

      'To be fair, a proprietary licenser is also free to fix the bugs ASAP and well, provide such fixes for free, also to provide new features for free if they like. I do this all the time with a commercial application. A PD author also retains such freedom. These are not benefits that exclusively arrive via the GPL.'

      That is a bit of a strawman don't you think? The parent said the GPL enables the licensee to fix these things without having to count on the goodwill and/or charity of the licensor. That is a benefit exclusive to free (as in freedom) licenses like the GPL.

      'You see? This is why the term "freedom" has always seemed to go so poorly with the coercive requirements that the GPL applies to the various recipients in the chain of "gifts."'

      Coercive in what manner? The GPL does not add restrictions, the GPL relaxes restrictions that exist by default. Are those relaxations conditional? Yup. But that hardly makes it 'coercive'.

      You have the choice to not use the GPL software, or not use it in a way that requires you to adhere to the conditions, nobody is coercing you to take advantage of this resource someone has kindly made available to you. Thats like complaining because I've offered you use of my Ferrari with the condition you don't wreck it. Am I coercing you by allowing you every freedom but the right to wreck my car?

      In my experience those who complain about the GPL are either pushing an agenda (their own pet license) or want 'freedom' to abuse users down the line in ways that conflict with the principles of the GPL in the first place. I love nothing more than to listen to people sputter about how they are being 'coerced' because they are not allowed to build the tower of london on a GPL foundation but those mean GPL foundation builders are making them build their own foundation for their prison.

    129. Re:Python? by Anonymous Coward · · Score: 0

      Yes, you can. You only need to call the Copyright owner and negotiate another license.

    130. Re:Python? by XNormal · · Score: 3, Insightful

      How is this moderated as "informative" when it contains blatantly incorrect information? SQLite is most definitely present in all Python 2.5 installations. It's part of the Python source tree. It's as much a part of the Python distribution as the regular expressions library you use in your code. And if you insist on using an older version of Python SQLite is just one apt-get away.

      In what specific ways does the supposed "bloat" of SQLite affect the user, exactly?

      What kind of "maintenance" does the user need to do on the SQLite source code? It's maintained well enough for some some pretty big users. Who maintains your code and why should I trust you with my data?

      How can SQLite be "difficult to use" when it's just standard SQL with a standard Python DBAPI interface?

      It's really nice that you wrote a cute little datastore. But there's no need to badmouth what you perceive as the competition.

      --
      Stop worrying about the risks of nuclear power and start worrying about the risks of not using nuclear power.
    131. Re:Python? by shaitand · · Score: 1

      Of course you can, you simply release that application under an abusive license. After all the rights provided by the GPL are fundamental rights that everyone should have with all software.

    132. Re:Python? by Anonymous Coward · · Score: 0

      Why don't you just shut up? Nobody wants to hear what you have to say.

    133. Re:Python? by Lord+Bitman · · Score: 1

      Try this (written but not tested):

      #!/bin/bash
      tgz_file="$1"
      if [ "${tgz_file#/}" -eq "$tgz_file" ]; then
              tgz_file="$(pwd)/$tgz_file";
      fi
      temp_dir="TGZ_TEMP_$(RANDOM)"
      mkdir "$temp_dir"
      cd "$temp_dir"

      tar -zxvf "$tgz_file"

      cd ..

      i=0
      for f in "$temp_dir"/*; do; i=$(($i + 1)); done
      if [ "$i" -lt "2" ]; then
              #only one (or empty), so move it back to the run dir
              mv "$temp_dir"/* .
              rmdir "$temp_dir"
      else
              #some asshole didn't include a wrapper directory, so make one ourselves
              dir="${tgz_file#*/}"
              mv "$temp_dir" "${dir%tar.gz}"
      fi

      --
      -- 'The' Lord and Master Bitman On High, Master Of All
    134. Re:Python? by Lord+Bitman · · Score: 1

      It is giving up the work to the community, it just has a more specific definition of "the community" than you do. The GPL is for giving code to "the community of those who are willing to share how they improved what they are sharing", not "the all-encompassing community of sapient beings".

      --
      -- 'The' Lord and Master Bitman On High, Master Of All
    135. Re:Python? by Anonymous Coward · · Score: 0

      I was going to recomend something that I personally use, FileMaker Pro 3.0, BUT...If I started over from scratch...

      Honestly and truly?
      SQLLite Manager. I think I could train a monkey to use it.

    136. Re:Python? by Anonymous Coward · · Score: 0

      I do make the time I spend writing code valuable. I take that code and I *put it to use*. The value of my code to me is in the application of it, not in the act of authorship.

    137. Re:Python? by Yvanhoe · · Score: 1

      Python can store lists in a dictionary (that is a hash table). It has a sort and a find function. It can easily marshal structures into a file. If you are ready to use python, chances are you will be able to code quickly what you need without relying on external packages.

      --
      The Wise adapts himself to the world. The Fool adapts the world to himself. Therefore, all progress depends on the Fool.
    138. Re:Python? by Anonymous Coward · · Score: 0

      Why not just use an XML file and and use it with .net framwork/ado.net

      Vista would have the .net framework installed by default and you would be able to even create a simple app to manage the file... (possibly without even writing any code, if you also have Visual Studio or one of the express editions that is)

    139. Re:Python? by greebowarrior · · Score: 1

      nonono, abuse is room 12, this is room 12A

    140. Re:Python? by xtracto · · Score: 1

      Why should the GPL hackers share with you if you aren't willing to share with them?

      You don't like their license. That's fine, they don't like your license either.


      All that is well and good, but do not go saying that the GPL is a "Freedom" license. GPL code is not free as in Libre, it is free as in "play by my rules or I take my ball and go out whining". Similarly to whatever close license.

      IMHO a real Free license is BSD and MIT and similar licenses. Those really allow you to freely use the code in any way you want, for any projects you want.

      --
      Ubuntu is an African word meaning 'I can't configure Debian'
    141. Re:Python? by solferino · · Score: 1

      Read the question again. The person is wanting to find some software to use for a particular application. He says nothing about using the code. The GPL puts no constraints on use of software. There are constraints on use of the code. You are being deliberately obtuse to make a point that is precious to you and has no relevance to the original question - i.e. you are trolling.

    142. Re:Python? by bestinshow · · Score: 2, Insightful

      IMO, SQL is not overkill. It can be much more useful and faster than flat files. In addition, there is a strong chance that this small personal project will grow, and then require more tables, and therefore you might as well do it this way from the start to avoid the common issue of extending the wrong solution too far because you don't want to change over to the right solution.

      Otherwise just use CSV and be done with it. I bet anyone here, in their language of choice, could write a fairly fully featured CSV based datastore (create/read/update/delete) tool in a few hours, especially if the application just reads it in at start, manipulates the dataset in memory, then writes it out.
    143. Re:Python? by mrbluze · · Score: 1

      Why not sqlite? And sqlite in C++ with wxwindows (for example) is dead easy to impliment. Nice encryption too!
      --
      Do it yourself, because no one else will do it yourself. [beta blockade 10-17 Feb]
    144. Re:Python? by fishdan · · Score: 1

      I think it's safe to assume that when the OP said "a commercial application" he/she was talking about something in distribution

      --
      Nothing great was ever achieved without enthusiasm
    145. Re:Python? by quintesse · · Score: 1

      I think the slaves in the Americas would have been delighted by your definition of "free" ;)

    146. Re:Python? by Adrian+Harvey · · Score: 1

      I would like to know more about this single table relational database concept you just implied exists, where should I start reading? ;)

      I would have thought almost any database theory book would do, after all the "relation" in a relational database is between the primary key of a tuple and the elements (think mathematical relationship - eg: x=y*2 where x is integers 1 to 10 and write that as a table with columns for x and y and you'll get the picture)

      However outside of theory most things that are called relational databases do have lots of tables and SQL engines and so on....

    147. Re:Python? by Anonymous Coward · · Score: 0

      Then do what you should be doing for a commercial application: Write your own. Stop trying to pilfer other people's work, turn around and sell it.

    148. Re:Python? by Jeremy+Visser · · Score: 1

      What a stupid git he was, then.

    149. Re:Python? by maxume · · Score: 1

      The parent to my post is blurring it more than I am.

      --
      Nerd rage is the funniest rage.
    150. Re:Python? by Timothy+Brownawell · · Score: 1

      made available to you under the condition that any changes you make to the code which doesn't belong to you, and any code which talks to it too closely,

      be made available under the same conditions.
    151. Re:Python? by bigstrat2003 · · Score: 2, Insightful
      It's more specific than even that, otherwise the GPL should have no problems with people using GPL code in BSD-licensed projects. The fact of the matter is, the GPL doesn't really promote freedom like it claims to. That's the problem, that it talks the talk but doesn't walk the walk. If the GPL wasn't touted as promoting freedom so much, I wouldn't have a problem with it. As it is, it's sheer hypocrisy, and I despise it for that.

      Besides, you don't think it's a bit rich to try to restrict "the community" to what you want it to mean, rather than the natural interpretation of the word?

      --
      "16MB (fuck off, MiB fascists)" - The Mighty Buzzard
    152. Re:Python? by coolGuyZak · · Score: 1
      Or if the user wants to mix and match source from projects with conflicting licenses. There was a big tiff in open-source circles a few years back because you couldn't mix BSD and GPL code--the 'advertising' clause was seen as an additional, and incompatible, restriction on the license. From an ethical standpoint, I prefer the 'more free' BSD license, because it places only trivial limits on the potential of the code--give credit, and authors can't be sued if the code breaks.

      I also prefer it from a practical perspective. Code that is folded into commercial/proprietary code bases can see more use, compared to GPL'd solutions. This means 'more eyes' on the problem, and, with adequate community support, often contributions as well.

      Of course, my generosity may be abused. I say, "Let that rest on the conscience of others, I've got code to write."

    153. Re:Python? by Kyokushi · · Score: 1

      (God, I don't know why I keep reading Slashot comments, I really don't; but I guess an eleven year habit habit is hard to break...)
      If you're a slashdotter, you don't RTFA, and now you don't read the comments, what are you reading then?
    154. Re:Python? by odourpreventer · · Score: 1

      Uh, consider a schema whose primary keys are id_1, ..., id_n, such that two rows have the same id_1 if they belong to the same person. How would you analyze the other key fields? (Hint: joining on id_1)

      Call me prudent, but this sounds like bad database design to me, and inefficient. Besides, you're using a join where there's no relational integrity to consider, so why bother? Joins are time consuming.

    155. Re:Python? by Muad'Dave · · Score: 2, Interesting
      A single table relational query:


      select * from roles r1, roles r2, roles r3, roles r4, roles r5, roles r6 where r1.costar=r2.actor and r2.costar=r3.actor and r3.costar=r4.actor and r4.costar=r5.actor and r5.costar=r6.actor and r6.name='Kevin Bacon";

      --
      Tiller's Rule: Never use a word in written form that you've only heard and never read. You will end up looking foolish.
    156. Re:Python? by AmiMoJo · · Score: 1

      Abuse is down the hall over at Kuro5hin.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    157. Re:Python? by Anonymous Coward · · Score: 0

      I can't fathom why some seemingly intelligent people have such a hard time grasping this concept.

      It's the Seemingly part. Many people honestly are not as intelligent as you think. the GPL us an advanced topic that many do not have the brain power to grep correctly.

      These are the same guys that say "Assembly languange is dead" and "only idiots code in a dead language like C" They are seemingly intelligent, whereas if you look closer you will see that they are in fact, not.

    158. Re:Python? by morgan_greywolf · · Score: 1

      No, I'm not. While you could use a self-join (obviously) in a single-table database, you are STILL using (abusing?) relational database techniques, even though you aren't using more than one table. In any case, that's not even my main point and being pedantic about it serves little purpose here.

      The guy wants to a flat-file database. SQLite is not designed for implementation of a flat-file database, even though, yes, technically, it will certainly work.

    159. Re:Python? by thc4k · · Score: 1

      Just write down about 15 lines of python to save it as xml. Why even bother with any database? xml is as portable as it gets and you can actually type in entries with *scite*

    160. Re:Python? by morgan_greywolf · · Score: 1

      nonono, abuse is room 12, this is room 12A


      Yeah, yeah, I got that. I was making an additional joke on top of that by referring to the infamous room AT&T room 164A.
    161. Re:Python? by Lumpy · · Score: 1

      Wrong. I used the GPL in commercial money making applications all the time at comcast. we simply did not distribute it.

      --
      Do not look at laser with remaining good eye.
    162. Re:Python? by morgan_greywolf · · Score: 1

      In fact, there exists a Python module just for that purpose, and I'm pretty sure it's in the default Python distribution.

    163. Re:Python? by Lumpy · · Score: 1

      What I said was that the GPL imposes "you're free to do as we tell you" conditions while holding up PD in contrast.

      and this is different from commercial libraries and the Microsoft or other commercial compiler how?

      I suggest you READ the EULAS you agreed to as they are FAR MORE restrictive than the GPL is.

      --
      Do not look at laser with remaining good eye.
    164. Re:Python? by Junta · · Score: 2, Insightful

      Why is it overkill? Just because it *can* offer advanced features does not mean you must use those. It's just another DB implementation that happens to use SQL syntax as its query format. For basic stuff, SQL is very straightfoward (doesn't get much simpler than "select name from custromers where address like.."). The amount of setup is trivially the same as any other file (open/create a file just like anything else), and the space requirements are negligible.

      In response to the mentions of DB engines that use a human-readable format, my experience with those is that I gain practically nothing because I rarely end up reading the DB directly, but it is horrendously slow for many operations. Not much to gain, a lot to lose. When I do want a plaintext backup or something to read, it's a sqlite dump away. If the databse access are exceedingly rare, a plaintext may be 'enough', but at the end of the day, a solution like SQLite or a bdb setup is much more widely used and tested.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    165. Re:Python? by Anonymous Coward · · Score: 0

      It always burns me up when people make the "limit distribution" argument in conjunction with the GPL. No, the GPL does not preclude you selling your work, nor does is require that you give it away to the general public.

      However, it does require that you make your source code available to whom ever you sell your product to, and that you can not limit them from make the source available to the general public. If you are telling your customers, who are buying GPL'd products, anything different, then you are in violation of the GPL.

      The long term purpose of the GPL is to make all software freely available to anyone in source form. I'm not saying that this isn't a noble goal, but seemingly intelligent people who have actually read the document should get that the GPL does not allow any meaningful protections for software creators to limit their distribution to paying parties.

    166. Re:Python? by chriseyre2000 · · Score: 2, Insightful

      The GPL does not have to be the only licence on some code. If you find some GPL code that you want to use without invoking the GPL then cut a deal with the copyright owner of that fragment of code.

      Following the rules of the GPL is the price for using GPL code. If you don't like the price then either renegotiate it with the copyright owner or don't use it. This is no different to the licencing cost of a tiny part of a proprietry component suite.

    167. Re:Python? by Nimey · · Score: 2, Funny

      Stupid git.

      --
      Hail Eris, full of mischief...

      E pluribus sanguinem
    168. Re:Python? by hawkinspeter · · Score: 1

      Why would that be abusing relational database techniques?

      How about an EMPLOYEE table that has a primary key (ID) and a field called MANAGER that links to the primary key?

      --
      You're a temporary arrangement of matter sliding towards oblivion in a cold, uncaring universe
    169. Re:Python? by encoderer · · Score: 1

      You joke, but self joins are very powerful and useful in relational modeling.

      You can start reading here: http://www.google.com/search?q=self+join&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a

    170. Re:Python? by encoderer · · Score: 1

      OK... perfectly valid and all, but joining on the WHERE clause?

      Yuck.

      (I'm just being a little snarky. Any DBMS worth it's salt will execute the same query plan as it would if you did explicit INNER JOIN in the FROM clause, but if this was a code review and you were on my team, I'd be stressing the fact that join criteria is separate from product criteria and, as such, it should be kept separate)

      BUT... i did like the query.

    171. Re:Python? by Cokeisbomb · · Score: 1

      "[sic]" is the standard expression if you wish to inform readers that something is "not a typo". You use [sic] when quoting someone else and want to make it clear the mistake was made elsewhere. You don't use it just when people may not believe what you typed
    172. Re:Python? by pz · · Score: 1

      My understanding is that the notation [sic] is used when you want to present a quotation, that is, text you did not compose, containing an error, and you wish to reproduce the quotation accurately without giving the impression that an error has been introduced.

      Thus, the notation does not apply here.

      --

      Put my fist through my alarm clock with its ding-dong death inside my ear. - The Blackjacks.
    173. Re:Python? by Muad'Dave · · Score: 1
      Query was for humor, not speed, but your comments are perfectly valid.


      Maybe SQL needs a new construct just for the Kevin Bacon Problem:


      SELECT * from
      (for i = 0; i < 5; i++) {
      roles r[i] join roles r[i + 1] on roles[i].costar=roles[i + 1].actor
      } where roles[5].actor = "Kevin Bacon";
      --
      Tiller's Rule: Never use a word in written form that you've only heard and never read. You will end up looking foolish.
    174. Re:Python? by pz · · Score: 1

      The site ideaspike.com seems to be slashdotted. Anyone have a copy of dbtxt mirrored anywhere?

      --

      Put my fist through my alarm clock with its ding-dong death inside my ear. - The Blackjacks.
    175. Re:Python? by rkcth · · Score: 1

      I agree, but also projects tend to grow over time and SQLite would be a good choice even if you think its overkill because it could grow with the project enabling you to do more in the future if you wish. I learned long ago that if something takes 10% longer but gives you a better future path its well worth it. In life one thing is constant and that is change.

    176. Re:Python? by Anonymous Coward · · Score: 0

      Its just a software license; it doesn't preclude you from charing money for your work, and it doesn't mandate you make your work avaiable to the general public.
      Yet if I give the source to somebody who requests it under the GPL, they can give it to whomever they want. The GPL certainly doesn't explicitly state that I have to give my source to the general public, but it sure as hell implies it.

      I have no problem giving my source to the people that pay for my program. I think it's unethical not to. I have no problem with contributing back my changes to a GPL program. I have a problem with the source of my program going to the public at large. This is why I don't integrate GPL code in my application. I certainly follow the GPL (by not distributing code under the GPL without the accompanying source).

      Given that's the case, the GPL supporters cannot tell me that their code is free. No, it's not. It's locked up by a mechanism that you are ideologically aligned with. That's fine, and that's as it should be. You wrote the code, and you certainly have the moral, ethical, and legal right to do with it what you'd like. Just don't go spouting the party line that it's "more free than BSD". It's not. It's more open, in that you can see where it is used, but it's not more free. True freedom means having to tolerate those things that you find philosophically or morally offensive or wrong. (Preempt: It does not mean having to tolerate things that are illegal.)

      IMO, the people who still, after all these years, haven't figured out how to make money with GPL software are the failures, not the GPL.
      Just because somebody doesn't believe in your ideology doesn't make them a failure. While I understand the business model behind making money with GPL software, I choose to not pursue that route because I think that it's untenable in the long run. If the GPL gave true freedom, then this wouldn't be an issue, but since the GPL takes some sort of moon-logic stance on the subject of freedom, I do not. While Stallman likes to trot out references to Orwell in his speeches, one need only look at the GPL to see where he's coming from. "All developers are equal except for some which are more equal." "Freedom is the right of others to be forced into distributing my 'free' code the way I want it distributed."

      To which I reply: Ignorance is distributing your code under the GPL and calling it free. All Hail Big Brother Stallman!
    177. Re:Python? by dave420 · · Score: 1

      Most definitely. Heck, some of the most intriguing uses of SQL I've seen are self joins, turning a flat table into a tree of relationships.

    178. Re:Python? by Directrix1 · · Score: 1

      GPL unlimited use is a freedom provided to the end-user not to a distributor. There are no limits to what the developer can do with GPL licensed code assuming you don't distribute it. But there are limits to how you can distribute the resultant GPL'd code (assuming you don't own all the copyrights to the code). But you can definitely make money off of it. You can sell anybody's GPL'd code legally as long as you provide access to the source. That being said proprietary publication of binaries only is strictly forbidden and you are correct in asserting that.

      --
      Occam's razor is the blind faith in the natural selection of least resistance and in universal oversimplification. -- EF
    179. Re:Python? by roju · · Score: 1

      The fact of the matter is, the GPL doesn't really promote freedom like it claims to. Sure it does. The FSF has enumerated four freedoms that it considers essential to software. The GPL is designed to ensure those freedoms.

              * The freedom to run the program, for any purpose (freedom 0).
              * The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this.
              * The freedom to redistribute copies so you can help your neighbor (freedom 2).
              * The freedom to improve the program, and release your improvements to the public, so that the whole community benefits (freedom 3). Access to the source code is a precondition for this.
    180. Re:Python? by roju · · Score: 1

      As I mentioned elsewhere in this article, the GPL is certainly a freedom license. Back in the day RMS identified what he considers to be the essential software freedoms, and the GPL is designed to ensure those freedoms.

      The FSF freedoms:
              * The freedom to run the program, for any purpose (freedom 0).
              * The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this.
              * The freedom to redistribute copies so you can help your neighbor (freedom 2).
              * The freedom to improve the program, and release your improvements to the public, so that the whole community benefits (freedom 3). Access to the source code is a precondition for this.

    181. Re:Python? by abigor · · Score: 1

      You're being deliberately obtuse. You can complain all you want, but don't call yourself a "victim" - you render the term meaningless and no one will take you seriously. Victims tend to realise they are such - if you strolled up to the typical Skype user and said, "You are a VICTIM! Look how unfortunate you are!", they'd think you were crazy. And they'd be right.

      And I do have a wonderful life, thanks very much. I'm sorry yours sucks though.

    182. Re:Python? by bigstrat2003 · · Score: 1

      If you restrict freedom to "the freedoms I choose to embrace", how exactly are you promoting freedom?

      --
      "16MB (fuck off, MiB fascists)" - The Mighty Buzzard
    183. Re:Python? by matt_hs · · Score: 1

      No, actually, I'm not. If you keep the changes you make in house, for your own private use (to include an organization), you don't have to redistribute it. Once you start distributing it outside your personal realm or organization, then you need to make the source code available. The LGPL allows you to use a GPL-type program with non-GPL code.

    184. Re:Python? by Em+Adespoton · · Score: 1

      Sorry, I think you're in the wrong thread; abuse is one thread down.

    185. Re:Python? by matt_hs · · Score: 1

      What I said was that the GPL imposes "you're free to do as we tell you" conditions while holding up PD in contrast. Which is precisely accurate. PD doesn't impose such conditions; hence PD is a feature offered as compared to any GPL'd alternative. Since it is a feature that directly improves usability and lightens the conditions under which the user can sell, modify and redistribute the source code, I find it well worth mentioning.

      Bzzzzt, sorry, your explanation doesn't wash. If there was nothing else implied by your comment, then your commentary wasn't necessary at all. ". . . a completely free (PD) database engine . . ." would have served nicely.

      "you're free to do as we tell you" is your interpretation of how the license works. And I can concede that this statement is true, but why single out the GPL?

      • GPL-style "you're free to do as we tell you"
      • BSD-style "you're free to do as we tell you"
      • APL-style "you're free to do as we tell you"
      • MPL-style "you're free to do as we tell you"
      • Microsoft-style "you're free to do as we tell you"
      • (insert any license here)-style "you're free to do as we tell you"

      Any license except for PD (which isn't a license; it's more of a state or a condition of the code) is "you're free to do as we tell you". Your singling out the GPL implies you have something against it, implying some kind of unreasonableness (hence my comment). Otherwise, your statement should have been "(PD, not any 'you're free to do as we tell you' license)".

    186. Re:Python? by roju · · Score: 1

      Because it's impossible to have a reasonable discussion about a nebulous topic like "Freedom" without defining how we're going to use the term in the discussion. It's important to remember that with the GPL we're discussing user freedoms, not developer or corporate or world-at-large freedoms. And as far as a user is concerned, the FSF freedoms basically cover the whole space.

      Is there a problem with the FSF's definition of freedom for software users? How would you define it differently?

    187. Re:Python? by CAIMLAS · · Score: 1

      +10 for sqlite. It's pretty damn good for a flat-file database: fast, with a fairly full feature set, while still remaining efficient and small.

      There are interface libraries available for it for most languages, including .NET stuff. There are even projects out there to make it the backend for a db server...

      --
      ~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
    188. Re:Python? by matt_hs · · Score: 1

      If you want to make changes, make changes. If you want to keep them to yourself, keep them to yourself. No one says you are required to distribute your changes, so long as you keep them to yourself. But you can't just take someone else's code, make some changes, post GeeWhizBang 1.1 on a Web site and claim it as your own. That is not unreasonable. Why should you be allowed to take credit for something you didn't do when most of it was done by someone else or other people?

    189. Re:Python? by Humm · · Score: 1


      "Here's a gift of a book; but you can only read it if you use LED lights." "Here's a gift of a cat; but you can only have it if you'll eat it." "Here's a gift of a some money, but you must spend it upon me."

      ...or "Here's a gift of a cat; but you can only have it if you promise not to kill it." "Here's a gift of some money, but you mustn't spend it on drugs." "Here's your driver's license, but you can only keep it if you don't drive drunk."

      There are lots of examples where conditions are set on the individual for the good of us all. The GPL is one such example.
    190. Re:Python? by cching · · Score: 1

      I always find it funny how people don't understand this view point. The other part of this is that they don't *really* have a problem with the license, they have a problem with the *people* who chose that license.

      So if you really want to use that "snippet of GPL'd source code" maybe try talking to the owner of that code. As a copyright holder on the code, they can choose to release whatever they want, however they want.

      I am a commercial software developer. There have been times when I've said "Gee, I sure wish I could use that GPL'd code over thar." But I never blame the license and I certainly don't blame the developers who released the code under that license. After all, it's their code, not mine, and they could always have chosen to release it under a proprietary license so that it wasn't free for anyone.

    191. Re:Python? by bigstrat2003 · · Score: 1
      The problem is that developer freedoms are equally as important as user freedoms, if you're putting your source out there for other developers to see and learn from. Indeed, some of what the FSF would define as "user" freedoms are, in fact, developer freedoms. Users don't give a damn about being able to modify their programs. Developers, on the other hand...

      If I want to make my work available to others, my right to dictate terms should end at "Please don't take credit for my work". The perfect example of why the GPL is bad is other open-source developers not being able to use GPL code unless their code, too, is GPL. The FSF has a philosophical disagreement with the authors of other OSS licenses, so that means that I can't use them for my work, if I want to benefit from GPL code others have written! What the hell is that noise!? The "no leechers" argument isn't entirely without merit (even if I disagree), but there's no excuse for prohibiting developers from using other OSS licenses.

      --
      "16MB (fuck off, MiB fascists)" - The Mighty Buzzard
    192. Re:Python? by Directrix1 · · Score: 1

      Right. Copyright holders have complete control over their code. Did I state anything to the contrary? Getting a proprietary license from somebody means you are no longer dealing with GPL'd code. You are getting code released under another license by the copyright holder.

      --
      Occam's razor is the blind faith in the natural selection of least resistance and in universal oversimplification. -- EF
    193. Re:Python? by Directrix1 · · Score: 1

      Ignore my other post. I thought you were refuting what I said for a minute there.

      --
      Occam's razor is the blind faith in the natural selection of least resistance and in universal oversimplification. -- EF
    194. Re:Python? by Anonymous Coward · · Score: 0
    195. Re:Python? by Anonymous Coward · · Score: 0

      BSD license is still here and been around longer than the GPL and will continue to be around. What short-term freedom are you talking about? Also, BSD is true freedom. GPL has restrictions and therefore less than total free. You also need to be a lawyer to understand everything about its EULA.

    196. Re:Python? by mweather · · Score: 1

      So it discourages sharing by mandating that you share?

    197. Re:Python? by lokiomega · · Score: 1

      Seriously, it's really getting annoying that any time anyone mentions anything good about sqllite, this fyngyrs dude chimes in "Well that's great but dbtxt is better! Those features that sqllite has are CRAP! The fact that is used in many commercial projects means NOTHING! I WROTE DBTEXT IT IS AWESOME!!!! GIVE ME ATTENTION PLEASE!"

    198. Re:Python? by mweather · · Score: 1

      All that is necessary for the triumph of evil is that good men do nothing. Evil wins by default if unchallenged. Being responsible sucks, don't it?

    199. Re:Python? by ZERO1ZERO · · Score: 1

      Sorry - I googled but nothing. What is this (infamous) AT&T room 164a?

    200. Re:Python? by 12357bd · · Score: 1

      The end result is that the GPL'd code cannot be used if the commercial application is to remain usable.

      So, don't use it, *******.

      --
      What's in a sig?
    201. Re:Python? by Bat+Country · · Score: 1

      I hate to say it, but he's right.

      In writing, it is placed within square brackets and usually italicizedâ"[sic]â"to indicate that an incorrect or unusual spelling, phrase, punctuation, and/or other preceding quoted material has been reproduced verbatim from the quoted original and is not a transcription error.

      So it's only used to indicate that the quoted or referenced material has been faithfully reproduced, not used to indicate that an original document here presented is factually correct.

      --
      The land shall stone them with the bread of his son.
    202. Re:Python? by Bat+Country · · Score: 1

      <strongbad>Strawman'd!</strongbad>

      Seriously, most people, while they don't RTFA, and may not even RTFS, at least bother to read the comments they're replying to.

      The distinction is between public domain, (which is entirely free to use, free of restrictions, copyright, or any form of use control) and GPL, (which says you can't improve or alter the code for a commercial product and then subsequently choose not to release the source in a usable form.)

      --
      The land shall stone them with the bread of his son.
    203. Re:Python? by Anonymous Coward · · Score: 0

      No he didn't, he came here for an argument. This is just the automatic gainsaying of anything the other person says.

    204. Re:Python? by bigstrat2003 · · Score: 1

      You obviously should be unable to do that. But what you should be able to do is say, "Part of this is my work, and is available under the terms of x license. Part of this is another guy's work, and is available under the terms of y license." The GPL doesn't allow you to do this, and that's unreasonable.

      --
      "16MB (fuck off, MiB fascists)" - The Mighty Buzzard
    205. Re:Python? by Anonymous Coward · · Score: 0

      Jesus, as if Oracle wasn't slow enough as it is.

    206. Re:Python? by Kjella · · Score: 1

      Let me put it this way, you can most certainly have a complex single-table relational database but it would also almost certainly belong on the daily WTF.

      --
      Live today, because you never know what tomorrow brings
    207. Re:Python? by encoderer · · Score: 1

      In all seriousness, this is one of the reasons I now prefer MSSQL to Oracle: Managed Code in the DB.

      Not just that it's easier: it's only easier because I know C# better than I've ever known TSQL.

      But it's just a more powerful language. And it's more intuitive -- I find it easier to make self-documenting code in C# than I ever could in TSQL.

    208. Re:Python? by fyngyrz · · Score: 1

      You can (a) pack greater than 7-bit codes, or (b) request of the author the addition of greater than seven bit codes. Don't think either one is much of a show-stopper.

      --
      I've fallen off your lawn, and I can't get up.
    209. Re:Python? by fyngyrz · · Score: 1

      Seriously, it's amusing when people climb into the thread without understanding what its about, much less where it came from, and bitch because the ggp post that started it all remains relevant throughout. It's almost like reading... were a lost skill.

      Go on, take yourself up to the top of the thread -- also the first post in the article, in this case -- and see what it's about. Oh, look... it's that "fyngyrz" dude with a post about... dbtext!!! Every other post that "fyngyrz" dude made was in the thread(s) that descend(s) from that post. Funny thing, eh? And why would that "fyngyrz" dude be posting? Why, because the responses, marvel of marvels, are weighing the merits of things like SQLite against... wait for it... dbtext!

      It isn't so much that I'm responding to them, you see. They're actually responding to me at various levels. I'm just polite enough to answer, that's all.

      --
      I've fallen off your lawn, and I can't get up.
    210. Re:Python? by jhol13 · · Score: 1

      Packing UTF-8 to ASCII loses the appeal of flat file completely as it is no longer editable by text editors (UTF-7, thank god, is not used anywhere).

      The engine uses the high bit for something so the change might be big (I have not checked the code and therefore have no clue). Anyway I personally have no need for the engine so I will not bother the author with superfluous requests.

    211. Re:Python? by ehrichweiss · · Score: 1

      That was NOT the assertion of the parent and thus I find your statement to be quite off-topic for the thread and since you obviously weren't modded up, obviously others agree. The discussion at hand was not about the overall freedom but whether someone could make a living from GPL software.

      --
      0x09F911029D74E35BD84156C5635688C0
    212. Re:Python? by fyngyrz · · Score: 1

      Just so you know, I am the author. :-)

      Making dbtext handle arbitrarily packed fields would probably take me a couple hours at most. Perhaps not that long. I didn't do it because I had no need for it. The file format would remain editable at the field and record level by standard text editors because no characters above 127 would be present in any field. What it wouldn't remain is field-readable, which is probably what you meant to say anyway. Still, field readability is just one feature of many that makes the engine useful to me; wouldn't concern me if it wasn't available in the intra-record sense when used with non-ASCII character sets and binary data like images, etc. Presently I store binary objects in the filesystem and records about them in the database; I find that very convenient for a lot of reasons, but that's just the way I prefer to do things, means nothing for other people's applications of the class.

      --
      I've fallen off your lawn, and I can't get up.
    213. Re:Python? by cching · · Score: 1

      Nope, I was agreeing with you 100% ;-)

    214. Re:Python? by fyngyrz · · Score: 1

      Actually, if you packed it with the *goal* of being field readable, it'd be fine. Rather than go for max compression, I mean. Pack it in hexadecimal, for instance, and it'd be 100% editable, plus the reasonable database ops you'd like (equality, for instance) would work on it in string mode, and it'd be about as readable as any binary object ever is. It'd cost some storage space (you can get considerably more compression using base64, Ascii85 or e91) but the benefits could be competitive if flat's how you roll...

      --
      I've fallen off your lawn, and I can't get up.
    215. Re:Python? by fyngyrz · · Score: 1

      So call me compulsive. dbtxt 1.1 is posted, and now supports editable binary and floating point types. There are some other improvements as well.

      --
      I've fallen off your lawn, and I can't get up.
  2. No Java? by jawtheshark · · Score: 5, Insightful

    I would have recommended HSQL, but you don't want Java. Frankly, usually, when we're talking databases I won't say "use a spreadsheet", but with 10 fields, you might as well use a spreadsheet. Of course OpenOffice.org Base is out, because it uses HSQL.

    Something like CSQL might fit, but I have no experience with it.

    --
    Ahhh...the great dumpster continuum. Many a free computer will be found there. -- sowth (748135)
    1. Re:No Java? by Anonymous Coward · · Score: 1, Informative

      CSQL only supports in-memory databases. It doesn't even have an on-disk representation -- it's strictly a memory-only cache thing.

    2. Re:No Java? by SanityInAnarchy · · Score: 2, Insightful

      In fact, the requirements are pretty extreme.

      Must not be "online" -- does that rule out web apps? Even if they'll run on your local machine?

      And why no Java? Can't be for efficiency, otherwise you wouldn't be running Vista. Maybe something's broken with your Java?

      Also, what are the required features? You may have outgrown Notepad, but have you outgrown vim, grep, and friends? That's probably why there's not much F/OSS for this kind of thing. Just a guess.

      --
      Don't thank God, thank a doctor!
    3. Re:No Java? by setagllib · · Score: 1

      Just out of curiosity, why do you prefer HSQL over its successor, H2?

      --
      Sam ty sig.
    4. Re:No Java? by geekboy642 · · Score: 5, Insightful

      Mod parent up.
      This guy wants a spreadsheet, he just doesn't know it. Excel--or the free alternative from OpenOffice.org--will do everything he could possibly want, and although it saves as its own infernal file format, it exports competently into a tab or comma-delimited format.

      All the extra "requirements" are just pseudo-intellectual mumbo-jumbo that have no bearing on reality.

      --
      Just another "DOJ fascist authoritarian totalitarian bootlicker" -- Zeio
    5. Re:No Java? by jawtheshark · · Score: 1

      Euuuuh.... Because I didn't know there was a successor :-D

      --
      Ahhh...the great dumpster continuum. Many a free computer will be found there. -- sowth (748135)
    6. Re:No Java? by setagllib · · Score: 1

      Fair enough. I like H2 for pure Java projects, because although SQLite is my favorite in general, its Java bindings suck. H2 is pure Java (no bindings, no native components, so you can embed it anywhere) and performs very well. You can even run a client-server split if you find you need that, but if it comes to that I'd rather just use PostgreSQL and the JDBC driver for that (which, IIRC, is also pure Java).

      --
      Sam ty sig.
  3. Err ... by Anonymous Coward · · Score: 4, Informative

    Comma Separated Variable Text Files, as exported and imported by Excel. You can get libraries to read and write these, and search these in most languages.

    Otherwise what's wrong with a simple database like MySQL or PostgreSQL on your computer?

    1. Re:Err ... by djmurdoch · · Score: 2, Informative

      Comma Separated Variable Text Files, as exported and imported by Excel. Don't use CSV with Excel, it will by default change values on import.

      For example, if you ask it to read and write this:

      May 20,5/20,1.000

      you get this:

      20-May,20-May,1

      That might be okay if those were really two dates and a number, but I was never asked if they were. (OOO Calc is just as bad: it asks, and by default modifies the data).
    2. Re:Err ... by Icegryphon · · Score: 0

      Wow if that happens that is really friggen retarded and not to mention dangerous.

    3. Re:Err ... by pthisis · · Score: 3, Informative

      We have even worst problems; it'll turn

      Smith,John,703-555-5555

      into
      Smith,John,-5407

      The latter being 703 minus 555 minus 5555.
      when importing a CSV file. No joke. There are ways around it, but the default is pretty braindead.

      --
      rage, rage against the dying of the light
    4. Re:Err ... by Anonymous Coward · · Score: 0

      Along with bash the GUN coreutils can do about any manipulation you could want and these can actually be included on a lot of embedded processors. I have them on my router. I can power it in the car and have a daemon just log them and whether they are open or not. Once you have a program that can query the wireless device and output text it's easy. They can then be formatted and dumped via email on one of those wireless connections after being compressed and encrypted. ;)

      Good old /. Well here are some non junk characters.

      Four score and seven years ago our fathers brought forth on this continent, a new nation, conceived in Liberty, and dedicated to the proposition that all men are created equal.

      Now we are engaged in a great civil war, testing whether that nation, or any nation so conceived and so dedicated, can long endure. We are met on a great battle-field of that war. We have come to dedicate a portion of that field, as a final resting place for those who here gave their lives that that nation might live. It is altogether fitting and proper that we should do this.

      But, in a larger sense, we can not dedicate -- we can not consecrate -- we can not hallow -- this ground. The brave men, living and dead, who struggled here, have consecrated it, far above our poor power to add or detract. The world will little note, nor long remember what we say here, but it can never forget what they did here. It is for us the living, rather, to be dedicated here to the unfinished work which they who fought here have thus far so nobly advanced. It is rather for us to be here dedicated to the great task remaining before us -- that from these honored dead we take increased devotion to that cause for which they gave the last full measure of devotion -- that we here highly resolve that these dead shall not have died in vain -- that this nation, under God, shall have a new birth of freedom -- and that government of the people, by the people, for the people, shall not perish from the earth.

    5. Re:Err ... by rindeee · · Score: 4, Funny

      Such foolishness. Imagine a program which exists for the intent purpose of solving math equations interpreting 703-555-5555 as just such an equation. Next someone's going to say that you shouldn't be using Excel as a database. Crazy talk I tell ya'!

    6. Re:Err ... by agendi · · Score: 1

      I'll say what I say to all the people here that try to give me data in excel - XLS IS NOT A DATA FORMAT. Don't do it.. don't encourage it.. don't accept it. Excel is the great data mangler.

      --
      I just can't be bothered.
    7. Re:Err ... by DAldredge · · Score: 5, Insightful

      Just tired that on Excel 2007 - it imported correctly. The three fields all imported correctly.

    8. Re:Err ... by djmurdoch · · Score: 1

      I was using an old version, not 2007, but the point is not the import alone, it's the cycle. Save it as .csv, and you won't get what you just read in. Unless they've fixed this braindead behaviour, but I wouldn't bet on that.

    9. Re:Err ... by 808140 · · Score: 2, Insightful

      As the parent said, there are ways around it (using VBA ... ugh). But Excel is not a program whose purpose is to solve math equations, it is a program whose purpose is to manage spreadsheets. Spreadsheets contain data, and typically not just numeric data.

      I work at an investment firm, and we get CSVs from our vendors with SEDOLs in them. Excel will helpfully (and silently) strip the leading zeros on UK securities, for example. Oops.

    10. Re:Err ... by Anonymous Coward · · Score: 0
      "I repeat, the three fields all imported correctly."


      *the crowd goes wild*

    11. Re:Err ... by pthisis · · Score: 1

      I'm not sure what version our clients are using, but it definitely eats the data for some of them.

      --
      rage, rage against the dying of the light
    12. Re:Err ... by cbreaker · · Score: 1

      I dunno. I've had good success using Excel to process csv files when I didn't want to write a winbatch script or something.

      I've seen the behavior you're describing in other situations but I guess it depends on what you're doing and how you import the data.

      Excel 2007 saved my ass a few times when I had to reformat an 800,000 row CSV for importing into a SQL table. All previous versions and other spreadsheet apps have a 64K limit still.

      --
      - It's not the Macs I hate. It's Digg users. -
    13. Re:Err ... by Anonymous Coward · · Score: 0

      Excel only supports 64K rows. I hit this all the time with data processing from engineering testing. Same with excel ploting limited to 32K points per series.

    14. Re:Err ... by symbolic · · Score: 1

      It's actually quite funny to see this...the doze crowd is more than willing to toss rotten tomatoes at OpenOffice for its quirks, but this....THIS....in Excel even, is rediculous.

    15. Re:Err ... by CheeseTroll · · Score: 3, Informative

      Another way around that is to open Excel first, then do File > Open to open the .csv file. That should force Excel to use the import Wizard, which lets you specify those columns as text, rather than assuming that they're numbers or an equation.

      That's what I do in Excel 2003, anyway, to stop it from stripping the leading zeros in SSNs.

      --
      A post a day keeps productivity at bay.
    16. Re:Err ... by kcelery · · Score: 1

      "I'm storing info about Wi-Fi access points that I come across, maybe 8-9 fields per
      entry" Either the guy is accessing a very wide area, or he is a lazy bastard. An SQL system seems an overkill.
      But anyway. Two decades ago, I came across similar issue on my apple II, I put all data in a flat file stored on a 5.25 floppy. Then i wrote a simple program in BASIC to create a B-tree indexing the flat file. First 3 levels of the tree was cached for fast access.

      I think the basic DB tools that came with perl could solve most of his problems.

    17. Re:Err ... by Jesus_666 · · Score: 1

      How about locales where the decimal separator is a comma? I know that some softwares will turn a line that contains the values 12,5 and 4,9 into the string 12,5,4,9. Using quotes is no option either, as the reading software might differentiate between numbers and strings.

      CSV is nice, but I think it could need a bit more standardization.

      --
      USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
    18. Re:Err ... by locofungus · · Score: 1

      Not only does it change things but, AFAICT, there are certain things that is is impossible to export and import via CSV from excel.

      Strings that look like decimals are one. I cannot work out how to import strings like 1.10, 1.100 into Excel using CSV without it changing it to the number 1.1

      I want this because I generate csv files for information about CVS versions. OOo you can say the column is text and it leaves it unchanges. Maybe there's a hidden option in Excel but I can't find it. (Excel 2003)

      Tim.

      --
      God said, "div D = rho, div B = 0, curl E = -@B/@t, curl H = J + @D/@t," and there was light.
    19. Re:Err ... by locofungus · · Score: 1

      Can't make that work for me. I don't get the import wizard either way. In my case it's not leading zeros that are the problem but trailing zeros on numbers that look like decimals. (e.g. 1.10, 1.100)

      Even putting the numbers in double quotes in the csv file and Excel STILL converts them to numbers and drops the trailing zeros.

      But now you've said it is possible I've done a search and I can do Data->ImportExternalData and get the wizard.

      Tim.

      Tim.

      --
      God said, "div D = rho, div B = 0, curl E = -@B/@t, curl H = J + @D/@t," and there was light.
    20. Re:Err ... by mike2R · · Score: 1

      I've got Excel X for Mac (1 or 2 versions old IIRC) and it can do this. Step 3 of the Import Text Wizard (comes up when I import any text file for me) allows me to force the format of a column, and you can set it to text there, which has the behaviour you're looking for. A bit of a pain in the arse to be honest for imports with many columns where you just want to change a few, but at least it can be done.

      --
      This sig all sigs devours
    21. Re:Err ... by CheeseTroll · · Score: 1

      You're right. I tried it again (now that I'm at work) and realized that my default list separator is a pipe, not comma, so when I open a csv file via Excel, I also need to do the "Text to columns" thing, which runs the Import Wizard.

      I do this so often lately that I don't even think about it anymore. That, and one of these days I'll learn to avoid detailed technical work late at night. :-)

      --
      A post a day keeps productivity at bay.
    22. Re:Err ... by mr_mischief · · Score: 1

      Well, gdbm/ndbm files I don't think count as flat files to most people. That is one option, though. "Flat" as in "stored as a single file in the filesystem" and "flat" as in "easily human readable" are left kind of ambiguous by the OP.

      If one is using Perl, there are database drivers for the DBI that work on CSV, fixed-width files, and more. DBD::CSV and DBD::RAM are two, and I think there are more. The DBI supports SQL-style relational databases, though, which the OP already said were overkill.

      If the RDBM overkill is marginally acceptable, SQLite is one that works well as a local data store without a bunch of networking overhead and maintenance. There's a DBI driver for that. The files aren't exactly flat text.

      Excel files (the non-OOXML ones) can be accessed through the DBI with DBD::Excel or with Spreadsheet::ReadExcel and Spreadsheet::WriteExcel among others.

      Tied hashes would seem to make good sense for this kind of data, particularly a hash of hashes or an array of hashes. It'd be a good way to work with the data no matter the storage type. Tie::RDBM allows one to tie a hash to any DBD that DBI supports. That way, the complexity of the SQL is left behind the scenes if it's the queries the OP is worried about.

      If field order isn't important, XML::Simple provides an easy interface to XML files. XML::Twig is a little more complex but preserves the order.

      There are YAML tools for Perl, and although I'm not a big proponent of YAML, some people are. It's certainly human readable, which is one of its big selling points.

      All of these solutions assume the OP is a programmer familiar with or willing to become familiar with Perl, though.

      In the OP's case, a spreadsheet program might be just the thing. IT might also be worthwhile to check into solutions like WiGLE, or look into a stumbler that actually keeps track of its findings in the first place.

    23. Re:Err ... by cbreaker · · Score: 1

      If it's exported as a properly formatted CSV, the values with commas are quoted out. Excel will quote cells that have commas when you export to CSV.

      It could use more standards I suppose, but simply using quotes for cells is fairly "defacto."

      --
      - It's not the Macs I hate. It's Digg users. -
    24. Re:Err ... by doom · · Score: 1

      Like, mod parent up.

      The OP doesn't specify language really, but if you're down on Java you may like perl (the anti-Java). Mister Mischief here has laid out the range of solutions in perl quite well.

  4. OOO? by iamhigh · · Score: 5, Informative

    it must be simple, F/OSS, must work in Windows Vista, preferably use a portable format, must not be an online app, and must not require Java. Does such a beast exist Maybe this will do? I think it meets all your needs. You can even use it with a web app if desired. Some functionality may need Java, but most doesn't. I don't know what parts of OOO are Java-driven, but I am sure somebody here does!
    --
    No comprende? Let me type that a little slower for you...
    1. Re:OOO? by ADRA · · Score: 4, Insightful

      OpenOffice uses Java for its database tool. I'm fine with it, and its probably the best choice for anyone actually wanting something simple / usefull / free, but obviously the OP is a trolling wanker, so it has to be san-Java.

      --
      Bye!
    2. Re:OOO? by Anonymous Coward · · Score: 0

      Yep. I would recommend OpenOffice. You should be able to set up a datasource that points to an OpenOffice spreadsheet. You just might get away without needing Java if you're accessing a spreadsheet, but it is connected with a lot of the database functionality.

      Java is also now FOSS btw and so much useful stuff uses it. In fact, I think the OpenOffice Windows download includes and installs it by default.

    3. Re:OOO? by Anonymous Coward · · Score: 0

      Yeah, not wanting to deal with a 100MB+ waste of space is trolling for something ridiculously simple like a very simple database is obviously trolling.

      Of course, OpenOffice.org is EVEN LARGER than Java, so suggesting it is even more ludicrous.

  5. sqlite by nguy · · Score: 5, Informative

    Sqlite is used in many apps (including Firefox), it's small, and it's efficient. It also has bindings to just about every imaginable language.

    I find it amazing that you didn't come across it in Googling...

    1. Re:SQLite by Quartz25 · · Score: 3, Informative

      Python 2.5 comes with SQLite3, so you don't even have to install it separately.

      --
      Most people don't get why the integral of "e to the x" is so funny. Most math majors don't have a sense of humor.
    2. Re:SQLite by edalytical · · Score: 2, Informative

      Yeah, you can't really get more permissive than public domain.

      --
      Win a signed Stephen Carpenter ESP Guitar from the Deftones: http://def-tag.com/?r=0008781
    3. Re:sqlite by MBGMorden · · Score: 3, Insightful

      Was going to suggest this myself but looks like you and many others beat me to it. Yes SQLite is "SQL", but I can't think of an actual program where I'd consider it's use overkill. It's made precisely for small little projects that don't want or need to use something like MySQL or PostgreSQL.

      --
      "People who think they know everything are very annoying to those of us who do."-Mark Twain
    4. Re:SQLite by roscivs · · Score: 1

      Another vote for SQLite. One file, one database. Fast. Supports SQL. You don't have to use types if you don't want to. (Just "create table (foo, bar, sys)" works fine.) And it seems to be gaining in popularity--it's even part of the iPhone SDK.

      --
      ~ roscivs
    5. Re:SQLite by Anonymous Coward · · Score: 0

      There's a nice sqlite gui addon for firefox at https://addons.mozilla.org/en-US/firefox/addon/5817

    6. Re:sqlite by kingbyu · · Score: 5, Informative

      There is an add-on to Firefox called SQLite Manager that makes managing your own little database quite a bit easier than typing sql commands on a command line:
      https://addons.mozilla.org/en-US/firefox/addon/5817

    7. Re:sqlite by v(*_*)vvvv · · Score: 1

      SQLite also has a great database client available as an add-on for FireFox and/or Thunderbird. So if you want a GUI for your db, there is your cross-platform, GPL (or better) client program.

    8. Re:SQLite by fyngyrz · · Score: 1

      Python 2.5 comes with SQLite3, so you don't even have to install it separately.

      Actually, you can't count on that. Google it for details.

      --
      I've fallen off your lawn, and I can't get up.
    9. Re:SQLite by bradkittenbrink · · Score: 1

      I don't know, the wtfpl gives me permission to fornicate with the authors' mothers. I don't think public domain does that...

    10. Re:sqlite by daff2k · · Score: 1

      Sqlite [...] has bindings to just about every imaginable language. Except for C++. No quality object-oriented library there. By quality I mean comparable to libpqxx. It's too bad.
      --
      And which parallel universe did you crawl out of?
    11. Re:SQLite by cubic6 · · Score: 1

      Python 2.5 comes with SQLite3, so you don't even have to install it separately.

      Actually, you can't count on that. Google it for details.

      Perhaps you should link to a particular site rather than a Google search which has more results contradicting you than supporting you. One of them even specifically mentions that it's part of the standard library now.

      --
      Karma: Contrapositive
    12. Re:sqlite by ignavus · · Score: 2, Funny

      "It also has bindings to just about every imaginable language."

      What? Bindings to Klingon (you didn't say "programming language")? Fortran I? Dartmouth Basic? z80 Assembler? SGML? Postcript? VBA?

      Shall I go on?

      --
      I am anarch of all I survey.
    13. Re:sqlite by Jesus_666 · · Score: 1

      However, since the fles are for the OP's "own reference", I think it's fairly safe to assume he wants to be able to read them himself without going through some frontend. Hence the need for a flat-file database.

      --
      USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
    14. Re:sqlite by Mark+Trade · · Score: 1

      I find it amazing that you didn't come across it in Googling... That's called an "Anomalous State of Knowledge".
    15. Re:sqlite by ospirata · · Score: 1

      Also I find amazing how the Slashdot editor didn't find this Googling as well, and has posted this "Ask Slashdot"...

    16. Re:sqlite by MBGMorden · · Score: 1

      If there's no need for a front-end, then why look for a library at all? Excel, or really any text editor could keep track of that data just fine.

      Besides, most flat file storage mechanisms that I've seen (which have mostly been fixed-width field files used by old COBOL code) are not very intuitive to read. Sure you can human read them if you want to count out field lengths yourself, but to work with them at any decent speed you still need a program to parse it and display it in a legible manner.

      --
      "People who think they know everything are very annoying to those of us who do."-Mark Twain
    17. Re:sqlite by pikou · · Score: 1

      Well i find quite odd as well that you didn't come across sqlite on your search.It is very well known by now. Give it a go!

  6. SQLite by kcbanner · · Score: 4, Informative

    Get it http://www.sqlite.org/ here.
    There are GUI clients that work fine for this sort of thing, SQL is simple for doing basic things. One file, one database.

    --
    Obligatory blog plug: http://www.caseybanner.ca/
  7. FOSS in VISTA without JAVA?? by Foofoobar · · Score: 1

    Are you sure you are looking for FOSS?? I think you would have a far easier time finding what you are looking for if you gave up on either the VISTA requirement or the FOSS requirement in this situation.

    --
    This is my sig. There are many like it but this one is mine.
    1. Re:FOSS in VISTA without JAVA?? by tepples · · Score: 1

      Are you thinking of a specific product that runs in Windows XP but fails in Windows Vista?

    2. Re:FOSS in VISTA without JAVA?? by Darkness404 · · Score: 1

      Just about every F/OSS application has been ported to both Linux and Windows. Those that don't usually depend on a very crucial part of Linux such as something that depends on some X library or complex libraries similar to GTK that don't have a Windows port.

      --
      Taxation is legalized theft, no more, no less.
    3. Re:FOSS in VISTA without JAVA?? by mr_mischief · · Score: 1

      There may be "libraries similar to GTK" which "don't have a Windows port", but to say it like you do is misleading. GTK+ 2.xx.x is installed and working on my XP machines at home and here at the office. It's how the GIMP on Windows works.

      GLib, which was originally derived from GTK+, is also available for Windows (and used by WireShark for Windows).

    4. Re:FOSS in VISTA without JAVA?? by Darkness404 · · Score: 1

      Well, I knew GTK was on Windows as the GIMP uses them, but I was referring to crucial libraries similar to GTK but not GTK that a program wouldn't work without that library being on Windows sort of how the GIMP would never be on Windows without the GTK port to Windows.

      --
      Taxation is legalized theft, no more, no less.
  8. SQLite by elhedran · · Score: 2, Informative

    Have you looked at SQLite?

    C based, no client-server. Very small, quite fast. And a very permissive license.

  9. Berkley by Joseph1337 · · Score: 0

    What bout BerkleyDB? I`m sure it`s flatfile but don`t know the specifics though...

  10. SQLite by teeheehee · · Score: 1

    First thing that came to my mind was SQLite. It's used by FireFox. I have a couple of projects lined up I plan on using it for, when I get the time....

    --
    "We are not always what we seem, and hardly ever what we dream."
    Schmendrick the Magician
  11. how about... by ramirez · · Score: 4, Insightful

    a comma delimited file?

    Umm... just write a few one-liner perl scripts to get info out.

    1. Re:how about... by Anonymous Coward · · Score: 0

      a comma delimited file?

      Umm... just write a few one-liner perl scripts to get info out. Finally someone's talking some sense.
      Sounds like this guy just wants a spreadsheet...
    2. Re:how about... by urcreepyneighbor · · Score: 1

      a comma delimited file? Exactly what I was thinking.

      Why use a nuke when a sniper rifle will do the job?
      --
      "The fight for freedom has only just begun." - Geert Wilders
    3. Re:how about... by gringer · · Score: 1

      I'm keen on comma (or more often in my case whitespace) separated files. They've been the most scalable in the work that I'm doing, analysing 300,000+ genotypes of 400+ people. The largest file I have is over 4GB, which is *way* beyond what I would expect most garden variety "data storage" applications to handle.

      For most of my analysis, I use Perl, and optimise my files for line-by-line processing and the Linux pipeline (this makes parallelisation easy). For things that are more complex and require matrix manipulation, I use R.

      --
      Ask me about repetitive DNA
    4. Re:how about... by Anonymous Coward · · Score: 0

      Those who do not know Mork, are doomed to reinvent it.

      http://www.jwz.org/hacks/mork.pl

    5. Re:how about... by Just+Some+Guy · · Score: 1

      a comma delimited file?

      Umm... just write a few one-liner perl scripts to get info out.

      Those inevitably suck for almost anything where the data isn't guaranteed to be 100% consistently formatted. If a column is zip codes, you're probably OK. If it's a company name, say, you're good until the first time you need to store "Acme, Inc.". How do you escape commas? Do you quote the whole column? If so, then how do you escape quotes?

      CSV files are of the devil. They're so attractively simple at first, then BAM!, they get you when you least expect it. At least consider less-common characters like pipes or carets.

      --
      Dewey, what part of this looks like authorities should be involved?
    6. Re:how about... by Anonymous Coward · · Score: 0

      not only that, if you reaaaally want sql to access it you can always use DBI::CSV.

      but why do that when you can just suck it into a hash by spiting on commas (perl/php/python/ruby)

    7. Re:how about... by wkitchen · · Score: 1

      How do you escape commas? Do you quote the whole column? If so, then how do you escape quotes?
      Two simple rules:

      1) If the string contains one or more quotes, replace each one with two.

      2) If the string contains one or more commas, quotes, or line endings (CR, LF, or CR-LF), then put the entire string in quotes.

      When this is handled properly at both the formatting end and the parsing end, data items containing any combination of commas, quotes, and even multiple lines of text, are no problem. It does require a little more sophistication than just reading the file a line at a time and splitting at the commas, but not much more.
    8. Re:how about... by Just+Some+Guy · · Score: 1

      It does require a little more sophistication than just reading the file a line at a time and splitting at the commas, but not much more.

      I was being a little rhetorical, having parsed CSVs before. Still, in no way can that be considered "a little more sophisticated". Given a file with a unique separator - that is, one not contained in the data - you can darn near mmap() the file and walk across it. That small bit of extra processing to handle escapes can easily add an order of magnitude more cycles to the workload.

      --
      Dewey, what part of this looks like authorities should be involved?
    9. Re:How about... by BluBrick · · Score: 1

      You mean like a Bio-Organic Organized Knowledgebase?

      --
      Ahh - My eye!
      The doctor said I'm not supposed to get Slashdot in it!
    10. Re:How about... by benwiggy · · Score: 1

      How about a graphite-on-cellulose based solution? Yeah, but the sorting algorithms are terrible!
    11. Re:how about... by mr_mischief · · Score: 1

      It's actually called DBD::CSV for anyone trying to search for it. DBI is the interface and the DBD packages are the drivers for the back ends.

    12. Re:how about... by DragonWriter · · Score: 1

      Those inevitably suck for almost anything where the data isn't guaranteed to be 100% consistently formatted. If a column is zip codes, you're probably OK. If it's a company name, say, you're good until the first time you need to store "Acme, Inc.". How do you escape commas? Do you quote the whole column? If so, then how do you escape quotes?


      As long as you aren't taking data from some other unreliable source (which doesn't seem to be an issue here) that may not be doing the same thing, following section 2 of RFC 4180 seems to address all those issues cleanly. Of course, while its nice to have a readable format, its often nice also not to have to edit it directly, especially when quoting is an issue: that's why I'd recommend using something like Ruby + FasterCSV + (if you need reporting) Ruport for this; writing up a simple interface, either console or with any GUI toolkit you want, adapted to the use here should be fairly simple. I'd probably use SQLite via Sequel, rather than CSV via FasterCSV, if I was doing it for myself -- it may be overkill, but Sequel abstracts away the complexity you don't need fairly nicely, and its not like the resource use in this application is going to be substantial.
    13. Re:how about... by doom · · Score: 1

      but why do that when you can just suck it into a hash by spiting on commas (perl/php/python/ruby)

      Because that doesn't work. You'll just think it works for just long enough that eventually a competent programmer will have to fix it, along with the data you've mangled.

  12. SQLite by Anonymous Coward · · Score: 0

    Have you considered using SQLite at all? It's open-source, lightweight and works with Vista.

  13. Ta da by Anonymous Coward · · Score: 2, Funny

    findstr, the windows equivalent of grep.

  14. sqlite of course by cats-paw · · Score: 2, Informative

    I think this would be perfect, I found it when I was looking for a DB which met similar criteria. I don't care about windows, but it does work under windows AFAIK.

      http://www.sqlite.org/

    Use it all the time for everthing from trivial databases to several 10s of megabytes. Since query's can be entered on the command line it's quite simple to write an ascii results grabber.

    --
    Absolute statements are never true
    1. Re:sqlite of course by Hadlock · · Score: 1

      Queries. Querie's would be like saying "Query the Cat's Paw has claws". Do you have spell check turned off in Firefox or something? Typically I'm not a huge grammar Nazi but you're using the plural form of Cat's (Cats) instead of possessive in your user name, too (probably due to user name punctuation restriction).

      --
      moox. for a new generation.
    2. Re:sqlite of course by Jugalator · · Score: 1

      It doesn't just work on Windows, there's even a wrapper available for it for ADO.NET support if you prefer C#, VB.NET, or any other .NET language: http://sqlite.phxsoftware.com/

      I'm using it that way for a .NET client on Windows, and synchronizing it with a PDA that instead uses SQLite via C++. Works great. :)

      --
      Beware: In C++, your friends can see your privates!
    3. Re:sqlite of course by value_added · · Score: 1

      but you're using the plural form of Cat's (Cats) instead of possessive in your user name

      I do hope you meant to say "the plural form of cat".

  15. heh by B3ryllium · · Score: 4, Funny

    Since the majority of the comments so far have pointed at SQLite, I'm kind of surprised that the post didn't come "from the sqlite dept." :)

    1. Re:heh by Anonymous Coward · · Score: 0

      I don't know about from, but it clearly went TO the sqlite dept.

  16. Perl DBFile by Anonymous Coward · · Score: 3, Interesting

    Use perl with a tied hash like BerkeleyDB http://search.cpan.org/~pmqs/BerkeleyDB-0.34/

    Easy, fast, simple.

    1. Re:Perl DBFile by InlawBiker · · Score: 1

      I second this one. But, that's cuz I always lean towards Perl.

    2. Re:Perl DBFile by bytesex · · Score: 1

      Not only BerkeleyDB, but there's also GDBM, NDBM et cetera. People forget these things and start reinventing the wheel, apparently. Although I /do/ think that now Oracle has acquired BerkeleyDB, there should come a new, completely independent transaction driven DBM library in C. But that's just me.

      --
      Religion is what happens when nature strikes and groupthink goes wrong.
  17. Flat file is useless by bluefoxlucid · · Score: 5, Insightful

    Trying to solve such an issue as a flat file is a poor design characteristic. This says "I don't want to learn SQL" or "I want the output human readable." If you just want to store information for programmatic use, use SQLite and quit worrying about data storage format. If you want it human readable, grab libxml2 (works on Windows too) and store it as XML. Decide which problem you are solving because if you don't need (i.e. it's not helpful) it human-readable and/or want the ability to search it quickly without loading the whole thing into memory, then SQLite is probably a better solution.

    1. Re:Flat file is useless by blippo · · Score: 4, Insightful


      Well... XML is human readable in the same way as a sand is edible.

      If the OP wants to use a tool better than notepad for editing, he probably should try Open Office.

    2. Re:Flat file is useless by bluefoxlucid · · Score: 2, Funny


        <ssid>MyNet</ssid>
        <encryption>
          <type>WEP</type>
          <key_size>128</key_size>
          <key>0xAAAAAAAAAAAAAAAA</key>
        </encryption>
        <channel>11</channel>
      </entry>

      Very human readable.

    3. Re:Flat file is useless by killmenow · · Score: 2, Funny

      Very human readable. For varying definitions of "very", "human" and "readable".
    4. Re:Flat file is useless by thegrassyknowl · · Score: 1

      win.com was human readable too, not that its content made any sense when you read it!

      --
      I drink to make other people interesting!
    5. Re:Flat file is useless by Craig+Ringer · · Score: 1

      ... which uses HSQLDB, a Java database.

      The OP has eliminated most of the useful options with the criteria specified.

    6. Re:Flat file is useless by Anonymous Coward · · Score: 0

      Wait! You mean XML is readable?

    7. Re:Flat file is useless by da_flo · · Score: 1

      Ever heard of XML+XSL ? And all the other stuff that make XML frickin' awesome ? http://en.wikipedia.org/wiki/Extensible_Stylesheet_Language

    8. Re:Flat file is useless by quanticle · · Score: 1

      XML and XSL are very good for large applications where you'll have many data formats and you'll want to be able to import and export data without having to hard-code in your data formats. That's way overkill for this application, though. I mean, all the guy wants to do is store a freakin' list. I'd consider JSON to be overkill here, much less XML.

      --
      We all know what to do, but we don't know how to get re-elected once we have done it
    9. Re:Flat file is useless by Anonymous Coward · · Score: 0

      Well... XML is human readable in the same way as a sand is edible.
      Silicon dioxide (aka sand) is a common food additive. I've eaten processed snacks with so much they tasted gritty.

      Flat files are only easy to read because you are used to reading them. I've tried to get people to look stuff up in tables over the phone and it's insanely painful having to explain what column and row mean.

      If the OP wants to use a tool better than notepad for editing, he probably should try Open Office.
      Specifically, he should use calc. You can do many database type operations in a spreadsheet if you really want to put off learning SQL.
  18. The smart people will all say SQLite by Anonymous Coward · · Score: 0

    ... did you consider storing your data in an XML file? SQLite is probably the best choice, but there's something to be said about a human readable format. It's easy to create, parse, edit, etc.

  19. Re:OOO? Calc and Base by edisrafeht · · Score: 2, Informative

    In addition to Calc, there is also Base, the alternative to MS Access. Check it out here: http://www.openoffice.org/product/base.html It's gotta be way easier to work in OpenOffice than a whole database system (making up accounts, tables, reports, and all).

  20. Spreadsheet by benwb · · Score: 3, Informative

    Open office should do the trick.

    1. Re:Spreadsheet by Tablizer · · Score: 1

      Open office [spreadsheet] should do the trick.

      Open Office also comes with "Base", a kind of MS-Access clone.

  21. Wordpad by Anonymous Coward · · Score: 0

    Doesn't windows come with wordpad anymore?

    1. Re:Wordpad by BlueBoxSW.com · · Score: 1

      I have to agree. You're worried about outgrowning Notepad? Just use WordPad. Problem solved.

  22. SQLIte or BDB by willyhill · · Score: 3, Informative
    I'd recommend SQLite or Berkley DB. I've used BDB on a couple of projects where I needed to basically store an enormous hashtable that could be read quickly by key, and I don't think anything else comes close to the speed of that thing.

    BDB is *not* a relational database though, it's just a storage/indexing engine, which is used most notably by MySQL as a backend. SQLite on the other hand is a full file-based RDBMS with a small runtime, so it might be a bit of overkill for you in this particular scenario.

    But both of them run on Windows, Linux and the BSDs, so you won't have portability problems. And most languages have bindings for them.

    --
    The twitter monologues. Click on my homepage and be amazed.
    1. Re:SQLIte or BDB by Anonymous Coward · · Score: 0

      BDB has related hashes (name/value pairing) in the forms of GDBM, NDBM, DBM and other projects. Most of those are 10+ years old, so very mature and stable. If you use Perl, there are bindings for all of these, including SQLite (which is fantastic BTW).

      The best thing about SQLite is that Ruby on Rails (ROR) hooks into it by default for development environments. If you've outgrown XLS and run a tiny web/app server on your PC, ROR with SQLite is a nice way to due trivial web-app development. BTW, I'm a C/C++ developer with some Perl - but ROR has always interested me since it solves - for trivial programs - mosts of the problems encountered with DB driven apps. ?Here's a link to a 15 min blog creation demo http://www.youtube.com/watch%3fv=Gzj723LkRJY

      If you need a hash - GDBM is my recommendation.
      If you want SQL - use SQLite until you outgrow it.

    2. Re:SQLIte or BDB by moderatorrater · · Score: 1

      which is used most notably by MySQL as a backend Unless I'm mistaken about your meaning, it's just one of many backends that can be used by MySQL, and since it's not MyIsam or InnoDB, it's definite not the most notable use of Berkley DB. Berkley DB is used by a large, large number of OSS projects for their storage needs.
    3. Re:SQLIte or BDB by frank_adrian314159 · · Score: 1

      I'd concur with BDB. If you don't need multi-gigabyte stores, referential integrity, more than single locking writer transactional semantics, or insanely complex general query, anything past simple ISAM strategies are overkill That goes for SQLite, too (which will probably be slower, too, given the description of the data). In fact, given the data description, using a flat file would probably be fine.

      --
      That is all.
    4. Re:SQLIte or BDB by willyhill · · Score: 1

      You're right, I wasn't implying that it is the only backend that MySQL can use, or that its use in MySQL is by any means the most important or visible use of BDB in other software.

      --
      The twitter monologues. Click on my homepage and be amazed.
  23. Uhh by Auckerman · · Score: 2, Interesting

    The only thing that comes to mind is Mac only. Bento (which from the write up is exactly what you want). I really think the only thing on Windows that really comes close is Microsoft Access and even that isn't what you're looking for.

    If you are just doing tabulated data in a piece meal form, Excel with an Access back-end will do the trick, I'd be willing to be you're going to be able to find templates that help you start. You could also use File-maker (which is overkill, but easy to use) and go to the user community for starting templates.

    --

    Burn Hollywood Burn
  24. A CSV File? by shades66 · · Score: 2, Interesting

    Can be used by all spreadsheet programs (Excel,Gnumeric,OOCalc probably even Google's online offerings) for complete portability

    Depends what you want to be able to do with your data? If it's just quick searches to find local wifi points then it seems overkill to use a multi-platform/FOSS database

    --
    ---- There are 10 types of people in the world. Those that understand binary and those that don't
    1. Re:A CSV File? by g253 · · Score: 1

      Exactly. When I read the summary I thought the same thing. If you don't have a lot of data and only want to do a few simple operations on it, any spreadsheet will do just fine, even a very old or very basic one. In fact, though it's not open source, this 27 years old, 27 kb software should suffice : http://www.bricklin.com/history/vcexecutable.htm ;)

      But yeah, as everyone else said, SQLite is probably what you're looking for.

  25. You're running Vista and "demand" a F/OSS solution by Anonymous Coward · · Score: 0

    Dude, just use Excel, or Calc from OOo.

    Jesus, these ask /. posts are getting quite stupid, this is starting to resemble a newbie forum.

    As someone else suggested, Python. For that matter, Perl, or any other language that can read from a text file. VBscript would work, hell you could even create something using BATCH, it would be slow as hell as it grew, but you could do it.

    Oh wait you're on Vista, you've got PowerShell, you could probably put something together there too.

  26. Having been using Notepad... by barfy · · Score: 1

    Something that maybe just up the ladder, and quite useful for all kinds of Database work, would be the spreadsheet in Open Office.

    People all over use spreadsheets for simple list based database stuff.

    It is often easier to use the tools that are built in to do what you want.

    You can start just by entering the data, then you can increase functionality with custom data entry dialogs, charting functionality etc.

    All not online, all f/oss.

  27. SQLite as well by Zen-Mind · · Score: 1
    Over time I used SQLite for various purposes:
    • Small persistence layer in school project (Java).
    • In custom Ant tasks to store metrics and various information.
    • Even used it to replace the storage of an MS Access based application in C++ we were trying to port to other OS.
    So SQLite is quick, portable, self-contained and ... lite :P
  28. GDBM by jschmerge · · Score: 4, Informative
    If you're doing simple Key,Record storing, try GDBM (or one of its analogs: DBM, NDBM). IIRC, it's included as part of glibc. The interface for it is analogous to that of a hash table... In fact there's even native Perl support for tying hash tables to GDBM.

    If that doesn't satisfy your need, take a look at Berkley DB. It offers a more sophisticated interface than DBM.

  29. VIM seems to fit the description by Anonymous Coward · · Score: 0

    With the standard *nix tools (grep, awk, sort), seems like this is all you need.

    1. Re:VIM seems to fit the description by Aelyew · · Score: 2, Insightful

      As the original poster had been utilizing Notepad previously, vi/vim should both be considered significant upgrades.

      It would help if the OP had posted the current number of records and projected growth. Size of the database and how it will be utilized goes a long way to determining a 'best' solution.

    2. Re:VIM seems to fit the description by Waffle+Iron · · Score: 1
      vim is great for managing small collections of random data. Even better is also using something like git to track the changes over time.

      After trying all sorts of PIM software and PDAs over the years, that's the one solution that I've found most useful. The only real drawback is the steep learning curve before one gets comfortable with vim's more powerful features.

  30. Wikis on a Stick by cecil_turtle · · Score: 1

    I think a wiki sounds like what you need instead of a "database", if you're using it for personal reference and not hooking it to a web server or any kind of client application, you don't really need a database.

    For a wiki "engine" that will run locally on a PC try googling for "wiki on a stick". I'd recommend DokuWiki on a Stick, as DokuWiki uses flat files for storage. You can keep it locally on a PC, or as you may have guessed you can run it from a USB thumb drive on any computer. There are other wikis that run in this fashion as well, some cross platform.

    1. Re:Wikis on a Stick by afabbro · · Score: 2, Interesting

      Even better, look at Tiddly Wiki. No engine required - the entire wiki is run in javascript. Just one .html file to carry around with you.

      --
      Advice: on VPS providers
    2. Re:Wikis on a Stick by prestomation · · Score: 1

      Wow, I've never encountered this "wiki on a stick". I can see some awesome uses for this...

    3. Re:Wikis on a Stick by afabbro · · Score: 1

      Monkey Pirate TiddlyWiki is even better ;-)

      --
      Advice: on VPS providers
    4. Re:Wikis on a Stick by cecil_turtle · · Score: 1
      Sorry to reply to my own post but I was in a hurry earlier.

      Anyway, to further explain the advantages of a wiki is that it's still a free-form format so you can add other random information - including links and pictures and tables - as needed and you're not locked into 8 fields or whatever. If you're just outgrowing Notepad it would seem to be the next logical step to me.

      As for your requirements:
      1. it must be simple: DokuWiki and wikis on sticks in general are download, unzip and run. Maybe tweak a setting here and there. So not dead simple, but definitely in the realm of simple for anybody on Slashdot
      2. F/OSS: Yup, DokuWiki oaS uses microapache and PHP and is itself GPL v2.
      3. must work in Windows Vista: Yes, microapache works in Vista.
      4. preferably use a portable format: That's what "on a Stick" means - meant to be run from a USB stick. The data is "portable" as well, in a pinch you can open the plain text data files if you couldn't run the application for some reason.
      5. must not be an online app: Nope, these will run locally with no internet connection
      6. must not require Java: No Java required.
    5. Re:Wikis on a Stick by Inda · · Score: 1

      Neat. What more can I say? :)

      --
      This post contains benzene, nitrosamines, formaldehyde and hydrogen cyanide.
  31. What about XML? by SpinyNorman · · Score: 3, Interesting

    A database seems overkill.

    Read the XML records into an STL container for easy access.

    1. Re:What about XML? by Anonymous Coward · · Score: 0

      gosh common sense was a longer way down the list of posts this time

      tinyXML is deady easy to use, theres probably a bunch of bindings for it by now...

    2. Re:What about XML? by DragonWriter · · Score: 1

      You see using a database like SQLite, either with its normal console or the free GUI tools available as "overkill", so you want the OP to whip up a custom XML form and manipulate it with C++?

    3. Re:What about XML? by SpinyNorman · · Score: 1

      Depends what libaries you have available... At work I use my own XML "decode/encode" library that layers a C/C++ datastructure XML mapping layer over a lower level DOM-like library. Using this library you'd need precisely one line of code to read a file of arbitrarily complex XML records into an STL container (or C array if you chose) of some corresponding C/C++ struct/class, plus an initialized array - one line per struct member - to define the C/C++ XML mapping.

      Of course not everyone has *my* library, but I sure hope most people arn't dealing with XML using a low level DOM/SAX parser like Xerces! I'm sure there are many higher level libraries available.

    4. Re:What about XML? by Anonymous Coward · · Score: 0

      A database seems overkill.

      Read the XML records into an STL container for easy access. Some people, when confronted with a problem, think "I know, I'll use XML."

      Now they have two problems.
  32. How about a spreadsheet? by diamondsw · · Score: 2, Informative

    For a small number of fields like that, why re-invent the wheel? Grab OpenOffice and just create a spreadsheet. Easily searchable, sortable, extendable, and all with zero maintenance on your part.

    I recently moved my collection of serial numbers out of a defunct proprietary program and into a spreadsheet - couldn't be happier.

    --
    I don't know what kind of crack I was on, but I suspect it was decaf.
    1. Re:How about a spreadsheet? by cyberneurology · · Score: 1

      Agreed. A database of any sort seems overkill until multiple tables/objects (depending on your favorite database paradigm) are involved. OpenOffice's oocalc seems to me to be the best solution.

    2. Re:How about a spreadsheet? by Onyma · · Score: 1

      That's what I thought of immediately. Get OpenOffice, make a spreadsheet, throw on some column filters and you have the best quicky database you can find with practically zero investment. Everything else is overkill.

      --
      Play me online? Well you know that I'll beat you. If I ever meet you I'll "/sbin/shutdown -h now" you. -Weird Al, kinda.
  33. XML duh by Anonymous Coward · · Score: 0

    Answer:XML
    Try googling for longer than 10 seconds to find what you're looking for.

    And why is this on slashdot?

  34. CSV Baby by Anonymous Coward · · Score: 0

    Theres lots of CSV engines out there you can use. For example, Visual Basic has a SQL engine that can talk csv. That way you can just do regular SQL queries to read and write CSV files. It's super slick. I used it to write an outlook synchronization engine.

  35. Tomboy! by SonicRED · · Score: 1

    You're looking for Tomboy.

    It's like a personal, offline Wiki and you could easily have links to all of your wifi-related notes.

    1. Re:Tomboy! by SonicRED · · Score: 1

      Oh shame. I just read the part that says you are using Vista. Maybe they have a Sidebar plugin that is similar? You can't care about F/OSS that much if you're running Vista...

    2. Re:Tomboy! by afabbro · · Score: 1

      Or of course, you could have an actual "personal, offline Wiki" like Tiddly Wiki. ;-)

      --
      Advice: on VPS providers
  36. Re:OOO? Calc and Base by KenSeymour · · Score: 2, Informative

    Have you used OO Base?

    I was using it about a year ago and I found it buggy and hard to use. I was using it to access
    PostgreSQL.

    I like the other parts of OpenOffice that I use, Write, Calc, Draw.
    Of course, I have not had time to look at it since then.

    --
    "We can't solve problems by using the same kind of thinking we used when we created them." -- Albert Einstein
  37. SQLite by C_Kode · · Score: 0, Redundant

    SQLite is small, simple, minimal requirements and has a hell of a lot more functionality than a flat file

  38. Re:You're running Vista and "demand" a F/OSS solut by Bryansix · · Score: 0, Flamebait

    Oh no! It's "some uppity online geek" again. While your answers are correct, you don't need to be an ass about it.

  39. Re:Python comes with SQLite by spookymonster · · Score: 4, Informative

    Just get Python, and use the version of SQLite that comes with it:

    import sqlite3
    mydb = sqlite3.connect('sample.db')
    mydb.execute("create table contacts (fname text, lname text, email text)")

    mydb.execute("insert into contacts values('Spooky','Monster','spook@spammity.spam')")

    mydb.commit()
    mydb.close()


    You can then use the free and open SQLite database browser to browse, edit, and print your table.

    You may think you're keeping it simple by using a flat file, but you're really not. It may be somewhat easier to manually edit, but it's also easier to screw up, and I've never heard of one with the ability to undo changes.

    --
    - Despite popular opinion, I am not perfect.
  40. Try Metakit by kawabago · · Score: 4, Informative

    Metakit is a small footprint database that might fit your needs. Metakit

    1. Re:Try Metakit by slackergod · · Score: 2, Informative

      Much as I like sqllite, I agree with you completely... metakit is definitely what he wants.

      For those not familiar with metakit,
      it straddles a very interesting (to me at least)
      line between "some csv files i threw together" and "full on sql db" in terms of it's storage
      and query semantics, while at the same time being
      a flat file like sqllite.

      And it really deserves to be better known from a
      theoretical standpoint, in how it structures the
      data... especially some of the more interesting
      applications it's been put to, such as a
      graph-theory style database written as a layer on
      top of metakit (can't remember the name).

      Also, it's bound to a number of languages (python
      and tcl are the only ones i've played with).

      Perhaps if there weren't SO MANY responses saying
      "sqllite" over and over, your response would have
      gotten the informative rating it needs.

  41. Simple by Anonymous Coward · · Score: 0

    awk

  42. SQLite3 by Anonymous Coward · · Score: 0

    Really, SQLite3 is excellent.

    If you need a front-end, try Shoes, by Why the Lucky Stiff. If that doesn't fix it in twenty minutes, stick with Notepad.

  43. sed, awk, and grep... by mikelieman · · Score: 3, Informative

    echo "badger, badger, badger, badger, snake" >> my_file

    --
    Technology -- No Place For Wimps! Grateful Dead and Jerry Garcia Chatroom -- http://www.wemissjerry.org
    1. Re:sed, awk, and grep... by Dr_Barnowl · · Score: 1

      Except when you mistype ">>" as ">" one day, your entire database gets erased. Oopsie.

    2. Re:sed, awk, and grep... by xtracto · · Score: 1

      meet, "The Script":

      #!/bin/bash

      echo $1 >> my_file

      --
      Ubuntu is an African word meaning 'I can't configure Debian'
    3. Re:sed, awk, and grep... by bilgebag · · Score: 1

      That's the DROP TABLE support.

  44. For your reference only by holophrastic · · Score: 4, Insightful

    If it's just for your reference, you don't need a database at all. Databases don't become technically worth-while until you get to indexing. And until you have fifty-thousand records, or complex queries, you don't need indexing.

    So why not simply write out a tab-delimited file? Retrieval is as simple as reading every line, splitting by the delimeter, and regexp'ing whichever field you're examining. 15'000 records takes about two seconds on a modern machine. Of course, for anything more complicated, that same file gets easily imported into your favourite spreadsheet application.

    You don't need to worry about locking because you're the only one using it. And otherwise, your application simply locks the file handle, or creates & destroys a traditional lock-file.

    It's a thirty-line perl script (of legible perl). You can do it in JScript as a local HTA if you want the benefit of html etc. interfaces.

    1. Re:For your reference only by JustinOpinion · · Score: 1

      I disagree. Even if it's for your own reference, a database is (in my opinion) worth it.

      For one thing, the structure of a database encourages you to stay organized in a way that a delimited text file doesn't (e.g. enforcing strict type rules for columns).

      Perhaps more importantly, using a (well-established) database system means that you can all kinds of add-ons, extensions, and useful tricks 'for free'. Data is becomes more useful the more you're able to interact with it (by which I mean add/manage data, query data, visualize data, etc.). By using a database, you immediately have access to a whole slew of software. For example you will not only be limited to querying the data in your own code, but can also organize it using a GUI management/query tool, or a web-browser, or interface with your favorite spreadsheet, etc. (Obviously you can do all this with a "roll-your-own" approach, but it will take you much longer and probably won't be as elegant/robust/scaleable).

      In short, I've found that even for relatively small datasets, having things in a proper database can be amazingly powerful. It causes me to analyze and extract insight from the data in ways that I wouldn't have otherwise. I also love the power of command-line text processing... but for database-like information (multi-column, etc.), in my experience you should get it into a database. From the sound of the original post, it sounds like the submitter has indeed hit the level where he would extract more value from having a database.

    2. Re:For your reference only by Anonymous Coward · · Score: 0

      It's a thirty-line perl script (of legible perl) legible perl, oh you're funny!
    3. Re:For your reference only by Anonymous Coward · · Score: 0

      Databases also are worth it for queries where the equivalent non-SQL logic is much long and more difficult to write and maintain. With a SQL database, you can set up cascading views and what not so that the resultant query you have to actually write in your code is very simple.

    4. Re:For your reference only by rockmuelle · · Score: 1

      Actually, with a tab separated text file, you don't even need to do regexps to separate fields. If you have cygwin (or are on Linux/Unix/etc), you can use a combination of (e)grep and cut to do most basic queries.

      Say you have a tab delimited file with records of the form: key\tv1\tv2\tv3\t...\tvn. To find the record foo and get the key plus the first two columns:

      egrep '^foo' myfile.txt | cut -d '\t' -f2,3

      It doesn't meet the original criteria of Windows (at least w/o cygwin), but this pattern is very useful when you don't want to write a Perl/Python/Tcl/etc script.

      -Chris

    5. Re:For your reference only by Anonymous Coward · · Score: 0

      >15'000 records takes about two seconds on a modern machine.

      That's slow. Been there done it. A grade school student could even code it is VB that can do a better job.

      I can do 0.1 sec for per 500,000 records non-indexed sequential wildcard boolean search by coding in C from scratch. 130K executable with no external library requirement. File is tab delimited format.

    6. Re:For your reference only by holophrastic · · Score: 1

      I don't think you're going to get queries simpler than:
            if first_name =~ m/joe/ and last_name =~ m/^green$/ or . . .

      since we're not looking at aggregates and relations and transactions and indeces, the queries can be written as nothing more than big if/elsif statements -- which are always easier to write. Not nearly as fast, not nearly as efficient, and not nearly as maintainable, but certainly simpler as the hack solution.

    7. Re:For your reference only by holophrastic · · Score: 1

      oh, to me, the original poster wasn't anywhere near there. gotta love subjective interpretation. I think it's merely the basic sorting, entry, and traversing of the data that notepad out-grew. In which case, the headaches of the additional organization brought by a database, not to mention the dependencies and stability issues -- few things are more stable than a text file -- in my opinion out-weigh the benefits of the interface and insights. especially because it isn't being used for any particular "live" scenario.

    8. Re:For your reference only by Anonymous Coward · · Score: 0

      Or you could create an ODBC DSN interface to the spreadsheet

    9. Re:For your reference only by Anonymous Coward · · Score: 0

      This was my first thought entering the forum, and I expected this to be suggested in short order.

      Imagine my surprise when I see that it isn't mentioned until the very last post in the thread.

      Shocking. This is /. right?

    10. Re:For your reference only by holophrastic · · Score: 1

      Well yeah, in a proper language, with actual programming skills, it's not difficult to read a few megs into memory. That's not what I was saying. Just like "wildcard boolean" isn't what I said. And my point was that 2 seconds will suit the original poster just fine.

      But, just out of curiosity, how long would your C code take to produce the following from a tab-delimited file of 15'000 records with one of the fields matching m/(\d+)\w{3,5}\1/ and another matching m/$otherfield\b\w+/? Oh, and how long would it take you to write it? -- gotta charge the client too.

      someVariable = [
                { 'first_name':'Joe', 'last_name':'Smith', 'otherfield':'whatever', 'one':'something', 'another':'something else'},
      { 'first_name':'Jim, 'last_name':'Samson', 'otherfield':'moo', 'one':'cow', 'another':'angry'},
      ];

    11. Re:For your reference only by Anonymous Coward · · Score: 0

      $ grep someKey infoFile.txt

    12. Re:For your reference only by consumer · · Score: 1

      He actually specifically asked for a program to manage a "flat-file database." One example of such a database is a tab-delimited file. "Database" does not imply locking, indexing, SQL, etc. -- that's a Database Management System.

    13. Re:For your reference only by Anonymous Coward · · Score: 0

      Yes. ...
      Here is the list of free software regarding databases: http://directory.fsf.org/category/db/, but...
      A flat file in a unix file system is already a "Database", as long as you have a text editor, (an emacs exists for w32 @ http://www.cygwin.com./ if a file contains data, it is a database. the only thing particular to more official databases is that these files are always interpreted using the same structure of rows and columns, and indexes are created and maintained, and more complicated bells and whistles added, but
      -This can be completely done with shell scripts(bash is also available for winbloze fm w/in cygwin).
      -Or, emacs has a planner.el program that keeps and organizes flat files of data in ways that would satisfy your needs.
      -There is an emacs wiki system that can be very easily bent to your needs, and is used in planner.el, and
      -There is a product called remember.el that will keep track of anything you want, and allows easy reviewing of when and where and what you wanted to note down about your information.
      -There is a database system built with emacs lisp called EDB available here: http://people.csail.mit.edu/mernst/software/edb/ and it is excellent. It is extensively and clearly documented, and is very easy to use.
      There are many interfaces to existing database languages using emacs front ends, and there are many more available in common lisp, which u can use in emacs. The cygwin link gets you the most unixlike environment available for win-vistasux-doze to run your emacs in and is very easy to install and maintain, but there is another emacs for win32 built in the-land-of-the-lost(windows) without cygwin, here: http://www.neuralwiki.org/index.php?title=Installing_EMACS

    14. Re:For your reference only by mr_mischief · · Score: 1

      He didn't say to use regexps to split the fields. He specifically said to split on the delimiter (probably by using split() !)and then to use a regexp on the field you're wanting to match. He's talking about Perl, and that's pretty much how it'd be done in Perl.

      BTW, you don't need Cygwin to have grep and egrep (and ls, find, bc, cat, gzip, bzip2, split, join, wc, cut, and more) on Windows. Cygwin is great if you need to have a Unix-like environment with the right libraries and all, but it's extreme overkill for having the most common GNU command-line tools. GNUWin32 and UNXUtils both give you enough tools to ease the pain of the Windows CLI.

    15. Re:For your reference only by Anonymous Coward · · Score: 0

      for free, just use google spreadsheets or excel if you have it. for your described usage, spreadsheets are just as good and much easier, sort data easily and make an interchange data file. all for free and you get going in 1 minute. why write out all the fields etc?????????

    16. Re:For your reference only by Anonymous Coward · · Score: 0

      "Databases don't become technically worth-while until you get to indexing"

      What about concurrency? Transactions? Atomicity?

    17. Re:For your reference only by holophrastic · · Score: 1

      I believe the original poster doesn't want to use excel. But Calc would work.

      However no one should be using google spreadsheets for anything legitimate. What a great way to give away your hard work to a company ready to sell it out from under you. Talk about breaking every confidentiality and non-desclosure agreement you may have with any of your clients.

    18. Re:For your reference only by holophrastic · · Score: 1

      I mentioned those. But they still have zero value for one person managing 1'000 records alone.

  45. Powershell and tools... by rusty0101 · · Score: 1

    I've only had a passing encounter with powershell, but if command line searches are all you need for searching, and something like 'echo $newrecord >> flatfile.txt' will work for adding records, then you probably have everything you need already on the computer. If you need searches to return 'ranes' of records, for example 'all APs within 200 yards with public access' you probably will need something more complex, and a db platform like sqlite is probably what you want to start looking at.

    --
    You never know...
    1. Re:Powershell and tools... by Astrorunner · · Score: 1

      i wasn't thinking powershell per se, but if you installed unixtools, yes, you could do all sorts of stuff like that using echo piped into a file, a well structured grep to find what you want, and sed to handle deletes.

  46. Uses Java by pavon · · Score: 1

    I was about to recommend that and then realized that the the database engine that OO Base uses (HDBC), as well as the interface with other databases (JDBC) both require Java.

  47. A couple suggestions by norkakn · · Score: 1

    YAML and Ruby play well together. (or perl, or Python)
    CSV has a perl DBD driver for it.
    http://www.mathematik.uni-ulm.de/help/perl5/doc/DBD/CSV.html

  48. KISS principle by JFilz · · Score: 1

    Keep It Simple Silly Principle- Something that every programing language can use and is very open source:

    CSV - Comma Separated Values.
    "This is one text entry follows by date, integer and float",20080520,2,3.222

    Compatible with nearly everything out there. Crunch number in a spreadsheet if you need - or with any number of SQL compatible programs.

  49. You give me this? by 1155 · · Score: 1

    How is this news?

    1. Re:You give me this? by An+ominous+Cow+art · · Score: 1

      It's not. It falls more into the "Stuff that matters".

    2. Re:You give me this? by 1155 · · Score: 1

      I don't think it does.

    3. Re:You give me this? by An+ominous+Cow+art · · Score: 1

      The article has generated 685 (minus the usual trolls, etc) comments as of right now, so obviously it matters to some of the people who frequent the site. I myself learned of several alternative lightweight databases, which might come in handy in the future.

      You could argue that maybe it belongs in the 'Ask Slashdot' category, I would agree with that.

  50. CSV or TXT ODBC source by gavinjolly · · Score: 1

    I have used ODBC to both CSV and fixed width text files with good results. Try a Google Search

    --

    The weathers here - Wish you were beautiful

  51. NoSQL by shish · · Score: 1

    NoSQL, half way between standard SQL and unix command line, stores data in plain text files

    --
    I mod down anyone who says "I will be modded down for this", regardless of the rest of their comment
  52. How about /rdb? by Anonymous Coward · · Score: 0

    www.rdb.com

  53. Forgive me if this is a little obvious by Edd · · Score: 1

    If you have only just outgrown notepad, why not use XML? There are some nice tools to create and query the files, it is cross platform, tools are available for every language, and you can import it straight into a real database when you feel you need to upgrade.

    How many records are we talking about anyway?

  54. Consider an xml-based db by Doofus · · Score: 2, Informative

    There are a number of XML databases, several free and open source, that will rely only on "flat-files". You could probably get by with Microsoft's xml libraries, though there are a number of ways to manipulate and query a set of xml documents. Several of these XML databases implement XQuery which may help if your dataset grows beyond effective queries by visual inspection in Notepad.

    eXist is one alternative; while I haven't personally used it the home page indicates it's a fairly capable project.

    Sedna also appears to be feature-rich.

    There was a similar discussion on Slashdot specifically with reference to XML databases, here.

    Happy hunting -

    --
    If the Government becomes a lawbreaker, it breeds contempt for law; ... it invites anarchy. - Brandeis
  55. KeePass by GraffitiKnight · · Score: 1

    KeePass might work well for this, and has the added benefit of encryption. I use it to store a lot of networking-related information at work, and with its search capabilities it has been quite useful.

  56. CSV by gh5046 · · Score: 0

    If you don't need something to run sql-type queries against, just use Calc (openoffice.org) or Excel and save the data in a comma or tab delimited file.

  57. openoffice spreadsheets by Anonymous Coward · · Score: 0

    How about just using openoffice spreadsheets?

  58. Has been already sid: Python + SQLite by pembo13 · · Score: 1

    Will get the job very quickly, I can say that from experience. If you must have it it human readable, Python + XML.

    --
    "Thanks for all the money you paid to us. We've used it to buy off ISO among other things" -Microsoft
  59. The actual request by Lulu+of+the+Lotus-Ea · · Score: 1

    The question seems slightly misguided, and the answers suggesting sqlite3 seem very good. However, if you want a literal answer, I would think that Python's csv module does what the poster requested: http://docs.python.org/lib/csv-examples.html. Well, if you're inclined in a different way, you could use Text:CSV: http://www.cpan.org/modules/by-module/Text/Text-CSV-0.01.readme

  60. Metakit by Anonymous Coward · · Score: 0

    In addition to SQLite, there's also Metakit, which you might want to check out. There's a Windows build available.

  61. R anyone? by Anonymous Coward · · Score: 0

    How about R?

  62. Re: Err... by Anonymous Coward · · Score: 0

    One word: Emacs

  63. What do you mean by Database Program by amirulbahr · · Score: 1

    Most of the posts are going to be about a lightweight RDBMS like sqlite. I suspect however, what you are actually looking for is a fully fledged GUI frontent ala MS Access, but lightweight and F/OSS. Is that what you a really asking for?

  64. And another by Zey · · Score: 1

    To the question poser: use SQLite. Learn how to use a search engine too, for goodness sake. To the Slashdot editor who approved this question: improve. This is utterly woeful.

  65. Re:Python comes with SQLite by fyngyrz · · Score: 4, Interesting

    You may think you're keeping it simple by using a flat file, but you're really not. It may be somewhat easier to manually edit, but it's also easier to screw up, and I've never heard of one with the ability to undo changes.

    Class dbtxt includes the ability to undo changes, and features human-readbility for the flat database files. It's trivial and not error-prone at all to mod a database file to delete, or undelete a record, and of course you can do it through the database engine as well.

    --
    I've fallen off your lawn, and I can't get up.
  66. Re:OOO? Calc and Base... Base? Base? by davidsyes · · Score: 1

    I don't Free Base... I use (cue angelic/Tantric/Buddhist music...) da Lotus Approach.

    DBF IV, relational front end... works with multitudes of backends, imports to and exports from them... WYSIWYG GUI.

    Just sucks because IBM won't open up what it DOES own, and Approach (while is or at one time was sold separately in Japan, where SmartSuite was "Super Office") is stuck in SmartSuite, requiring windoze, won't run under WINE (not with my lowly skillz), and has no capability of stand-alone executable binaries...

    But, for those who have half-a-leg in windoze, the other in Linux, and want a hella nice WYSIWYG GUI that can open MySQL (and other) tables, need decent (but basic) table linking... it comes with a slew of single database tables as well as linked projects samples. Even on-line there are free or near-free medical, rental, mental health and numerous other user-created apps, and user-supported and professional (free and paid) developers who moderate the support groups. Just query Approach Users Groups.

    Approach is what ooBASE should have looked like-- 4 or 7 YEARS ago... Thanks, IBM, oo.ooo (not-created-here) and others...

    --
    Previously: "Linux... Toward the Sunrise..." Now: "Linux... Toward the-- No, now, part of Every Sunrise"
  67. How about a full Oracle Database 11g Enterprise by myspace-cn · · Score: 4, Funny

    Why mess about with filty batchfiles, bashscripts and clunky sqlite, mysql. How about a full Oracle Database 11g Enterprise? o;)

    1. Re:How about a full Oracle Database 11g Enterprise by Anonymous Coward · · Score: 0

      In case you were wondering I was kidding.

  68. SQLite is overkill! by ivoras · · Score: 1

    I don't think the poster actually wants to *develop* something using a database, so all this replies like "use (sqlite|mysql|whatever)" are completely off. He probably doesn't want to have anything to do with SQL or just how the data looks like on the byte level!

    As a reply to the poster: it's impossible to find a nice user-friendly F/OSS database that will mimic the ease of use of Access (and Access isn't really an overkill if you want something better than Notepad and less complicated than a "real" database). OpenOffice Base is the only reasonable contender (though it sucks worse then Access if you try doing advanced stuff in it) and it fits the requirements: works on Windows, file format is portable, and doesn't require Java (it *can* be used with Java but it doesn't require it).

    Othen than that, just use Excel or OpenOffice Calc.

    --
    -- Sig down
    1. Re:SQLite is overkill! by Sancho · · Score: 1

      The problem is that he asked for a database but he really wants a datastore. He wants a program to keep data for him.

    2. Re:SQLite is overkill! by Leemeng · · Score: 1

      Hi, thanks for the comment. You're right, I don't really want to deal with SQL or DBA stuff.

      I just want a better way to organise data than Notepad. I'll revisit OpenOffice Base again; hopefully Java is not needed for my purposes.

      Thanks,
      Lee Meng.

  69. Perl and DBD::CSV by Anonymous Coward · · Score: 0

    Could use Perl, with DBD::CSV (from CPAN). Very small and simple. Allows you to use SQL syntax, but excludes things like indexing, joins etc.

  70. File system as a DB by fedorowp · · Score: 1

    Using the file system as a DB meets all your requirements.

    Place one record in each text file, group according to a sensible directory structure.

    Benefits
    • There's nothing more portable.
    • You get to use your preferred text editor.
    • Any text file search tool from grep to Window's find will work with the approach.
    • It's trivial to write scripts to generate reports as needed.

    One downside is you maintain the schema yourself, just like you are doing now, (or would do with a spreadsheet). The other, rather pedantic, downside is that it is not F/OSS unless you store the files on a file system that is.

    1. Re:File system as a DB by fedorowp · · Score: 1

      Before I get modded down I should explain.

      It's not a traditional single flat-file, it's multiple ones.

      A file system is a database.

    2. Re:File system as a DB by togofspookware · · Score: 1

      Someone please mod this up.

      I use this method for all my applicatoins, and it works great. I never have to worry about data corruption, it's easy to browse and make sense of the data without having dependencies on particular applications or libraries, it's easy to make backups, and all the stuff fedorowp said.

      You might run into trouble if you have tens of thousands of records, but for your 'keeping track of wireless hotspots' project, this is probably the easiest solution in all ways that I can think of.

      --
      Duct tape, XML, democracy: Not doing the job? Use more.
  71. What he really wants: A Better Notepad by jball · · Score: 1

    Sounds to me like a better notepad might help as regular notepad is slow to load and use with large files. Also, learning SQL seems out of the question as it can a bit advanced for a hobby project. Perhaps the features of Notepad++ (free) or TextPad (free to try) can help as they open large files quickly and still work fast (Google for them). Note, the amount of system memory limits the file size that the notepads can work with. Perhaps learn to use the Vi text editor or Vim which can open and work with very large files and are not limited to system memory. Albiet, the user interface of Vi or Vim can feel frustrating to a new user.

    1. Re:What he really wants: A Better Notepad by Anonymous Coward · · Score: 0

      Perhaps learn to use the Vi text editor or Vim

      EMACS has a mode that lets you create and edit records using a template file. *ducks*

  72. Outgrown Notepad? by balinhansen · · Score: 1

    If you've outgrown notepad you might as well save yourself some trouble down the road and switch to MySQL immediately. It has a program that comes included that allows you to import the contents of your text file almost instantly and all you need to do is give it the name of your file and the delimiter character you used to separate your data, | (pipe) is a good one. Seriously though, might as well just use a relational database. Microsoft Excel 2007 supports four billion rows if you absolutely must use a flat-file database (aka a spreadsheet) please, for the good mankind, just use a relational database like MySQL. It's really easy to learn and a marketable skill to boot.

  73. Dunno by Anonymous Coward · · Score: 0

    XML?

    And use something other than notepad, there are XML specific editors out there. XML Notepad is one (not endorsing), but I am sure there are many others.

  74. SQL server express by Anonymous Coward · · Score: 0

    Use SQL server express. Free, native to windows. You can extra the engine with you own .net code. Should be as easy as download, intall, go.

  75. PCFile by Linker3000 · · Score: 2, Informative

    1993 called to recommend PCFILE!

    http://www.umich.edu/~archive/msdos/database/pcfile/

    Mind you, you'll have to toss Jim Button $10 as it's shareware!

    --
    AT&ROFLMAO
  76. How about Cardfile? by vtcodger · · Score: 1

    Cardfile was a free program distributed with with Windows 3. Basically, it is a flat database that gives you a title line/sort key and around 400 free form characters per "card". It ran fine in Windows 9 and I think in XP. Might not work with Vista as it was a 16 bit program. There used to be a couple of freeware cardfile clones around, maybe one of them would do. Cardfile also would allow one OLE object per card, but that needs 16bit OLE which is not implemented in WINE and I expect not in NT based Windows either.

    --
    You can't see ANYTHING from a car, You've got to get out of the goddamned contraption and walk...Edward Abbey
  77. Card/Field Databases by KliX · · Score: 1

    I think what the submitter is looking for is something akin to the old Card & Field based consumer databases that were quite commonplace 10-15 years ago. e.g. there'd be a little GUI, you'd drag fields of various kinds onto a "Card" which would be the template for all data entry. The database would consist of filled cards. (I assume this idea came from the way old mainframe databases/UIs used to work.)

    I was unable to find any modern implementations of this idea with a quick google search, which is annoying as they were a nice way to set up a little database of your CDs or books etc. Anyone know of projects like that? The only one I remember is from when I was a kid; "Supercard" on the Atari ST.

  78. sqlite user by Anonymous Coward · · Score: 0

    SQLite seems to fit your needs! www.sqlite.org

  79. MDAC? by Beached · · Score: 1

    You can use mdac to create an excel sheet and both update and query it. It is running under Vista and you can do this in c# which is free like you don't have to pay for it if you own Vista. It can be done from pretty much an script host too. MS has examples, but it is pretty much just an ADO connection.

    http://support.microsoft.com/kb/q195951/

    --
    ---- aut viam inveniam aut faciam
  80. Sounds like he wants an APPLICATION not a framewrk by wernst · · Score: 3, Insightful

    I'm guessing he wants a FOSS version of FileMaker Pro; something that is an application with a GUI. All you guys are suggesting various frameworks he can use to program his own. No, I don't have an answer either, other than to suggest the spreadsheet in OpenOffice.

  81. What about awk by khton · · Score: 1

    awk, sort, cut, paste, grep, sed All these utilities, or awk alone can be used to process dbs stored in flat files. That is their main purpose. With them, you can write procedures to edit and view your records interactively. And your dbs will still be accessible to any text editor.

  82. Re:Spreadsheet (oops Java) by Tablizer · · Score: 1

    Oops, poster didn't want Java-based stuff. Never mind. Open-Office is Java-based.

  83. excelish by v1 · · Score: 1

    how about using NeoOffice or one of the openoffice variants to edit a spreadsheet format such as excel? I use excel for my checkbook and I had to turn off the auto calculate for my complex set of conditional sums after it hit about 4,000 entries, so I don't think performance as a database will be an issue for your uses.

    Then if you want to export it to something else later or just to run numbers, CSV or other delimited format is compatible with most other database and spreadsheet apps. We've been testing neooffice for a bit here and it seems to be the best of the openoffice derivatives. I don't know if that particular one has a windows variant, but I'm sure you can find at least a few that work under windows.

    --
    I work for the Department of Redundancy Department.
  84. Re:Python comes with SQLite by dkf · · Score: 4, Interesting

    mydb.execute("insert into contacts values('Spooky','Monster','spook@spammity.spam')") Couldn't you have at least done an example that doesn't promote bad practices with quoting? My experience with sqlite (admittedly using the Tcl binding) is that it gets this stuff far more correct and easy to use in practice than any other database API that I've seen. I don't know if the python bindings are of that same quality; if they are, they're top notch. The code I would have written? Like this:

    set first "Spooky"
    set last "Monster"
    set email "spook@spammity.spam"
    # In practice it's really easy to put values into variables
    mydb eval {insert into contacts values (:first,:last,:email)}


    The advantage? That code is now totally armour-plated against SQL injection attacks as well as being fast. Which is nice, really really nice.
    --
    "Little does he know, but there is no 'I' in 'Idiot'!"
  85. Use the ODBC Text Driver by DVega · · Score: 1
    You can use the standard ODBC Text driver to access a text file as a database table. You can use it with any program or language that supports ODBC databases

    See "Managing data text files like database tables", and also "How To Use RDO and ODBC Text Driver to Open a Delimited Text"

    --
    MOD THE CHILD UP!
  86. sql or just raw data? by Uzik2 · · Score: 1

    try Sqlite or Qdbm ( http://qdbm.sourceforge.net/ )

    --
    -- Programming with boost is like building a house with lego. It's a cool but I wouldn't want to live in it
  87. try couch db by pbgswd · · Score: 1

    try couchdb, if all you really want to do is just store data....

  88. Re:OOO? Calc and Base by pembo13 · · Score: 1

    It was very new a year ago.

    --
    "Thanks for all the money you paid to us. We've used it to buy off ISO among other things" -Microsoft
  89. It is still a database system but.. by SixDimensionalArray · · Score: 2, Informative

    Nobody has yet mentioned that MySQL has a CSV storage engine - just create a table with type CSV and away you go. It does require the MySQL engine though.

    Otherwise, I agree with most posters who say just use a simple text and/or xml file if the data volume is relatively small. That should be more than enough!

    SixD

  90. Ruby + yaml, datamapper by haroldag · · Score: 1

    Many have suggested yaml, which can obviosuly be read on any programming language.

    You are obviously going to invest some time on coding the persistance layer of your app. Take a look at http://datamapper.org/, an ORM for ruby. If you need a more scalable or robust data storage system in the future, just get another adapter (for a DBMS, for instance) and change zero code.

    This would work on any OS, and from the sound of it pretty much solves your problem...except for the "having to learn ruby" if you don't already do.

  91. here's what works by Anonymous Coward · · Score: 0

    Find a copy of Q&A for DOS ver 4, it runs under WINE. Absolutely amazing reliability and simplicity, a truly great word processor, and a mail merge that works. Also has an unmatched natural query language, it humbles everything that exists today. Published by Symantec, withdrawn in 1990. A clone is published by lantica.com as Sesame, it works well.

    File Express is relational, works under WINE. Another great product is Paradox Dos 3.5 or 4.0, published by Borland. Not even available in the pirate market, produced great standalones with the Runtime. Pdox outshone dBase in all regards.

    FileMakerPro blows goats compared to these products.

    1. Re:here's what works by Not+The+Real+Me · · Score: 1

      "Find a copy of Q&A for DOS ver 4, it runs under WINE...Another great product is Paradox Dos 3.5 or 4.0, published by Borland..."

      Why does one need to run WINE to run a DOS app? Dosemu is a low overhead DOS emulator that is far better suited to running DOS apps on Linux with minimal resource/configuration overhead.

      http://dosemu.sourceforge.net/

    2. Re:here's what works by number11 · · Score: 1

      File Express is relational, works under WINE.

      File Express is great, and I've used it for a lot of things (mailing lists, among others, it's got great dupe checking capability). OP, however, was looking for free software, and FE is not free.

      Neither, I think, are the other programs you mention, though some are abandonware.

  92. Requirements by jd · · Score: 2, Informative

    The poster didn't want SQL, so I'm guessing they ruled out SQLite on those grounds. QDBM and Oracle/Sleepycat/Berkley DB-4 would be the smallest, fastest "pure" flat-file databases that are also cross-platform - at least, that I know of.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
    1. Re:Requirements by WuphonsReach · · Score: 1

      The poster didn't want SQL, so I'm guessing they ruled out SQLite on those grounds.

      They may not want SQL (or think that SQL isn't what they want), but it's not like SQL is overkill when packaged in something like SQLite. Create the table and read/write to it. Go ahead and treat it like a flat file. The overhead is absolutely minimal in embedded SQL systems like SQLite.

      (Plus it gets your feet wet with SQL, which carries forward to all sorts of other future projects.)

      --
      Wolde you bothe eate your cake, and have your cake?
  93. Kexi by erikdalen · · Score: 2, Interesting

    Kexi should be able to hande that pretty easily, and can even create a nice form for the data entry:
    http://www.kexi-project.org/

    --
    Erik Dalén
    1. Re:Kexi by davidbrit2 · · Score: 1

      Kexi looks pretty nice, but the fact that you have to pay $67 for a Windows build leaves a bad taste in my mouth. You'd probably be better off hunting down a copy of Access 2000 at that rate.

    2. Re:Kexi by erikdalen · · Score: 1

      yeah, but I think that was related to the qt3 licensing for windows. And that when the qt4 koffice port is finished there will be a free kexi version for windows.

      --
      Erik Dalén
    3. Re:Kexi by erikdalen · · Score: 1

      well, it's here in an alpha version already:
      http://windows.kde.org/news.php#itemFirstKOfficeAlphaReleaseonWindows

      --
      Erik Dalén
    4. Re:Kexi by davidbrit2 · · Score: 1

      Hmm, very intriguing. Perhaps I'll have to kick the ol' tires a bit this week. Thanks for the link.

  94. CouchDB by Anonymous Coward · · Score: 0

    http://incubator.apache.org/couchdb/

  95. Re:OOO? Calc and Base by pbhj · · Score: 2, Informative

    I'm still using it for a customer database, it's two main problems are it's buggy and hard to use, and slow.

    So really it's 3 main problems are being buggy, hard to use, slow* and totally bloated ...

    Actually it's not half as buggy as it was a few releases back - I can actually use it now to fill in a form without it crashing. Just tried opening a windows XP made odb file in Ubuntu (OOo 2.4) and it's slow as hell and bugged to death, so you might add portability to that list of main problems.

    [Yes I've filed bug reports].

    ---
    * slow for searching, takes about 2 mins to do a straight text search on 500 records.

  96. It seems i'm getting older... by Anonymous Coward · · Score: 0

    How about DBU.exe and a simple dbf file?

  97. Why are we trying to promote python? by tknd · · Score: 5, Informative

    He doesn't need python. He just needs a database. He can download a precompiled binary for windows that allows one to work with the database at the command line. Python is not necessary.

    And if the command line is too much, as others have noted there is already a convenient firefox extension for graphically interacting with a sqlite database.

    1. Re:Why are we trying to promote python? by mabhatter654 · · Score: 1

      SQLite is already included in FireFox 3!

    2. Re:Why are we trying to promote python? by Myen · · Score: 1

      And 2, actually. That phishing protection thing? :)

  98. Spreadsheet by rochlin · · Score: 1

    A spreadsheet seems perfect for your purpose. I won't say Excel specifically, since there are lots of other free alternatives, but Excel is fine if you already have MS Office. (Since you mentioned Notepad, I'm guessing you're on Windows). If you need to access it with software (and you're not just using it as a list for yourself) you can export/import tab delimited versions of your spreadsheet. PHP, Perl and other languages have standard modules for handling tab delimited data (or just do it yourself if you're comfortable with that). From a spreadsheet you can filter, sort, tally, etc. and adding fields is easy.

  99. You really do NOT want a DBMS, use a spread sheet. by ChrisA90278 · · Score: 4, Interesting

    Your problem is that you are looking for a "database". This is a very complex kind of program that is total overkill for your purpose. Will you really be storing hundreds of thousands of records and wanting to do some complex querries? Ifnot why not just use a speadsheet? If you want a free spreadsheet look at OpenOffice.

  100. Tcl by morrison · · Score: 1

    That's kind of one of the things that Tcl was designed for. You can easily embed an interpreter in your application and then your data is stored as a tcl file that can be parsed by the interpreter. Each line in the file would be one of your access points with a command that hooks your data into and out of your program.

    Very simple, more than adequate performance for your data, readily hooked into pretty much any exiting code/language, with an easily extended "standard" file format. Love or hate the language itself, it's one of the things it does rather well as the "tool command language".

    --
    Cheers!
    Sean
  101. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  102. Use Excel and the OLEDB driver by rubies · · Score: 1

    You can use SQL queries through OLEDB onto an Excel spreadsheet and still be able to edit the spreadsheet manually if necessary. Yah, it's not F/OSS but I'll bet it's already installed.

  103. Why does this seem so odd? by TheNetAvenger · · Score: 1

    Is it just me, or have people completely gone nuts?

    How about a freaking text file, CSV?
    Cobol even?
    XML even?

    If you just need a FLAT DB, meaning more than a 'format' and an 'interface' then freaking even make your own, write a few lines in Pascal.

    Heck, on Vista you could write an application using the Windows scripting built in, and in like 5-10 lines to do everything you want, and stuff the data in every format ODBC can talk to from XML, CSV, to even MDB formats.

    (OS level scripting today is not like the old *nix or DOS/bat world. They are extremely rich platforms on their own using common language syntax from JScript,VBScript,C#,etc..)

    Holy scary cow. What do people think we did before dDase, Oracle, Access, etc for small localized non-relational data storage?

    I swear SlashDot has gone to the script kiddies, or should I say, the unable to script kiddies.

    1. Re:Why does this seem so odd? by NullProg · · Score: 1

      Is it just me, or have people completely gone nuts?

      Nope. I agree, people are nuts :)

      I just trashed one 300 line function a PHP programmer wrote to see if a keyword was present inside of an XML file (Bitching about XML abuse by PHBs is a topic for another day).
      Replaced the whole (three minute) XML parser he took two days to write with a two second call:


          $syscall = "grep -n " .$keyword ." " .$File ."\n";
          exec($syscall, $output, $ret_val);
          if($output[0] != ""){ /* success */


      To be honest, I blame the Computer Science courses. Students need to get back to BASICs (Pun intended, Maybe on a Apple II emulator) before they start writing code in .Net/Python/Java/PHP whatever.

      Enjoy,

      --
      It's just the normal noises in here.
    2. Re:Why does this seem so odd? by Anonymous Coward · · Score: 0

      Hope your $keyword or $File are not entered by a user. Otherwise, have fun if someone makes $keyword=";rm -Rf /". Sure, you probably won't be running the PHP as root, but such a command can still do quite some damage.

    3. Re:Why does this seem so odd? by vtcodger · · Score: 1
      No, it's not just you

      ***Holy scary cow. What do people think we did before dDase, Oracle, Access, etc for small localized non-relational data storage?***

      As I recall, they did real work. But struggling with relational data bases and idiosyncratic GUI tools is much more fun apparently. (Access? Excel? Have these people ever actually tried to use them to handle a small database?). I'd rather have a root canal without anesthetic than use Access for a small job. Excel is loaded with whacky "features" that will lie in wait and trash your database unexpectedly. My favorite was a user who tried to cut and paste a ZIP code field only to find that Excel had thoughtfully incremented each and every ZIP code that was the same as the row above it by one ... starting from the bottom of the paste area. i.e a bunch of 05452 fields now read 05452, 05453, 05454 .... There are some posts earlier in the thread about the bizarre transformation that Excel may inflict on CSV file fields.

      In fact there were some decent flat database tools in MSDOS that were straightforward and effective for data bases of small to moderate size -- up to a few thousand entries. Regretably, It's been too long and I no longer remember the names.

      --
      You can't see ANYTHING from a car, You've got to get out of the goddamned contraption and walk...Edward Abbey
    4. Re:Why does this seem so odd? by TheNetAvenger · · Score: 1

      Have these people ever actually tried to use them to handle a small database?). I'd rather have a root canal without anesthetic than use Access for a small job. Excel is loaded with whacky "features" that will lie in wait and trash your database unexpectedly.

      You are talking about the 'Application Interfaces' to the file formats and data, so I am going to assume this topic is over your head.

      Go do a bit of Cobol, or even learn to use a quick XML parser if you want to be 'cutting' edge.

      If you are 'Opening Access' to manage data for a simple table to keep data, you really need to start back at the basics. Literally a 10 line Pascal application can do this in a Flat format, or as I suggested, use a freaking script (especially in an OS like Vista where scripting is the most advanced OS level scripting interface ever designed) that can access a simple text file, CSV, whatever, or even store the simple flat table on the corporate SQL server, and again, you are looking at 5 - 10 lines of scripting code.

      This reminds me of a few weeks ago a friend of a friend was writing a massive interface to do scanning and printing from his multi-function device, because he wanted it automated. He literally had invested weeks into the project, and I show him less than 30 lines of Windows Script that tapped WIA, and not only did what he wanted, but OCRed the documents and filed them automatically, and he could print them with a simple drag and drop or click start and typing Print DocumentXYZ from the Vista start menu. And Vista already automates this stuff to Granny level of usage already, so this was a slick conditional script that would let him drop crap in his scanner and walk away.

      Sadly he thought I was a god, when it was somethinghe should have learned a long time ago. I wonder sometimes how people get around when simple things became big projects. And usually these are my OSS friends that are reinventing the wheel, when there are libraries and OS level APIs to do exactly what they need if they had even done a freaking Google search.

      If ANYONE is using Windows, especailly Vista, go read up on Windows Scripting. It does so much itis sometimes mind blowing for average developers/IT people. (Also Vista users check out Start++, it is a novel concept of using the search integration in Vista so you can give serach or sub searches commands like [play elton john] and the computer just handles it and music starts playing.)

      My favorite was a user who tried to cut and paste a ZIP code field only to find that Excel had thoughtfully incremented each and every ZIP code that was the same as the row above it by one ... starting from the bottom of the paste area. i.e a bunch of 05452 fields now read 05452, 05453, 05454

      Again this is something,a simple question in Excel help would have fixed for the user,but Help seems so hard to click on for people. There are tons of paste,and transfer concepts in excel, and if someone is leaving the zipcode column data as 'values' they should be slapped up side the head. They are strings.

      The 'bizarre' Excel and CSV problems border from myth and poor formatted files to users that can't work the import wizard. These are NOT excel issues.

      Again, has nobody ever read about relation databases? Does data modeling and normalization seem like god like concepts? I don't except your end user to 'get this stuff' but any IT person should be able to talk 4th & 5th normal form without blinking an eye, let alone freaking data structures that I usually teach in Week one of 101 classes.

    5. Re:Why does this seem so odd? by ToasterMonkey · · Score: 1

      Are you sure his 300 lines weren't parsing the XML, and looking for a keyword in a specific location & context?

      I don't know the whole situation, but if some PHB made the decision (right or wrong) to go with a XML based format, one might think you should at least exercise due diligence and parse it correctly, which that grep simply isn't doing :\

      I think I'd have to side with the other guy, unless more information comes to light.

  104. Try ADO in Visual Basic by Anonymous Coward · · Score: 0

    If you write it in Visual Basic 6 it will work on all versions of Windows from 95 up. You can use the ADO RecordSet and persist it to a file.

  105. use a spreadsheet by crevistontj · · Score: 3, Insightful

    Why one earth would you use a database to store one table on information? Save youself some trouble and use a spreadsheet.

  106. ZooLib by MichaelCrawford · · Score: 1
    • ZooLib C++ cross-platform application framework
    It includes a database implementation in which the databases are kept entirely in a single file. One reason for doing so was that the databases could be used for end-user documents.

    It has two options for the low-level storage, one of which is fault-tolerant.

    The database has been proven in real-world use, for example in Knowledge Forum, a multimedia client-server educational database.

    It's not SQL - it's a C++ API. So you'll need to write C++ to use it. But it would be easy to write an application that would handle your user interface and that deals with the database internally.

    If you use it, you'll want to subscribe to the ZooLib-Dev mailing list. Tell Andy I sent you.

    And yes, ZooLib's terrible website is all my fault - I didn't know much about web design when I did it. I've been meaning to redesign for years.

    ZooLib has the MIT license.

    --
    Request your free CD of my piano music.
  107. Vista SI! Java NO!?? by phish · · Score: 1

    Does anyone else think it's ironic that a person wanting to run a database on Vista has an issue with Java? Yea, must be Java's massive memory requirements, right?

  108. HTML or XML by Anonymous Coward · · Score: 0

    HTML table or XML

    why?

    I'm assuming if you want "database", it implicitly applies to "index" and "data structure". If you put your data in XML, use AJAX method or use native browser "search" feature to navigate through data.

    Or better yet, keep them in flat text file! Just write a XML wrapper in cgi or AJAX to pull that data out. You can even create a rss feed if you really want to go crazy!

  109. laudable homicide (was Re:Err ...) by Anonymous Coward · · Score: 0

    For example, if you ask it to read and write this:

    May 20,5/20,1.000

    you get this:

    20-May,20-May,1

    That might be okay if those were really two dates and a number, but I was never asked if they were. (OOO Calc is just as bad: it asks, and by default modifies the data). Can we make killing whoever is responsible for this behaviour the canonical example of laudable homicide?
    1. Re:laudable homicide (was Re:Err ...) by djmurdoch · · Score: 1

      Sorry, that label is already reserved for getting the guy who decided to suppress filename extensions in Explorer. But it can be a supporting example.

  110. AWK is a good choice... by hendersj · · Score: 1

    Why not write it in awk? Grab a copy of "The AWK Programming Language", there's loads of examples of flat-file databases in there.

    For that matter, some would say perl would do the trick as well.

    But also, I'm puzzled by the "must not be written in Java" aspect. Why an exclusion based on the programming language - surely a tool that does the job does the job regardless of the language it's coded in. I can see the "not web-based, not complicated", but for a simple app that does the job, it shouldn't matter what it's written in.

    "I want to build a house, but without using a hammer or a saw of any kind" - I just don't understand that thought process.

    --
    Insanity is a gradual process; don't rush it.
    1. Re:AWK is a good choice... by LCAOMO · · Score: 1

      I got my copy of "The AWK Programming Language" at Half Price Books. It's got code to implement a relational database in AWK if you need joins. And AWK code should run in perl with minimal fuss.

    2. Re:AWK is a good choice... by hendersj · · Score: 1

      I don't know that Perl will interpret awk code, but there is a program called a2p that will convert awk code to Perl.

      --
      Insanity is a gradual process; don't rush it.
  111. MySQL CSV engine by stingray · · Score: 0

    From http://dev.mysql.com/tech-resources/articles/csv-storage-engine.html

    The CSV engine provides four basic benefits to those using MySQL:

          1. It allows flat files to be referenced via SQL and used alongside other data that has been loaded into MySQL.
          2. Editing data stored via the CSV engine can be performed even when the MySQL server is down through standard file editors.
          3. Data from any CSV engine file can easily be imported into any standard spreadsheet program (e.g. Microsoft Excel).
          4. It allows for the instantaneous loading of massive amounts of data into the MySQL server.

  112. Kirbybase? by HiThere · · Score: 1

    The current google search returns mostly entries referencing the Ruby version, but there's also a Python version.

    Kirbybase stores its data in text files, so I think that counts as flat.

    http://www.netpromi.com/kirbybase_ruby.html
    http://www.netpromi.com/kirbybase_python.html

    (s.a. http://www.netpromi.com/index.html )

    Caution: I've never used this product. I just noted that the specs seem to fit your request.

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
  113. Open-Office to the rescue by Anonymous Coward · · Score: 0

    If you just want to manage a list of items that won't be "related" to another list of items, Open-Office Calc will do the job. Open-office "Base" is also a good choice. While it's not as complete as Access, it'll do what you're talking about.

  114. Tcl provides just what you ask for by blacksqr · · Score: 1

    Not one but two Tcl-based flat file database systems exist:

    TclVSDb (Tcl Very Small Database) http://sourceforge.net/projects/tclvs/
    Provides multiple hierarchical tables (with rows and fields) per database and multi-user concurrent access with locking. Database files are standard ASCII and are portable between platforms.

    Starbase http://wiki.tcl.tk/3444
    A simple relational database system. The basic table manipulating features are similar to the /rdb system (but does not require it). The data files are just ASCII tab delimited tables. You can use either Unix file utilities or a pure tcl interface program.

  115. How about... by ZarathustraDK · · Score: 1

    How about a graphite-on-cellulose based solution? Advantages include tactile feedback, choice of open-format-specifications which everyone can read if you wish it, and the possibility for safe data-deletion through applied combustion just in case the pigs show up?

    --
    If you quote this signature there'll be 72 copies of Windows ME waiting for you in Heaven.
  116. too simple? by gbh1935 · · Score: 1

    how about just a spreadsheet? Open office?

  117. why not by Anonymous Coward · · Score: 0

    JSON?

  118. Re:Python comes with SQLite (What about cPickle?) by adonisv1 · · Score: 2, Informative

    Why not the pickle/cPickle module? Not a flat-file but easier to manipulate since your just serializing native Python objects.

    e.g.

    import cPickle
    class Record:
    def __init__(self, fname, lname, email):
    self.fname = fname
    self.lname = lname
    self.email = email
    # ---
    # Write out the data
    records = list()
    records.append(Record("John", "Doe", "jd@email.com"))
    output = open("records.db", "wb")
    cPickle.dump(records, output)
    output.close()
    # ---
    # Read back the data
    inputFile = open("records.db", "rb")
    data = cPickle.load(inputFile)
    for record in data:
    print record.fname, record.lname, record.email
    inputFile.close()

  119. Use CVS format... by capn0jack · · Score: 1

    This is what I do for license keys that I keep on my thumbdrive. You don't need the speed and management of a database, so start in any spreadsheet app (you can use OpenOffice), and save the file to CVS format. If you don't have something like a spreadsheet app available at the moment, you can still just open it in a text editor. Thanks, Chaz

    1. Re:Use CVS format... by haroldag · · Score: 1

      [...] save the file to CVS format CVS format is an overkill for this! So is Subversion or git formats...
      CSV works fine though ;)
    2. Re:Use CVS format... by capn0jack · · Score: 1

      LOL, thanks . . . the power of suggestion. Thanks, Chaz

  120. Berkeley? by mindstrm · · Score: 3, Informative

    Berkely DB?

    1. Re:Berkeley? by Anonymous Coward · · Score: 0

      Exactly. So many people suggest SQLite and yet note that the relational features are probably an overkill. There exists a non-relational database, and it's Berkeley DB.

      Now the only problem with BDB is that it is strictly a key-value database. Column lookups for anything other than the key will be a pain.

      Might I suggest Org-mode's tables instead? But then again, an installation of Emacs may be worse than the Python installation recommended by some others.

  121. FOSS text format data storage mechanism... hmm.... by Anonymous Coward · · Score: 0

    It's called XML, some of the kids use it these-a-days.

  122. You're an idiot by Anonymous Coward · · Score: 0

    You're an idiot. Use a spreadsheet.

  123. Firebird? by LiENUS · · Score: 2, Insightful

    Firebird (http://www.firebirdsql.org/) works with many programming languages so it is not tied to java, works fine with windows vista and operates without an installed server in its "embedded server" mode.

    1. Re:Firebird? by wwahammy · · Score: 1

      I was going to suggest that too. The .NET bindings are pretty good and work well with Visual Studio's built in tools. No idea if that's what he's looking for though.

  124. firebird db by Anonymous Coward · · Score: 1, Interesting
  125. OO Base? by kcredden · · Score: 1

    I'd recommend Open Office BASE but I still sort of consider it a hack job. Too flakey, and may still be overkill. At least it's not a server program. - Kc

    --
    -- Kevin C. Redden kcredden@ gmail 392992 .com (take out the 392992 for e-mailing me. Spam control)
  126. Wordpad by r_jensen11 · · Score: 1

    Seriously, if Notepad was all you were using before, and that was good enough, give Wordpad a shot. I've had to use Wordpad to open multi-megabyte .txt's when Notepad failed me.

  127. Re:You really do NOT want a DBMS, use a spread she by Anonymous Coward · · Score: 0

    really open office calc and M$ office excel are flat file databases :-p

  128. Excel or MSWorks by jekane · · Score: 1

    Why not use Excel? A spreadsheet has a 65,000+ record capacity and can be sorted by the fields. As to portability you can save it as a csv comma-separated-values file. Don't have Excel?... I think all Windows systems come with free MSWorks. And it will do the same.

    1. Re:Excel or MSWorks by shadow42 · · Score: 1

      Why not use Excel? Wait, don't tell me, I know this one...
  129. F/OSS by ProfessionalCookie · · Score: 1

    For a guy whose looking for a F/OSS app you sure have a lot of non-open requirements. You wanna make a private-only database on Vista?

    I don't mean to be a total downer (in coach-z's words) Why is F/OSS even a requirement for you?

    On a more helpful note you might consider that mySQL doesn't take much to run if your dataset isn't huge and as long as you've outgrown notepad you might consider it for super easy manipulation of data, versatility, ubiquity and simplicity. It meets all of your requirements except !sql. It's not overkill- it's easy. Setting up a local database is really really simple. If you were on a Mac I'd recommend MAMP- it's a self contained installation that includes and Apache/PHP for easy web interfaces.

    Or use Python. And if it scares you, have a look at Google's App Engine. It include the GQL database API that will write to a local database in the development environment. The local database is persistent until you erase it.

  130. Python dictionaries by ekagauranga · · Score: 0

    Why not python dictionaries?

    Like

    wifi_spots = {
      'Spot1' :['field0', 'field1', ...],
      'Spot2' :['field0', 'field1', ...],
      'Spot3' :['field0', 'field1', ...],
    }

    then you can access it like

    fields = wifi_spots['Spot1']

    field0 = fields[0]

    --
    chant Hare Krishna and be Happy
  131. Shapefiles by w3rdna · · Score: 1

    Shapefiles use a dbase file along with the shp file. Tons of software can read the dbase file and you have the added feature of storing the UTM locations of the access point and graphing it.

    There is a c library called shapelib http://shapelib.maptools.org/ that allows for you to write the files easily. The c code can be compiled and run on vista and almost any other OS.

    How about that.
    W3rdna

  132. SImple! why must everyone over-engineer solutions? by Anonymous Coward · · Score: 0

    omfg this is soo simple! Why is everyone over-engineering this?!? classes and objects and blah blah blah? holy crap!

    no no no! a thousand times no!

    the answer is simple:

    STRUCTURED (INDEXED) TEXT files!! hello!
    by this I mean, use NORMAL text files with RECORD formats. like

    file of record {name, address, city, phone, etc}
    read, write, delete records as you please!

    you can even make a second file as an index name and record # if you like.

    I invented this back in the late 70s, it's free to public domain, have fun, and enjoy!

  133. SQLite by spottedkangaroo · · Score: 1

    SQLite works from most languages and on most platforms (even embedded ones). It's perfect for most single user things -- although, it's ... er ... skewed toward SQL.

    --
    Imagine if you weren't allowed to use roads because a bus company complained about your driving 3 times. --skunkpussy
  134. Embrace the dark side by Anonymous Coward · · Score: 0

    I know you said free open source... but will just free do?

    You mention SQL and Access... what about SQL Express? It's free, "portable" in the MS sense of the word (you can run it on compact framework - not sure if that includes Mono or not), and while it MIGHT be overkill... it might also be an incredibly useful tool with an excellent built in GUI.

    I, personally, use SQL Express frequently even for mid-size hobby stuff... if you use visual studio for development, sql express can feed it extra metadata to support design-time coding - it's fairly simple to ask visual studio to derive an object model from a table or set of stored procedures (for select, insert, update, and delete - it'll even generate the SQL for you) - it gives you automatic object to database persistance, and by specifying a select stored procedure or query with SQL parameters, an easy way to filter or search on different parameters when retrieving as well.

    Did I mention that there are automatic GUI components, both for windows and web development that make use of this information to present rich editing functionality?

    Ok, enough harping on the ways of the borg. If I for some reason were opposed to SQL Express, the first thing I'd look at is XML object persistance in whatever language I'm using. .NET has great XML Serializers, and I've seen comparable technology for a lot of other systems. If you're a true XML geek, a tool like Altova XMLSpy would take care of all you need to create a storage format for that data - you can even pop a boner writing a DTD, if that's your thing... the result would be an automatically type-checked rich metadata store that could not only duplicate your flat file proposition, but also deeper hierarchical data relationships, and yet remain human readable and writeable, as well as machine editable and searchable. You can even use an XML based language, XSLT, to transform your document and create reports out of it.

    MySQL, while being free, is quite complicated to implement. If I were willing to implement MySQL, I'd probably be pretty excited about SQL Express...

    I suspect that you don't want to learn a database system or much in the way of programming however... again, I'd stress that SQL Express comes with a real easy to use interface - it didn't take me any training in SQL or database technology AT ALL (I was a complete virgin) to start creating tables and filling them with data - and the GUI's gotten much better since then.

    If you REALLY want a full and open toolchain, and don't want to do any heavy lifting with a real database server, again I'd go with XML... just instead of XMLSpy or comparable commercial software, use Eclipse with the appropriate plug-ins (there are a ton for XML editing - browse around and find the one that's the right mix of complexity and easy of use for what you want to do)

    If you are somewhat of a programmer but don't want to learn database technology - you might look into CSV (comma seperated value) files - basically you just seperate the data in each field with commas, and all the programs that read/write the CSV just "KNOW" (have hardcoded) the order of fields. If your data might in fact contain commas, it gets more complicated, where you can either quote fields that contain commas, or change to an alternate symbol that's less likely (the pipe character "|" is a pretty common choice)

    I still think that for a flat file format that's one step above notepad, XML is a more likely choice than CSV, as it's a self-describing data format... that at least is one tiny step above CSVs IMHO

  135. Lua by Samah · · Score: 1

    If you're partial to Lua, it has SQLite bindings (and various other DB engines).
    I've not used LuaSQLite personally so I can't give you a code sample, but I wouldn't imagine it would be much more code than the Python example.
    As a bonus, Lua was primarily designed as an embedded language (of course Python can be embedded too).

    --
    Homonyms are fun!
    You're driving your car, but they're riding their bikes there.
  136. OOCalc Spread-sheet?? by YouAreNotTheBest · · Score: 1

    From your requirements, looks like a spreadsheet would be sufficient.. Should be better than notepad for sure.. You can always export to CSV and import to database programs later..

  137. +1 Funny by mbessey · · Score: 1

    I'm not even going to go into the issue of whether it's a good idea to store a database in XML, but you're kind of proving the other guy's point for him when you call that "human readable".

    1. Re:+1 Funny by bluefoxlucid · · Score: 1

      MyNet,WEP,128,0xAAAAAAAAAAAAAAAA,11
      MyNet,WPA,TKIP,128,0xAAAAAAAAAAAAAAAA,3
      MyNet,WPA,AES,128,LEAP,7 ...

    2. Re:+1 Funny by xtracto · · Score: 1

      I have never understood why do people think XML is bad. I have use it to store configuration files for several projects and I found it quite good at storing hierarchical data as well as data sets, when you do not need (as parent said) to store big amounts of data (to use sql).

      Another convenience is that you can directly open whatever XML file you have into Excel or modify the XML file via XSLT and present it in any way you want.

      Personally, I find grand parent poster quite readable and easy to understand as a hierarchy when it is properly indented. Of course, even visual basic program would be difficult to read if you had it all in one line and without spaces...

      --
      Ubuntu is an African word meaning 'I can't configure Debian'
    3. Re:+1 Funny by Anonymous Coward · · Score: 0

      I can read the GPs example perfectly well, but a good XML editor will increase the readability a lot. Different colors for the tags and attributes help greatly, as well as the ability to fold. Do you really think CSV is more readable?

  138. Oracle XE by idahodba · · Score: 1

    Why not use Oracle Apex. Its Oracle's Free version of there database. Stable as a rock, is pretty light on resources and it also comes with Apex which is a RAD tool for developing quick web based apps for the database with little or no programming knowledge.

  139. Re:Python comes with SQLite by Anonymous Coward · · Score: 2, Insightful

    ...because he wants to hack his own system...

  140. Re:Sounds like he wants an APPLICATION not a frame by Toddlerbob · · Score: 1
    I hope this is not too offtopic. I use the database module in Works (which is basically a spreadsheet, but with the ability to display a line as a record) I love it because I can search for text in all fields with a simple command and the search results come up like a little spreadsheet. It's so easy and perfect for what I want.

    It's not too expensive, but I would love to find a non-Microsoft equivalent, just because, well, just because.

    I've never seen anything like that, though. Has anyone? It seems like most db programs want to be told which fields to search and not simply search all fields. On the other hand, I could be totally and irrevocably wrong about that.

    Meanwhile, for a small amount of cash, the Works database module would be ultra-simple and appropriate for use by the original poster.

  141. FileMaker Pro by Ngarrang · · Score: 1

    It isn't free, no, but older releases of File Maker Pro can be found on eBay for dirt cheap. It is flat file in its older incarnations. DBs are simple to create, as are forms, searches, etc.

    As a bonus, it is cross-platform with Mac OS versions of File Maker Pro. It is well-supported with a rabid following.

    --
    Bearded Dragon
  142. Any F/OSS software is overkill - lost art of DOS by lumkichi · · Score: 1

    NT has a pretty powerful DOS batch scripting program. I'm not entirely familiar with Vista, but I suspect it still retains that capability. Here's how the Vista (and XP and Windows 2000 and NT) batch scripting will suit your needs: 1) simple 2) works in Vista 3) portable 4) not an online app 5) does not use Java It does fail miserablely in the F/OSS requirement, however - it will be proprietary to your needs. But on the upside, there are no libraries to install -- it's all built in. --------------- DOS scripting can do variable expansions, for loops of numbers, for loops of directory entries, and such. It can be configred to read in entries from flat files, and parse each line and split arrays, and such - perfect for your needs. --------------- Failing that, you can write simple Visual Basic files (.vbs files) that you can execute from the command line. These things are great, because you can use the Windows Scheduler to schedule execution of these batch files, the batch files can spawn other batch processes, kick off other jobs, etc. http://www.computerhope.com/sethlp.htm http://www.robvanderwoude.com/variableexpansion.html http://www.maem.umr.edu/batch/dadd.htm

  143. What issue are you trying to solve? by poohknight · · Score: 1

    What issue are you trying to solve? Is it a matter of managing the data, or querying/reporting on the data? If it's managing the data, then a spreadsheet is probably a good choice. If it's querying/reporting, since you've already got the flat-file with Notepad, you might look at LogParser from Microsoft (http://www.microsoft.com/technet/scriptcenter/tools/logparser/default.mspx). While not F/OSS it's very good at parsing data from various file types for queries and reports.

  144. ReHow about an old copy of APPROACH by bricko · · Score: 1

    Lotus APPROACH was a simple data base back when. It had a good GUI front end for a really good and simple Report writer section and could be either a simple relational database or Flat file. I still use it for little personal type things and you can still find it by some searching.

  145. Dirk by Anonymous Coward · · Score: 0

    Maybe that Zim can be an answer to your problem. Like the website says 'Zim is a WYSIWYG text editor written in Gtk2-Perl which aims to bring the concept of a wiki to your desktop' (http://zim-wiki.org/)

    Zim stores its pages as normal files (and directories), so it is easily processable with the programming language you like.

  146. Re:OOO? Calc and Base by KenSeymour · · Score: 1

    Yes, it's a shame. I can honestly say that I use the OpenOffice spreadsheet every day
    and it works great. I also really like OpenOffice draw and use the Writer and presentation
    portions all the time.

    But Base has a long way to go. (IMHO)

    --
    "We can't solve problems by using the same kind of thinking we used when we created them." -- Albert Einstein
  147. Re:Python comes with SQLite by Just+Some+Guy · · Score: 2, Informative

    I don't know if the python bindings are of that same quality; if they are, they're top notch.

    The sqlite3 module as shipped with Leopard says that it supports question mark substitution, so his example would be better written like:

    mydb.execute("insert into contacts values(?, ?, ?)", ('Spooky', 'Monster', 'spook@spammity.spam'))

    BTW, the same could be written for PostgreSQL like:

    mydb.execute("insert into contacts values(%(first)s, %(last)s, %(email)s)", {'first': 'Spooky', 'last': 'Monster', 'email': 'spook@spammity.spam'})

    Hopefully sqlite3 will get the same standard substitution in the future, but at least it is possible to do it safely today.

    --
    Dewey, what part of this looks like authorities should be involved?
  148. What about a .DBF file ? by Anonymous Coward · · Score: 0

    You know, the old dBase III format ...

  149. Re:Python comes with SQLite by spookymonster · · Score: 1

    Class dbtxt includes the ability to undo changes, and features human-readbility for the flat database files. I was really just referring to manual editing using a text editor. My read on his request was that he wanted to be able to monkey with the data directly by hand (hence his "done with Notepad" comment). Still, point taken.
    --
    - Despite popular opinion, I am not perfect.
  150. What wrong with Excel? by Anonymous Coward · · Score: 0

    Just do ODBC access to an Excel file. Each sheet is a table, just make column names (row 1) sql compliant.

  151. Re:Sounds like he wants an APPLICATION not a frame by shayne321 · · Score: 1
    I'm guessing he wants a FOSS version of FileMaker Pro;

    Yup, that's it.. While not FOSS, I really like Brilliant Database. It's cheap, brain-dead simple to use, supports one-to-many relationships, and even has a 30 day free trial. I used it to put together an simple app for managing voicemail numbers at a previous job (we had a pool of 3,000 DIDs we assigned to consultants as they came and went - a real db would have been overkill, but a spreadsheet was cumbersome). I created the DB in one afternoon and never had any problems with it.

    Not affiliated with them at all, just a happy user.

    --
    Today I didn't even have to use my AK; I got to say it was a good day -- Icecube
  152. Whiskey Tango Foxtrot! by Anonymous Coward · · Score: 0

    It's called a spreadsheet.

  153. Perl FTW! by Anonymous Coward · · Score: 0

    Why not just use Tie::Array, Tie::Hash, or DB_File (Berkeley DB)?

    Seems about as simple as can be and meets your needs.

  154. I think you mean "Free as in beer". by blazerw · · Score: 1

    Why the F/OSS requirement? You clearly don't care about the "Free, as in speech" ideas. Your requirements are:

    1. Run on Vista. Vista?
    2. Doesn't cost me anything.
    3. Can't use an open source runtime called Java.

    Just go out and pirate a copy of Office from the same place you pirated Vista and Grand Theft Auto. Then you can use Excel. I think it will meet all of your requirements ($0).

  155. Perl tied to DBM by bgibby9 · · Score: 1

    If you just want to serialize your object data from an array of objects you can simply use Perl to tie to a DBM file. It will allow you to load your object data when needed, process it, add to it, modify the objects then serialize again back to the DBM file. It's portable, small, fast and very well suited to simple solutions.

    --
    http://www.gibby.net.au
    1. Re:Perl tied to DBM by Anonymous Coward · · Score: 0

      I agree with you, bgibby9. It's the most obvious solution.

      Unless you're dealing with gobs and gobs of coupled data, using database software for most applications is totally brain damaged. This is based on 20 years of DBA experience with Oracle, Sybase, Ingres, MySQL, etc.

      And yes, of course I'm a Perl bigot.

  156. Spectate Swamp Desktop Search by SpectateSwamp · · Score: 3, Informative

    Been searching flat files with this open source VB5 program since 1999. Searches flat files at 20,000,000 cps displaying hi-lited hits in matching lines only or full context mode. Results can be exported to a results file. Append txt files together. Search and replace option. Run multiple versions with various default settings. I have been yapping and yapping about flat files, only to get great amounts of resistance from the Geeks. The search uses lots of defaults and quick keys (for typists). From startup to shutdown nothing is faster. Channel9 and thedailyWTF.com have the best threads. Check it out. It's the only program you'll ever need

    --
    Challenge: I have better access to my Video, Music, Pics and Text than anyone on Earth.
    1. Re:Spectate Swamp Desktop Search by WWWWolf · · Score: 2, Funny

      Indeed! Our tests have shown that SSDS is very capable indeed, for various definitions of "capable", "very" and "indeed". SSDS excels in Obtuse Search Syntax, Not Parsing the Content, and Extending the Joke Way Beyond Snapping Point. But we all love it anyway over at thedailywtf!

    2. Re:Spectate Swamp Desktop Search by Ant+P. · · Score: 1

      Oh no... I thought I was safe from this lunatic by staying on slashdot. :(

    3. Re:Spectate Swamp Desktop Search by Anonymous Coward · · Score: 0

      In other words you have done something that was already done by Notepad++. Except Notepad++ does it better, faster, and prettier?

      Send me teh codez plz!

    4. Re:Spectate Swamp Desktop Search by Shai-kun · · Score: 1

      Good Lord! He's real, he exists! How could I not have known...

      --
      ...or so I've been told.
  157. PmWiki by Anonymous Coward · · Score: 0

    Well you could load a webserver and PHP on your system and use a wiki called PmWiki, which is a flat file wiki. I'm not sure exactly the type of things you need, but with cookbook plugins you can create a form that creates a new page for each entry. pmwiki.org

  158. Re:XML being human readable by PeterNic · · Score: 1

    (off-topic) blippo, that's the best description of XML's human readability I've ever heard. You've gained a fan! (and you are now quoted on our bugzilla motd)

  159. Gibbon1 by Anonymous Coward · · Score: 0

    I can has xml? Seriously there are a ton of editors that understand it. And lots of tools for slopping it back and forth.

  160. Re:Python comes with SQLite by spookymonster · · Score: 3, Insightful

    1) My example was done to show how quick and easy it would be to set up and populate a table in Python.

    2) He's explicitly mentioned several times that this is for his own private non-web use.

    3) Your fly is open.

    --
    - Despite popular opinion, I am not perfect.
  161. Re:Python comes with SQLite by ubernostrum · · Score: 2, Informative

    Actually, the Python SQLite adapter supports the standard Python DB API (PEP 249), and so you can just follow its recommendations (which includes using placeholders).

  162. Re:Python comes with SQLite by fyngyrz · · Score: 1

    Not your fault, I'm sure I was being unclear; you can monkey with class dbtext database files with a text editor for data mods, deletes, undeletes, record additions and so on. They're specifically designed to make that easy and less error-prone. It's just that you can use the database engine for delete and undelete as well.

    --
    I've fallen off your lawn, and I can't get up.
  163. CSV/Excel by hurgh · · Score: 1

    Why not just use something like a CSV file. It can be opened in Excel/Open Office/Many other programs, if you want to sort it etc, or can be opened in any other text editor, so it is very portable. Seems like a good "Flat File Database" solution to me....

  164. Microsoft Mafia Controls America With Big Pharma by Anonymous Coward · · Score: 0

    In my opinion, the only way well ever see Microsoft come clean is if the DOJ ever gets some real balls and decides to go after it with a real punishment for its monopoly, which continues today on desktops, and seeking to start on the web again with Silverblight (Silverlight), just google for LOC and the deal with Microsoft which happened within the past few months. IMO its the same as Microsoft Windows in libraries and classrooms, once you get the people hooked with something they feel that they need, in this case more Microsoft shitware, people perpetuate the lock-in cycle. Look at how you feel you *need* DirectX? This is another artificially created need by Microsoft.

    It should be argued, at least for PC gaming, they have a monopoly on the desktop with gaming, as most people need to use DirectX properly in order for the games to work. Sure Wine, Cedega, and other projects are making some progress and some games may work, and believe me I try every few weeks to see how it is coming along, but again Microsoft still continues its dirty deeds. They lie about Linux and Windows interoperability, They said it couldnt be done! Novell agreement bullshit just like the Corel agreement in 2000 or 2001, where Corel Linux was promptly spun off and money/support from Corel to Wine apparantly dried up. Time and time again they come in and either buy out or pollute the environment with thier proprietary crap, and we read another dismal Microsoft article after article every few weeks or more.

    If Microsoft is so devoted to bringing Linux and Windows together, I dont see anything on their vast labrynth of shit at Microsoft.com indicating this. Where is the repository of interoperability Linux and Windows software on Microsoft.com? Oh, but you can still get their bullshit Facts on Windows and Linux, and thats about it. At least Google has a repository you can add to your Linux install for software from them. In my opinion, dont think Moonlight (Ever danced with the devil in the pale moonlight? I ask that of all my friends) will last much longer or work well for Linux users should Silverblight (Silverlight) suddenly become popular through payoffs and slight of hand corporate tricks.

    If you ever want to have Microsoft come clean, no, I dont believe it would ever happen unless the DOJ finally came down hard and raided their offices, took their hardware and software and forced them to release the code and all of the various undiscovered backdoors waiting to be found, it just wont happen. IMO, Microsoft has demonstrated time and time again it will fight tooth and nail against any punishment against them.

    Remember: Microsoft Office raid in Hungary http://www.abcmoney.co.uk/news/262007109641.htm
    You like that, monkey boy? : http://boycottnovell.com/2008/05/19/steve-ballmer-eggs/


    The rich sissy boy runs for cover while the company continues to rape countries with the "Microsoft tax" and proprietary lock in. This criminal organization needs to be seen for what it is, before it continues to buy up other companies and
    stifle innovation and crush competition. Already it has injected its vermin semen into the OLPC project. This is not a normal company competing, this is a criminal organization no different than a mafia and it needs to be stopped.

    We will all be cleansed if true justice were ever to prevail, but in the United States of Advertising, most of the people in power are paid off, with big pharma and other corporate overlords always padding the handshakes and votes. It is a lost cause, you know it, I know it, but youll still piss away your vote to one of the two parties who bend over for big pharma to slide in the money and the overpriced medications pop out the other end as we all struggle under the yoke of this dismal fucking world.

    Come clean? Microsoft? The whole system is mired in filth.

    Good luck.

    We now return you to your normal

  165. A couple of ASCII databases by hortiz · · Score: 1

    I know of a couple of database engines that use tab delimited ascii files to store data: qddb - http://www.hsdi.com/qddb/ and nosql - http://www.strozzi.it/cgi-bin/CSA/tw7/I/en_US/NoSQL/Home%20Page (mentioned in another comment)

  166. Tobu by CNeb96 · · Score: 1

    http://tobu.lightbird.net/overview.html

    A database app written on top of sqllite, with tag support for each of the entries. The interface is a little kludgy at this point but looks like it could become a very useful app.

  167. -1 Offtopic by BorgCopyeditor · · Score: 0, Offtopic

    Hey, that reminds me: what do you call a drummer without a girlfriend? Homeless!

    --
    Shop as usual. And avoid panic buying.
  168. On Windows, go ADO.NET, query your text file by icepick72 · · Score: 1

    If you're on Windows anyway, then go with the .NET framework for a custom solution. It contains data access classes (ADO.NET) that can query a database (which is overkill for your needs) but the same data queries can also be applied to CSV text files., Excel spreadsheets, etc. as if they were database tables. ADO.NET will abstract away the true data source for the most part. Therefore effectively, you can use SQL query syntax to manipulate your text file, Excel spreadsheet, or many other formats that you might choose or already have on your disk. It's very powerful and elegant, but may require some research.

  169. DBD::Sprite - Perl query interface to flat files by alancdavis · · Score: 1

    I've used this successfully on several occasions. It's available from CPAN and requires only Perl. Here's a write about extending it a bit to do joins. http://www.builderau.com.au/architect/database/soa/No-fuss-SQL-joins-without-a-database/0,339024547,320268666,00.htm

  170. Use dbm files or Prolog by littlewink · · Score: 1

    dbm files are available in several languages, e.g., Perl and Python.

    Or use the Prolog language, which allows easy storage and retrieval of records (Prolog calls them "facts").

  171. EMACS by pz · · Score: 1

    Emacs is your friend.

    Available cross-platform, is the poster child for Open Source, is extensible to add whatever specialized field searching you want (if basic C-s isn't good enough), lets you use your own format, heaps better than Notepad, smaller than OpenOffice, etc.

    Or, if you want something smaller, use nano, jove, or one of the small Emacs work-alikes. Notepad, while available on every Windows system, isn't a very good editor, and it sounds like you just need a better editor.

    --

    Put my fist through my alarm clock with its ding-dong death inside my ear. - The Blackjacks.
  172. Re:Python comes with SQLite by Hal_Porter · · Score: 1

    Couldn't you have at least done an example that doesn't promote bad practices with quoting? Bad quoting practices are useful if you get into a payment dispute with the company that contracted you to write the code.
    --
    echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
  173. Re:Python comes with SQLite by Just+Some+Guy · · Score: 1

    Actually, the Python SQLite adapter supports the standard Python DB API (PEP 249), and so you can just follow its recommendations (which includes using placeholders).

    Yes and no. While it's DBAPI 2.0 compliant, it only supports the "qmark" paramstyle:

    >>> sqlite3.paramstyle
    'qmark'

    (Python 2.5.2 on FreeBSD 7.) The "named" paramstyle looks an awful lot like dkf's Tcl example. My favorite is "pyformat", such as in my PostgreSQL example, but alas sqlite3 was telling the truth above when it claimed not to support it:

    >>> mydb.execute("insert into contacts values(%(first)s, %(last)s, %(email)s)", {'first':'Spooky','last':'Monster','email':'spook@spammity.spam'})
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    sqlite3.OperationalError: near "%": syntax error

    "qmark"-style parameters are just fine, though:

    >>> mydb.execute("insert into contacts values(?, ?, ?)", ('Spooky','Monster','spook@spammity.spam'))
    <sqlite3.Cursor object at 0x83206e0>
    --
    Dewey, what part of this looks like authorities should be involved?
  174. Why not by BigLinuxGuy · · Score: 1

    just install Cygwin (http://cygwin.com) and learn the command line tools (awk, sed, etc.)? I realize it may require working at the command line (in the Bash shell), but it sounds more like you're doing text manipulation more than anything else. The 'built-ins' provide a very powerful set of tools that can be strung together with pipes, used in shell scripts, etc. Also look into regular expressions as they will most likely provide most of the punch that you'll need.

    And for those who don't know Cygwin, it's a Unix-like environment that supports a number of standard 'Unix' tools.

  175. um by Anonymous Coward · · Score: 0

    have you tried Excel?

  176. Re:Python comes with SQLite by budgenator · · Score: 1

    actually my take was he was using notepad to generate and maintain the "database" and wanted to graduate to something a little more sophisticated like a entry form to put records into a flat file like one that is pretty trivial to program in Perl, python or php

    --
    Apocalypse Cancelled, Sorry, No Ticket Refunds
  177. PROGRAM it for the love of god! by ps3udonym · · Score: 0

    You want a flat, non-relational "database"????? That my friend is called an ARRAY. There ya go, should take you about 10 lines of code.

    Enjoy!

  178. Use a text file by Anonymous Coward · · Score: 0

    You don't need a freaking database.

    One line per record, delimit with commas or whatever the heck you want.

    grep, awk, sed, perl will work fine.

    When one day you record 100,000 damn access points then you can use standard tools to insert it into the database of your choice. Except at that point we'll have evolved past wifi to pure telekenetic internet access, or will be too busy fighting over ammo and water in the post-republican american apocalypse.

  179. SQL by twistah · · Score: 1

    For the benefit of the poster, and 90% of the computer using public that seems to make this mistake: SQL is Structured Query Language. It is a way of accessing data in relational databases. It is not a database in itself. Yet Microsoft re-branded an old version of Sybase into SQL Server, and now everything is "SQL." Never mind that EVERY database out there uses SQL to access data, now, whenever you talk to many people, they run "SQL and Oracle!"

    1. Re:SQL by Forbman · · Score: 1

      SQL Server started as a fork of Sybase 4.2 or something like that. Sybase wanted penetration onto Windows NT (for whatever reason, probably because Oracle was killing them in the Unix market), and MS wanted its own RDBMS. So Microsoft worked out a "deal" with Sybase.

      It took about 3 versions for Microsoft to get rid of Sybase' code (7.0, IIRC), replace CT-LIB/DB-LIB, etc.

      What sucks is working in a Windows shop and everyone calling it "SQL".

      Someone please put me back in Green Bay Packer fanland, I'll put up with "Or-ee-gone" instead.

    2. Re:SQL by Anonymous Coward · · Score: 0

      It was a product of the triumvirate of Microsoft, Ashton Tate/Borland, and Sybase. MS needed the other two, the other two thought they needed MS.

      The first version of SQL Server (4.21) goes back to the days of OS/2 and NT. MS had nothing but Access which was not going to cut it. Ashton Tate/Borland had dBase (The leading DOS database of the day.) which was soon going to die as Windows took off; and Sybase had an 'OK' product for the UNIX crowd. I think the idea was that they were all going to benefit. The competition at the time was Oracle, Rdb (VAX), Informix (UNIX), DB2 and small players like XDB. MS really needed to have something that worked in the enterprise (Which in those days often had about the same requirements as a "Work Group" product has now.).

      Within a short time dBase was being buried by Fox (whose company merged with MS as SQL Server was being developed). Sybase never really made it in the NT environment, but is still useful in the UNIX (and OS X) world. Rdb was sold by DEC to Oracle, and Informix was bought by IBM. Competition is a wonderful thing. Cooperation of other companies with MS generally seems to finish with just MS at the end...

  180. Qt4 + SQLite3 by der_alte · · Score: 1

    A statically linked app written in C++, with Trolltech's Qt4.4 + SQLite3 support will do the trick. If the statically linked binary results too big, just shrink it with UPX, or install the dynamically linked dlls with the app.

  181. It isn't obvious? by Anonymous Coward · · Score: 1, Insightful

    Spreadsheet

  182. Doesn't quite meet your specifications, but... by Anonymous Coward · · Score: 0

    Firebird is a great open-source database platform built around a single file. There are lots of apps out there to use it, and its fully ODBC-compliant. Its not flat-file based, so in that respect its not quite what you're looking for, but it works great under Vista and is very simple to install and work with.

  183. database 4 objects? by Anonymous Coward · · Score: 0

    It's GPL-ed, works with both Java and .NET (Vista has it built in).
    Can easily make simple GUIs or use pre-made ones.
    http://www.db4o.com/

  184. OpenOffice by Anonymous Coward · · Score: 0

    If you have been using notepad then openoffice.org calc is all you probably need. It is free and simple to use.

  185. CSV by Anonymous Coward · · Score: 0

    Me? I use CSVs for this intermediate sized record store. It's readable by almost everything. Excel and OO Spreadsheet are common choices, but almost every other formatted data handling program, including DB apps, can do something sane with a CSV. Windows can, for instance, treat a CSV as a data source (with a number of stupid limitations that are caused by shortsighted implementation of the Text data source driver from MS). It's human readable. It's a flat file. There's essentially no file space overhead.

  186. Mac solution by manastungare · · Score: 1

    ... because I haven't seen a similar product on Windows yet. It's not even free (as in beer, or as in freedom) but it gets the job done.

    XTabulator

  187. Oh god, why is this even here? by lowvato · · Score: 1

    Why not just use xml? You can put it in an archive if you want or use object de/serialization for convenient programming. If Access is overkill you could even just use a damned flat file. God! Why is this even something that you'd put on Slashdot?

  188. Re:Python comes with SQLite by Fmuctohekerr · · Score: 2, Insightful
    Explain to me how you can 'inject' anything into a string literal. Nowhere in the post does he build a SQL statement from user input. Methinks you are just a little too ready to bust someone.

    I know that feeling.

    :)

  189. LGPL by Fmuctohekerr · · Score: 1

    It's called LGPL, and it should be used more often, IMHO.

  190. Which part of that needs Python? by Joce640k · · Score: 1

    You can create the file using the command line utility which comes free with SQLite.

    No Python needed.

    Sorry for not having enough Python in my solution, but there you go...

    --
    No sig today...
  191. Re:You really do NOT want a DBMS, use a spread she by LihTox · · Score: 1

    That leads to a followup question, then: can anyone suggest a simple spreadsheet program? OpenOffice and Excel have too much bloat, and take too long to load (well, NeoOffice does; can't speak to the others), when all you need is a way to quickly read and modify tables of data.

  192. How about good old BASIC? by Anonymous Coward · · Score: 0

    Create a flat-file using GW-Basic, BASICA or something like that. Sounds old, but it will do work better than notepad. Using any database will have more overhead than this approach.

  193. Notepad++... or XML... by AnomaliesAndrew · · Score: 1

    Outgrown Notepad?

    You should try Notepad++.

    It supports column editing and all the fancy works you could need if you're not looking to get your hands dirty with programming.

    You could also try storing your data as XML and using any of the readily available XML parsers in virtually every language on every platform; however, you can expect it to hog up lots of memory and be fairly slow, especially if you need DB-like functionality like sorting.

    --
    Move all sig!
  194. Re:Python comes with SQLite by ubernostrum · · Score: 1

    Yes and no. While it's DBAPI 2.0 compliant, it only supports the "qmark" paramstyle

    Which is fine. Adapters don't have to support all the styles, they just have to tell you which one they support. And since the value of the paramstyle constant is a string, a given adapter only gets to pick one. From there it's not too terribly hard to write flexible code that generates queries with the appropriate placeholders.

  195. Shut up and use SQLite by Nicolas+MONNET · · Score: 1

    SQLite might be a "huge" 800k (but then someone advised using OOo ...), but it's used by so many apps (including Firefox), and its API are so clearly defined (C API+SQL) that you can easily consider a quasi perfect black box and drop it in. Simply put, if you roll your own flat file DB managing with file locking and such, you ARE going to have bugs, more of them than SQLite has.

  196. echo and a pipe by Anonymous Coward · · Score: 0

    echo $TEXT >> flatfile.db

  197. Why not use Perl and CSV ? by holle2 · · Score: 1

    I often prefer using Perl for such easy tasks:

    Text::CSV

    will handle a CSV file for you quite well (keep in mind that separators need to be distinct from the entered text). It can associate arrays and hashes to the lines.

    And even better, if you later feel like your Text::CSV handling is not working well enough, you can switch to or simply add code using:

    DBD::CSV

    which internally uses Text::CSV anyway. This way you can run SQL queries on your previously created CSV files.

    References:
    http://search.cpan.org/search?mode=dist&query=Text%3A%3ACSV
    http://search.cpan.org/search?mode=dist&query=%3ADBD%3A%3ACSV

  198. just use a Calc or Excel spreadsheet! by Anonymous Coward · · Score: 0

    I guess it's just too obvious. Otherwise, if you hit the limit in the number of rows, use pysqlite, q gtk+ gui for sqlite databases.

  199. Would TextDB or BerkeleyDB serve ur purpose? by srijyothsnaYG · · Score: 2, Interesting

    TextDB: If you don't have access to a database but you do have access to PHP, and you want your web data stored in a database, then this is what you're looking for! Full sql compatibility is planned as well as a perl port. This is OS-independent and is licensed under GNU GPL, has a web-based interface and is developed using PHP. (check out: http://sourceforge.net/projects/textdb). Berkeley DB (BDB): This is a computer software library that provides a high-performance embedded database, with bindings in C, C++, Java, Perl, Python, Ruby, Tcl, Smalltalk, and many other programming languages. Berkeley DB is redistributed under the Sleepycat Public License, an OSI and FSF approved license and runs on a variety of operating systems including most Unix-like and Windows systems, and real-time operating systems. It comes in three different editions: Berkeley DB(originally written in C), Berkeley DB Java Edition, Berkeley XML DB (check out: http://en.wikipedia.org/wiki/Berkeley_DB)

  200. Re:Python comes with SQLite by Anonymous Coward · · Score: 0

    Bollocs, the former code is completely immune to injection attacks because it's not accepting any external input (the sql sentence is a *constant*.)

    Get a clue before trying to teach what you barely understand.

  201. Plain old Batch Programming by edgar_zavala · · Score: 1

    I release this code under GPL ;) and yes ... it has bugs... use under your own risk...

    --- CUT HERE and ADD THE REST TO A .CMD FILE on Windows
    @ECHO OFF
    SET DBFILE=dbfile.txt
    SET _cm_exit=exit
    SET _cm_list=list
    SET _cm_delete=delete
    SET _cm_add=add
    SET _cm_find=find

    IF EXIST %DBFILE% GOTO START

    ECHO LOCATION,NAME,SSID,NOTES > %DBFILE% :START

    SET /P _exCommand=Enter your command (%_cm_exit%,%_cm_list%,%_cm_delete%,%_cm_add%,%_cm_find%):

    IF %_exCommand%==%_cm_exit% GOTO END
    IF %_exCommand%==%_cm_list% GOTO LIST
    IF %_exCommand%==%_cm_delete% GOTO DELETE
    IF %_exCommand%==%_cm_find% GOTO FIND
    IF %_exCommand%==%_cm_add% GOTO ADD
    CLS
    @ECHO Invalid Command
    GOTO START :LIST

    more %DBFILE%

    GOTO START :FIND
    SET /P _line=Search for:
    FIND "%_line%" %DBFILE%
    GOTO START :DELETE
    SET /P _line=Delete all matching:
    FIND /V "%_line%" TEMPFILE.TXT
    MOVE TEMPFILE.TXT %DBFILE%
    GOTO START :ADD

    SET /P _line=Enter the new host entry (location,name,ssid,notes):
    ECHO %_line% >> %DBFILE%
    CLS
    ECHO New entry added

    GOTO START :END
    ECHO Thank you

    1. Re:Plain old Batch Programming by edgar_zavala · · Score: 1
      actually the copy paste did not work, i did not mark this as code ... sorry, again (with some formatting)....

      @ECHO OFF
      SET DBFILE=dbfile.txt
      SET _cm_exit=exit
      SET _cm_list=list
      SET _cm_delete=delete
      SET _cm_add=add
      SET _cm_find=find
      IF EXIST %DBFILE% GOTO START
      ECHO LOCATION,NAME,SSID,NOTES > %DBFILE%
      :START
      SET /P _exCommand=Enter your command (%_cm_exit%,%_cm_list%,%_cm_delete%,%_cm_add%,%_cm_find%):
      IF %_exCommand%==%_cm_exit% GOTO END
      IF %_exCommand%==%_cm_list% GOTO LIST
      IF %_exCommand%==%_cm_delete% GOTO DELETE
      IF %_exCommand%==%_cm_find% GOTO FIND
      IF %_exCommand%==%_cm_add% GOTO ADD
      CLS
      @ECHO Invalid Command
      GOTO START
      :LIST
      more %DBFILE%
      GOTO START
      :FIND
      SET /P _line=Search for:
      FIND "%_line%" %DBFILE%
      GOTO START
      :DELETE
      SET /P _line=Delete all matching:
      FIND /V "%_line%" < %DBFILE% > TEMPFILE.TXT
      MOVE TEMPFILE.TXT %DBFILE%
      GOTO START
      :ADD
      SET /P _line=Enter the new host entry (location,name,ssid,notes):
      ECHO %_line% >> %DBFILE%
      CLS
      ECHO New entry added
      GOTO START
      :END
      ECHO Thank you
  202. awk and sort by Anonymous Coward · · Score: 0

    There's a venerable way to manage small databases: use the proben Unix tools awk and sort.
    Both are simple tools that work with plain text files (it works better if the field separator is the tab character).
    You can get innumerable references on the web. The best version for you would be the GNU Win32 port found here:
    http://gnuwin32.sourceforge.net/packages.html
    Get the Gawk and Textutils packages and enjoy.

  203. C-Tree by McAnix · · Score: 1

    I'm not sure of the cost but we used to use C-Tree quite a bit to handle our ERP objects. Its a C based flat file DB which one of its versions supports SQL http://www.faircom.com/products/ctree/

  204. .Net + XML by Fuzzums · · Score: 1

    Use the free .Net IDE with an XML-writer and a dataset. Datasets can be filtered is a SQL like manner.

    --
    Privacy is terrorism.
  205. Simple, free, and open source... by KGIII · · Score: 1

    Hmmm... Anyone but me note the disparity? Those three things CAN be done. Mod me down if you gotta but I think my question is valid. Why has it got to be all three? Does it really matter if it just "works?"

    --
    "So long and thanks for all the fish."
  206. use the filesystem! by StripedCow · · Score: 1

    Why don't you just store everything in a textfile, or in several textfiles? You can simply use "grep" to do searches, and another advantage is that you can define the format yourself. No worries that the file format is not being supported in the future. Ok, you've outgrown notepad, but you can write some very simple scripts to ease the task of data-entry. If you don't know a scripting language already (I would prefer python in this case), then this is a nice motivation to learn one.

    --
    If Pandora's box is destined to be opened, *I* want to be the one to open it.
  207. Yaml by Anonymous Coward · · Score: 0

    400 more comments... Ugh. Maybe someone will read this and find it useful. Maybe I should put this on CodeSnippets.

    I work for a big mining company that tracks similar data on a larger scale, and below is what we do. Pretty simple to change. Hardware is Garmin (any type) and Spot.

    Geologists carry a GPS that records their position every minute or so. They write observations in a log, and note the time of their entry using a standard issue "got it downtown" counterfeit Rolex. The log is converted to YAML (require 'hot_secretary') , and 50 lines of Ruby and SQL. We get a productivity report, location, and the geological assessment.

    (Quick) YAML looks like:

    entry_time: 2008-04-22 13:34:20
        lithology: Basalt
        grain_size: 0.5mm
        colour: Greyish-bluish red
        alteration_minerals:
            - py: 5%
            - cpy: 1%
            - arg: 2%
            - chl: 2%
            - sph: 7%

    We dump the GPS to CSV like:

    P1294,2008-04-22 12:18:32,8902001.040,275235.251 ...[thousands more]

    Then, after serializing things like "alteration_minerals" (AR is perfect for this), we match the GPS location with the nearest log entry. Everything can be done using SQLite, or a Ruby/Python/Whatever script.

    Anyway, hope that helps someone.

  208. Metakit by hkuiper · · Score: 2, Informative

    Take a look at Metakit. http://www.equi4.com/metakit/index.html. Its single file, small, fast and it has proven itself over many years. It is written in C++ and bindings for Python and Tcl are available. Instead of tables, rows and fields it uses similar concepts called view, index and property. Interestingly, a property may also be a subview thus allowing a mix of a relational database (flexible) and a hierarchical database (fast).

  209. Netstumbler by happymark · · Score: 1

    Have you used Netstumbler? It can store plenty of access points in details.

  210. My 2 eurocents... by Fallen+Andy · · Score: 1
    It really depends how much you've outgrown Notepad, but grab a copy of Python (if you're windows only grab the ActiveState version) anyway.

    Didn't read all the posts so far but most folks seem to have forgotten Python's inbuilt "dictionary" type and pickling. If it's a fairly small DB then that (without even Sqlite etc..) would do the job. My bet would be try the inbuilt dictionary and if your data needs get too large (or queries too complex or ad hoc) use sqlite.

    Andy

  211. xml ? by Anonymous Coward · · Score: 0

    XML might be an option ?
    It is human readable, portable, etc...

    There are plenty of tools around to manipulate xml.

    HTH
    Bruno

  212. Spreadsheet with inbuilt DataForm by donak · · Score: 1

    As has been said before, OpenOffice Spreadsheet will do the job,
    and specifically, there is a Dataform function built into "Data" on the menu.

    1. Type your headings in the first row of the spreadsheet
    2. Highlight the row as far as the end of the headings,
    3. and down for as many rows as you want to include (for now)
    4. Click on "Data" then "DataForm" and it will automatically create a "data entry form"
    5. Type info in the fields and TAB, then TAB once more to "New" or hotkey Alt+N

    We've created a monster! err, a small flat database file of sorts.
    I really miss QA by Symantec *sigh*

    --
    Don't blame me, it's usually 2 in the morning when I post ...
  213. Outgrown notepad? by houghi · · Score: 1

    Then replace it with e.g. Notepad++ or EditPad or many of the other programs.
    Then just use tab divided 'fields' in your txt (or csv) file.

    Or if changes do not happen often, you can put it in html file with tables. That you can look at with your favorite browser. Doubleclick the html file and you have your details in nice columns.

    --
    Don't fight for your country, if your country does not fight for you.
  214. Why not MYSQL? by neurophys · · Score: 1

    It is fast. There are lots of applications, also GUI. My largest single table database is 5500000 records. It returns nice tables in between 7s and 15s.

    Pål

  215. Try Kexi by jstaniek · · Score: 1

    Try Kexi (http://kexi-project.org) it has features like strong CSV support, MS Access import, and SQLite is the default engine. It's LGPL, no Java and started long before OO Base.

  216. Re:Python comes with SQLite by dkf · · Score: 1

    1) My example was done to show how quick and easy it would be to set up and populate a table in Python.

    2) He's explicitly mentioned several times that this is for his own private non-web use. But when doing so using good practices is so amazingly easy, why do even demo examples in a different way? It's not like you're using Java or C#; the right way doesn't need to be bureaucratic...

    BTW, I checked the python docs and I'm happy to report that they strongly promote doing it the right way too. Thus you can do it right for almost the same amount of code:

    mydb.execute("insert into contacts values(?,?,?)", ("Spooky", "Monster", "spook@spammity.spam"))

    (I could comment on the merits of named versus positional parameters, but that's getting too close to language flaming. Off topic for here, and uninformative in any case.)

    3) Your fly is open. Now you're just making yourself look like a silly kid.
    --
    "Little does he know, but there is no 'I' in 'Idiot'!"
  217. Excel's not always enough, but it's usually ok by billstewart · · Score: 1
    Last year I was working on a project that required joining a couple of different tables, and it was very annoying to find out that Excel doesn't have even a basic join. I guess they want you to buy the version of Office that includes Access if you want that.


    There were also other problems which perhaps it could have solved if I knew it better, such as chopping some of the fields from 11 characters to 8 (which of course made the entries non-unique), but it was easier to install vim and do an ed-style edit than try to find how, since there was enough other manipulation I wanted to do that was easier that way. If I'd been working in Linux instead of Windows I would have checked out recent versions of the old v7 join, but I wasn't going to install Cygwin just to do that; perhaps I should have.

    --

    Bill Stewart
    New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
  218. Re:Python comes with SQLite by dkf · · Score: 1

    Explain to me how you can 'inject' anything into a string literal. Nowhere in the post does he build a SQL statement from user input. Methinks you are just a little too ready to bust someone. The problem isn't the code example as written, but you wouldn't use that code as written (well, not more than once). The natural ("naive/clueless") extension is to use string substitutions to build the SQL string and that's where you start to get into trouble. Sure, for a little private database that's no big deal either, but such code practices tend to spread into places (e.g. webpage back ends). Like bubonic plague or Microsoft Exchange...

    When writing examples, do it right. You're doing the questioner and the community a service.
    --
    "Little does he know, but there is no 'I' in 'Idiot'!"
  219. Re:Python comes with SQLite by dkf · · Score: 1

    Bollocs, the former code is completely immune to injection attacks because it's not accepting any external input (the sql sentence is a *constant*.) You write SQL code where everything you do in relation to it is always constant? I admire your industry, but respectfully think you're an idiot.

    The problem wasn't the example per se. The problem was that it didn't promote good practices to a noob. That's cruel, and not just to the noob either. I hate being drafted in to clean up after someone else's mess that they made through cluelessness, and I bet you do too. Consistently teach people to do stuff the right way, and when it comes to somewhere where it matters, they'll get it right and the rest of us won't catch it in the neck down the line. Self-preservation really. :-)
    --
    "Little does he know, but there is no 'I' in 'Idiot'!"
  220. buzzhug by Anonymous Coward · · Score: 0

    I recently discovered buzhug. Pretty nice, file based simple database for python. Quite fast and does a lot of stuff that you can't do with roll-your-own db formats. The files are also human readable plain text, not some funky binary format.

    http://buzhug.sourceforge.net/

  221. I do that with simple greps and echos.. by Anonymous Coward · · Score: 0

    Why not simply install cygwin and use plain old shell scripting.
    Just use grep or awk to find, sed to update... It's the simplest way to do it.

  222. Otgrow notepad? by Anonymous Coward · · Score: 0

    If it's only for that reason, user a REAL text editor.... I would recommend vi, but i suppose you will preffer something more friendly and less usefull :) .
    I'm not in windows things, but some of my colleages used a powerfull editor called textpad or something like this...

  223. TiddlyWiki could be for you by Andreas+Schaefer · · Score: 1

    it's not really a database but perfect for structured local storage, in fact i use it for exactly what you describe.
    http://www.tiddlywiki.com/
    from the front page:
    "It's written in HTML, CSS and JavaScript to run on any modern browser without needing any ServerSide logic. It allows anyone to create personal SelfContained hypertext documents that can be posted to a WebServer, sent by email or kept on a USB thumb drive to make a WikiOnAStick"

  224. Database Program, not Database Engine by shadowless · · Score: 1

    I think the guy is interested in a database program like Base or Access *shudders*, not a database engine like SQLite or MySQL.

    --
    Programming is the art that actually fights back!
  225. Sqlite is not, in fact, harder than CSV by Anonymous Coward · · Score: 0

    I say, if you want to store tabular data in a file, use a tabular data API and be done with it, instead of implementing your own on top of generic files.

  226. Re:Python comes with SQLite by Fmuctohekerr · · Score: 1
    Well, he was ruder than I was above... but yes, I have written plenty of client-side queries that embed constant values in a SQL statement. No, not INSERTS (fairly useless, that)... but plenty of UPDATES (think updating a date time stamp to sysdate) and of course SELECTS (think a web page that displays only t-shirts).

    Concatenting strings with user values into SQL... bad. Yes. Generalizing to the point where you suggest that quotes are bad any time any place... well kind of makes you sound like a niave noob yourself and invites these sort of comments. Not every SQL statement has user-derived values. Not every SQL statement needs to be parameterized (not every API in the world supports it, either). And not every application is a web application, or deals with hostile input. And implementing security through "coding standards" and "best practices" is a cookie-cutter approach and no substitute for deep groking. If somebody on my team is learning how to code from Slashdot... I'm leaving that team.

    ON THE OTHER HAND you are absolutely correct in that BRINGING SQL INJECTION ATTACKS UP in whatever context is a service to the community and a good thing.

    And pointing out the underlying issues involved... and that things are not always so black and white... is also a service to the community.

    :)

  227. Good ideas listed here, but you want Kexi by Qbertino · · Score: 1

    There are quite a few of the usual ideas listed here (Spreadsheet, Buzhug, get a better Editor, etc.). However I second those that suggestes Kexi, as it also has a flatfile DB built in (I just checked). You can build your own forms with it and have your own, custom single table Database App up and running in minutes.

    Kexi is the way to go, and you'll even know your way around a neat DB frontend when you need to connect to some SQL persistance later some time.

    --
    We suffer more in our imagination than in reality. - Seneca
  228. Treepad by snye · · Score: 1

    well, if you have put up with enough abuse to read this far you deserve some sort of answer. Take a look at Treepad (www.treepad.com), it is available for both linux (native or via WINE) and windows and can export a subtree to html.

  229. Re:Python comes with SQLite by Rogerborg · · Score: 2, Insightful

    Do you always ignore requirements when designing a solution, or are you making a special exception in this case?

    --
    If you were blocking sigs, you wouldn't have to read this.
  230. Have you seem SHSQL ? by Mamaeh · · Score: 1


    Does SHSQL fit your needs ?

    --
    WYSIWYG Editor ? VI ! I see text, I get text.
  231. Why should he shut up? by Bozdune · · Score: 2, Insightful

    Yes, one can create work-arounds with GPL'd library code, like compiling the library separately and building a socket or messaging interface to it (which interface of course has to be GPL'd as well), but this can be a PITA as you point out. And, as I'm sure you'd agree, workarounds like that are not always possible for performance and other reasons.

    Yes, authors who use the GPL have decided that we can use their code in a certain way, and that's their privilege. However, it can be a dumb choice, because as the grandparent poster points out, those of us who do rely on proprietary licensing models for our revenue (and that would be the majority of us) are often unable to give anything back to the community as a result. I'd love to be able to use some GPL'd libraries in our stuff, and I'd love to be able to piss in those libraries to contribute bug fixes and help out in general. But the GPL forces me in another direction, usually to reinvent the wheel or to use something that's closed source and potentially less capable.

    If you author a library, think hard about the licensing model. The GPL may not be the best choice -- unless, of course, you have a religious belief that all software should be GPL, which is your decision to make. I don't get into religious arguments, so that would be the end of the discussion.

  232. Free Flat Simple Meteoric WMCYAF by koona · · Score: 1

    Bulletproof and almost as fast as DOS

                                ZGSpro

                                http://zgspro.com/

                                E-mail: zgspro@zgspro.com

    I can't be certain it runs on vista but if it doesn't I know what I would do.

    If debugging is the process of removing bugs, I suppose programming must be the process of putting them in then.

  233. Why not just install PostgreSQL or MySQL? by smchris · · Score: 1

    As long as you only use one table, it's a flat file.

    Should you decide to go hog wild and split your table into a relational set, it's all there and available.

  234. Free Fast Simple Bulletproof and Meteoric by koona · · Score: 1

    Can't believe the solutions offered here tonight folks.

    Try Table pro, I know. I have run through dozens and dozens.

    http://zgspro.com/

    E-mail: zgspro@zgspro.com

    ZGSpro .csv and .gg is the native format so you can read it with anything. exports to damn near anything.

    About as fast as DOS. WMCYPAF?

    Uses no custom database components or controls, and does not change the Windows Register or anything else outside its own directory
    It has a small footprint and makes few demands on computer resources, so TablePro can be left running on the desktop.

    koonaone

    If debugging is the process of removing bugs, then programming must be the process of putting them in I suppose?

  235. With great power comes great responsibility... by mikelieman · · Score: 1

    Yeah, you *can* nuke the file by using the '>' operator rather than the proper one in the context, '>>'.

    What's life without risk?

    --
    Technology -- No Place For Wimps! Grateful Dead and Jerry Garcia Chatroom -- http://www.wemissjerry.org
    1. Re:With great power comes great responsibility... by An+ominous+Cow+art · · Score: 1

      "With greater_than power comes great responsibility."

  236. StickWiki by Anonymous Coward · · Score: 0

    If you want your information to be really portable, and evidently you don't need anything as complex as a database; why not use StickWiki? http://stickwiki.sourceforge.net/

    That's what I used for the same job, and it worked perfectly.

  237. use hamsterdb! by cruppstahl · · Score: 1

    use hamsterdb! it's a file-based database for C with wrappers for C++, Python, Java and .NET.

    it supports database cursors, multiple databases per file, can run as in-memory database, and the next release will support logging/recovery.

    license is GPL 2 or later.

    oh, and i'm the author ;)

    http://hamsterdb.com/
    http://freshmeat.net/projects/hamsterdb/

  238. What are all the requirements? by dwarfking · · Score: 1

    The original poster is asking for a solution without providing all of the requirements. The original request is for a database program to replace a Notepad based text file, and yet most of the responses on the 6+ pages of comments have been around which programming language has bindings to which database, or discussions on SQL syntax. It would be helpful if the OP could elaborate a little on whether (s)he even has programming skills.

    I read the request as looking for an application to replace the Notepad system. If the OP was just using a text editor, then it doesn't really sound as though (s)he needs SQL. A flat file of records with the ability to do straight text search sounds like an option. The question then is what type of tool can be used to manipulate that system?

    Following the text editor/file model, one option, though larger than the 800kb discussion around SQLite could be Emacs with Forms Mode. This is also a (very big) text editor, but allows you to view a file of records in a nice editable form, but you can still open the record file directly and use all the searching capability of an editor. Of course this is probably very much overkill for someone used to using Notepad, but I suggest it merely to point out a type of option.

    Another potential option might be to use one of the wiki-on-a-stick systems. Tiddlywiki and Stickwiki would allow the OP to use a browser with a wiki interface to record the data into a single transportable file. (S)He could organize how ever desired, though if the OP wants to be able to extract the data for loading elsewhere, that could be a little problematic as these tools tend to store the text in the generated HTML page in little division blocks. Some may offer export capability though.

    So, the question is what are the full requirements, what skills does the OP have, how much configuration and/or system administration is (s)he wanting to do to have this simple system, and how do you wish to manipulate the data that is captured?

    If you want to hand edit it, then some tool that saves records in a flat structure (one per row or one per file) that can be manipulated by a text editor is needed. If all you want is some way to record information and search it, then there may be other options. Many PIM tools also offer limited record management systems that you might look into.

  239. Notepad limit? by Anonymous Coward · · Score: 0

    It's way too easy to outgrown the stupid lousy notepad.
    Just get a better text editor that can handle big text files, it's not hard, don't you think?
    notepad++ is free software, but there is also ultraedit that is good, not mentioning that you could you the best and most powerful free software text editors out there.

  240. Re:Python comes with SQLite by Just+Some+Guy · · Score: 1

    Which is fine. Adapters don't have to support all the styles, they just have to tell you which one they support.

    Did I other imply otherwise? :-) I just wish the sqlite3 module maintainer would update it to use pyformat params, although it's still perfectly functional.

    --
    Dewey, what part of this looks like authorities should be involved?
  241. Roll your own. by kcdoodle · · Score: 1

    If you want, give me the specs. I will write it in C with the MinGW compiler.

    I will read the file into a binary tree, have the program do what ever changes, input/output you want, then write back to the flat file any changes.

    This should only take about an hour to produce. You can have the source when I am done.

    The entire executable will probably be about 40kB when compiled.

    --

    - I live the greatest adventure anyone could possibly desire. - Tosk the Hunted
  242. Excel by elecmahm · · Score: 1

    If all you're wanting is an easy to use flat-file -- just use excel and learn how to use their VLOOKUP / HLOOKUP functions. It's about as lightweight as you can get (assuming you own excel already).

  243. Have you checked any old "unix programming" book? by Anderlan · · Score: 1

    Unix admins have been using some very basic parts of the unix toolkit for decades when they just need to toss around smallish flat files. You may have outgrown notepad, but I'm sure you haven't outgrown vi & awk, or libdb. Ask some people what they did before there were dozens of oss relational databases (actually, I bet their still doing what they used to do, when the size of the job requires it).

    --
    KLAATU, BORADA, NIh*ahem*
  244. Have you looked at TiddlyWiki? by Anonymous Coward · · Score: 0

    TiddlyWiki (tiddlywiki.com) with the
    ForEachTiddlerPlugin (http://tiddlywiki.abego-software.de/#ForEachTiddlerPlugin) and
    TableSortingPlugin (http://tw.lewcid.org/#TableSortingPlugin)
    will allow you to write things like:
    >

    Which results in a 6-collum sortable spread sheet (Which in this case tells me which trainings I need to ship the participant materials for, and also what other materials have been shipped).

    For a bit more of an example of this look at http://no-sin.com/wiki/WorkTracker.html

  245. try this... by Anonymous Coward · · Score: 0

    there isn't yet a windows port of the client, but try http://sourceforge.net/projects/dataman... shouldn't be too difficult to do a port....

  246. Open source java databases by youngdev · · Score: 2, Informative

    I use hsql. It has many options: flat file, memory just to name 2.

    I have also heard good things about H2 and apache derby. These have been especially valuable for embedded apps

  247. Is there a FoxPro FOSS implementation? by changos · · Score: 1

    Foxpro is old, but is very powerfull as a flat database.

  248. Not Free but Cheap by dbcad7 · · Score: 2, Interesting
    Check out Notetab Pro.. should have no problem dealing with your text files.. and you can get fancy and make imput dialog boxes, and little clips (macros) to deal with repetitive inputs... Deals well with text, if I remember right the clip engine was modeled after Perl.

    I like notetab a lot, wish he'd port it over to Linux...

    --
    waiting for ad.doubleclick.net
  249. Re:You're running Vista and "demand" a F/OSS solut by darkuncle · · Score: 1

    yeah, I think he really does. GP is right: to request a solution that's both open source _and_ runs on Vista at least entitles us to know why in the world those two mutually-exclusive philosophies are both requirements.

    Seriously, didn't this strike anybody else as bizarre when you read the article summary? If F/OSS is a requirement in the database portion, why not in the OS? Better yet, if it's a requirement in the database portion, why not just pick an OS best-suited for that task (bdb on *nix is the canonical answer, and has been for 10+ years).

    It's almost as if the article summary were a thinly-disguised troll ... nah, couldn't be.

    --
    illum oportet crescere me autem minui
  250. Why does it have to be open source? by tetranz · · Score: 1

    It seems that you're prepared to run Windows Vista.

    You probably use many devices daily that you don't have the source code for their microprocessors, (microwave, alarm clock, TV, telephone, car ... ).

    But ... when it comes to something to record information about "Wi-Fi access points that I come across", well, that's different. That must be open source.

    Why?

  251. elog by Anonymous Coward · · Score: 0

    For things like this, I use elog; https://midas.psi.ch/elog/ . It's technically a logbook / blog package, but it works quite well as a simple database, storing everything in flat files easily manipulated by other tools. It provides its own web server, as well as a command-line client for automating entries.

  252. the shame by mzs · · Score: 1

    People you are suggesting things like python, Java, OpenOffice, various SQL. What would Dennis M. Ritchie or W. Richard Stevens think?

    To add a record:
    cat >>db.txt

    man cut
    man paste

    Then SELECT becomes grep or awk 1-liners piped into a cut command.

    1. Re:the shame by edgar_zavala · · Score: 1

      He is using windows, let him use EDLIN http://www.computerhope.com/edlin.htm

  253. FlatDB.Net by swoogan · · Score: 1

    If you want a flat-file API there's FlatDB.Net. It has no front end, but is really easy to use from code. Works with Mono too.

    --

    Swoogan
    sigs are for losers...and ppl who can think of one.

  254. wikidPad by Anonymous Coward · · Score: 0

    http://www.jhorman.org/wikidPad/

    It's closer to wiki than database in design but if you are at "notepad stage" this may fit perfectly.

    It is flat-file, open source, can be configured as portable.

    ---
    Rarst

  255. Always code sensibly. by Futurepower(R) · · Score: 1

    "...because he wants to hack his own system..."

    No, he doesn't need to worry about he himself hacking his own system. But he does need to worry about using bad coding habits.

    It often happens that some code that someone threw together is being used 20 years later on a big system.

    I very much appreciated the grandparent comment.

  256. Re:Python comes with SQLite by Anonymous Coward · · Score: 0

    Forest fire prevention begins at home.

    Most people aren't even aware of SQL injections, so, what's the python way to do what he did in TCL? (god forbid doing it in TCL).

  257. Re:You're running Vista and "demand" a F/OSS solut by Bryansix · · Score: 1

    Huh? What if he has Vista already because it came with the comp and he doesn't want to pay for any software and he wants to be able to modify it and get the source?

  258. BDBs by Anonymous Coward · · Score: 0

    BDBs can be your answer. Check it out.

  259. jdb is a small, flat-file database by john_heidemann · · Score: 1
    It sounds like JDB might fit. To quote the web page:

    JDB is a package of commands for manipulating flat-ASCII databases from shell scripts. JDB is useful to process medium amounts of data (with very little data you'd do it by hand, with megabytes you might want a real database). ... By storing data in simple text files and processing it with pipelines it is easy to experiment (in the shell) and look at the output. The original implementation of this idea was /rdb, a commercial product described in the book ``UNIX relational database management: application development in the UNIX environment''.
    And in spite of the "j", the only dependency is Perl. (It actually pre-dates Java.). It assumes a Unix-like shell, but will work under Cygwin and maybe without.
  260. Kexi by brixon · · Score: 1

    How about Kexi? It is not clear that you want database for programming, so something like MS Access might help. http://www.kexi-project.org/

  261. Here you go: by kuzb · · Score: 1

    http://www.sqlite.org/

    Probably one of the more advanced flat-file serverless SQL database systems with bindings for many languages, and source code to poke at if you feel the need. They say it weighs in at about 250KiB with everything enabled.

    From the site:

    SQLite is an embedded SQL database engine. Unlike most other SQL databases, SQLite does not have a separate server process. SQLite reads and writes directly to ordinary disk files. A complete SQL database with multiple tables, indices, triggers, and views, is contained in a single disk file. The database file format is cross-platform - you can freely copy a database between 32-bit and 64-bit systems or between big-endian and little-endian architectures. These features make SQLite a popular choice as an Application File Format. Think of SQLite not as a replacement for Oracle but as a replacement for fopen().

    --
    BeauHD. Worst editor since kdawson.
  262. Re:You're running Vista and "demand" a F/OSS solut by darkuncle · · Score: 1

    if access to the source mattered, he wouldn't be running Vista. conversely, if he's comfortable running Vista, running a closed-source app alongside all his other closed-source apps on his proprietary, DRM-ridden OS shouldn't be an issue.

    I can see reasonable people going both ways, myself - I just find the particular combination of requirements by the OP to be unusual enough to warrant further explanation.

    --
    illum oportet crescere me autem minui
  263. DBs and C++ by Chemisor · · Score: 1

    > There are very few cases where real-world information is not most accurately
    > represented as relational data (in comparison to flat data)

    I have a question about this. All you database types (and I do not necessarily mean this in the pejorative sense) never seem to mention how you actually get the data out of the queries. No, I don't know much about databases, as you can tell. However, there does seem to be a strong bias in all db discussions toward directly placing the query output, in text form, onto a web page or some report. By contrast, in my code, I always define my data structures first (C++), and then wonder how to get data from the database into them for manipulation. SQL is entirely text based and all the examples I have seen extract data from queries by looking up a field by name and converting it into a variable (from text?), which seems to be not only inefficient, but highly cumbersome. I certainly don't want to copy data into my structures field by field, and the performance hit (which may become pretty significant after you go through a few million records) appears to be a showstopper. None of the tutorials I've seen demonstrate this particular operation in any other manner. The SQL books never go into code examples at all, and concentrate on forming queries. So tell me, oh db guru, is there some way to directly read a db record into a C++ class, or a query into a C++ vector of such classes, without doing a strtol on every field, like most examples seem to imply?

    1. Re:DBs and C++ by Joe+Mucchiello · · Score: 1

      C/C++ libraries for SQL engines are not text only. Setup correctly, you only need to tell the database API once that "ID" is an integer and it will come directly into your data area as an integer.

      The best way to learn how data comes out of a database (or to learn anything) is by doing. 10 minutes looking your database's xxxBindxxx functions would have showed you that you can bind database columns to binary data areas. IOW, RTFM.

    2. Re:DBs and C++ by legutierr · · Score: 1

      In a networked database setup (i.e. Oracle on one machine, C++/Java/Python app on another), it is necessarily the case that at some level in your program stack a string conversion will have to be made. This is because the db data transmitted over the network (or between processes on the same machine) is formatted as strings, and must be converted to other data types. Effectively, you are right, at some level someone has to iterate over all the data returned by the db and format it into the data structures that are used by your application.

      As a result of this requirement, there has been a proliferation of object-relational mapping frameworks created in recent years (Hibernate, WebObjects in Java, SQLAlchemy, Django in Python, and many more) the purpose of which is to abstract out all that conversion so that the programmer only has to deal with objects. In addition, in most lower-level db-access libraries that accept direct SQL calls, there is some built-in data conversion facility, so that you are getting Integer objects, for example, instead of getting text. I'm not sure about the availability of object-relational frameworks for C-style languages, though. One of the best used to be WebObject's Obj-C version, but that was discontinued years ago by Apple.

      Now in the case of SQLite, no network transmission takes place, and all database manipulation happens within the memory space of your own application (which is linked to the SQLite c libraries). For this reason, there is no conversion from number to character data and back again as the data moves from disk through the network to your app. I am not familiar enough with the low-level data structures of SQLite to know whether number data is converted to string data before it is written to disk, but considering the efficiency of the library I would very seriously doubt it. What matters is that when you are iterating over your result set using the SQLite c functions (see: http://www.sqlite.org/quickstart.html) you are able to specify in what format you expect the data to be provided to you (char* or int, for example), and the system will provide it to you.

      I think the problem that you might be having is that you are using C++ for your database application. I think that most people developing database applications these days are using Java, PHP, Python, etc. (interpreted languages) because they are easier to code in and because most deployments are not to individual users but to web application servers that are designed for use with those languages. Considering that client-server systems (user apps making direct database connections) are really inferior design-wise (vis-a-vis security, stability, maintainability) in relation to thin-client systems (where the server can most easily be coded in an interpreted language), the only reason that I can imagine for using SQL with C++ is for local data storage. SQLite would actually be perfect for that.

    3. Re:DBs and C++ by Chemisor · · Score: 1

      > 10 minutes looking your database's xxxBindxxx functions would have showed
      > you that you can bind database columns to binary data areas. IOW, RTFM.

      Well, that's just lovely. So where do I find your fine manual? For example, sqlite documentation on its bind commands contains no examples of any kind. I can't even see the relevance there, as they seem to bind a value to a prepared statement, whatever that is. Like I said, I'm not a database guru, I'm just trying to see if there is any way I can use a database as storage for my app. If that requires weeks of hard studying, I think I'll just stick with my flat file, thank you very much.

    4. Re:DBs and C++ by Jamesie · · Score: 0

      Sounds like you're using C++ to do a lot of work that could/should be done by a well written query, obviously I have no idea what it is you want to do with this data so I may be wrong. It is fairly common in my experience to see apps that get a large chunk of data from a fairly broad sql statement and then loop through the results performing processing that could be done more efficiently by a query. I have often seen this loop then make further queries resulting in tens of thousands of queries hitting the server and slowing down things even further. Basically a good front end/back end balance would be the query limiting the results as much as possible on the server and the front end presenting and making the data available for modification with as little selectivity in the front end code as possible. As for data conversion, most data structures/grids can be set up to accept and display any of the types you need and if you need that datetime field as a string in a specific format that can be done in sql too.

    5. Re:DBs and C++ by Jamesie · · Score: 0

      Same as above but properly formatted this time.

      Sounds like you're using C++ to do a lot of work that could/should be done by a well written query, obviously I have no idea what it is you want to do with this data so I may be wrong.

      It is fairly common in my experience to see apps that get a large chunk of data from a fairly broad sql statement and then loop through the results performing processing that could be done more efficiently by a query. I have often seen this loop then make further queries resulting in tens of thousands of queries hitting the server and slowing down things even further.

      Basically a good front end/back end balance would be the query limiting the results as much as possible on the server and the front end presenting and making the data available for modification with as little selectivity in the front end code as possible.

      As for data conversion, most data structures/grids can be set up to accept and display any of the types you need and if you need that datetime field as a string in a specific format that can be done in sql too.

    6. Re:DBs and C++ by asretfroodle · · Score: 1

      I'm not sure about C++, but for python and sqlite I'd recommend SQLAlchemy. You can set up mappings directly from the database tables to your python classes, maintaining the type information.

      There's bound to be similar sql libraries available for C++.

    7. Re:DBs and C++ by crucini · · Score: 1

      It's an interesting question. My preference is not to create classes for this type of object, but instead represent it as a "hash". Then you can do something like:
      map employee;
      dbh->selectRow("select * from employee where id=?", employee, id);

      I wrote the db wrapper used here; I haven't seen any open source C++ db wrapper with comparable high-level functionality, and my company makes it very hard to open source anything.

      I realize you will shrink from this suggestion, for performance reasons and because turning an int into a string and sticking it in a map feels yucky. However it allows a more generic style of programming:
      const char *cols_to_render = { "name", "phone", "address", NULL };

      Iterate over that instead of writing a bunch of "comb code". And of course, it's easy to write an insert_row() that removes a lot of tedium.
      If you insist on keeping the custom classes, you have two choices; hand-written marshalling or object-relational mappers. Almost all the code I've seen uses the hand-written marshalling, and it's hideously verbose and repetitive. Note: contrary to what another poster suggested, db's do not generally store or transmit everything as text; therefore it's useful to explore the C api and get your ints as ints, if that's what you want.

    8. Re:DBs and C++ by Chemisor · · Score: 1
      > I realize you will shrink from this suggestion, for performance reasons
      > and because turning an int into a string and sticking it in a map feels yucky.

      How about the fact that you have just discarded all field type information? That's a far more serious problem.

      > const char *cols_to_render = { "name", "phone", "address", NULL };
      > Iterate over that instead of writing a bunch of "comb code".

      That's fine if all you are doing is sticking it into a listbox, and that is necessary, of course. But what will you do once you need to actually do something with the data? If you need to fill a form out, how will you know that the phone field maps to the second entry in the array? How will you validate it properly without hardcoding that index? All your code that pertains to a specific field will still be comb code, but with hardcoded indexes instead of field names. That's much worse.

      > Almost all the code I've seen uses the hand-written marshalling, and it's hideously verbose and repetitive.

      Not if you write it properly:

      void Player::read (istream& is)
      {
          is >> m_Str >> m_Con >> m_Mana >> m_HP;
      }
    9. Re:DBs and C++ by crucini · · Score: 1

      How about the fact that you have just discarded all field type information? That's a far more serious problem.

      Why is it a problem? (If we've ruled out performance issues.) If you want to attach meaning to a field in the hash, you obviously know what type it is. For instance, int empNum = atoi(h.get("empNum"));. But most fields are just generic data, to be shoveled from point A to point B. Might as well automate the shovelling.

      I did not understand your comments about arrays and indexes. Could you clarify how arrays are entering the picture?
      As for validation, if I understood your comment correctly, it is easily made generic:
      typedef struct {
              char *name;
              bool mandatory;
              char *regex;
              pcre_t *compiled_regex;
      } field_t;

      static const field_t fields[] =
              { "empNum", 1, "\\d{1,12}" },
              { "name", 1, "[\\w ]{10,50" }, ...
              { 0 }
      };
      At startup you compile the regexes. Obviously, you can add "types" if you like, possibly instead of regexes.
  264. Re:You're running Vista and "demand" a F/OSS solut by DragonWriter · · Score: 1

    if access to the source mattered, he wouldn't be running Vista.


    That doesn't follow. First of all, access to the source might "matter" for this application, but not the O/S (some people care about OSS for practical reasons that vary by the particular application, not out of pure ideology.) Further, access to the source could matter in both cases, but other concerns could apply to the O/S that outweighed it, and those concerns might not apply (or might not apply as strongly) to the application in question. Finally, the O/S may not be within the control of the poster at all.

  265. Firebird RDBMS by Anonymous Coward · · Score: 1, Interesting

    http://www.firebirdsql.org/

    Accurate and very full SQL implementation, fully transactional and ACID compliant, stores everything on disk in a single file, and can be archived in a transportable format for restoring on different OS/Architectures.

  266. Plain Python? by Mech2 · · Score: 1

    I think any scripting language that supports lists as first class variables should do the trick. You can just keep the source file as a flat-file db by itself. Python comes to mind first as its simple and easy to understand, and you can easily manipulate/query the contents of the list (and even refactor it since string functions are simple in python) using a few lines of additional code.

  267. Firebird DB by Anonymous Coward · · Score: 0

    http://www.firebirdsql.org/

  268. $ man db by Anonymous Coward · · Score: 0

    $ man db

    http://en.wikipedia.org/wiki/Berkeley_DB

  269. KISS by Anonymous Coward · · Score: 0

    KISS = Keep It Simple Stupid

    Use a spreadsheet. It will take 5 minutes to implements which is a fraction of the time required to read all of the advice posted here.

  270. Re:You're running Vista and "demand" a F/OSS solut by darkuncle · · Score: 1

    all of that may be true (although there's an awful lot of unrealistic "maybes" involved, particularly as to whether or not the OP controls what OS is in use - go read the article summary again, specifically the portability requirement). I still think the particular combination of requirements was unusual enough to warrant further explanation - or at the very least, to make Brysanix' flame of somebody who responded reasonably enough to "just use Excel or Calc" _un_warranted.

    Think about it: if you care enough about the app being F/OSS to make it a requirement, but at the same time make Vista support a requirement, would a reasonable person (in this crowd, a reasonable geek) not be justified in asking what prompted such a half-assed^Wunusual set of requirements? If you're competent enough to be running your own DB and specifying requirements like "must be F/OSS", running it on *nix somewhere is clearly not an obstacle.

    (I think this particular horse has been beaten to death now, so I'm done on this thread - a number of solutions that match the original requirements have already been proposed, and although I remain curious as to the rationale, that curiosity will probably remain unsatisfied.)

    --
    illum oportet crescere me autem minui
  271. Interesting by Anonymous Coward · · Score: 0

    This problem is very similar to a problem I ask when interviewing potential developers. It requires a simple one table data store and I leave off any technology requirement (java, open source, etc). I just ask "How would you solve this problem?"

    If I'm interviewing someone for a "senior" level position and they suggest anything more complicated than a spreadsheet, they don't get the job.

  272. Re:You're running Vista and "demand" a F/OSS solut by Anonymous Coward · · Score: 0

    if access to the source mattered, he wouldn't be running Vista.

    That doesn't follow. First of all, access to the source might "matter" for this application No it doesn't. The kid was using Notepad a closed source app before. He just wants more features for FREE. He doesn't care if it's OSS or not. Most people, like this trolling child just just use and look for OSS because of the cost or lack there of, plain and simple.
  273. If you want to have some fun doing it... by Anonymous Coward · · Score: 0

    ... then I would suggest doing it in Smalltalk.

    Download a free Smalltalk (Squeak, Dolphin or one of many others).

    You can create your own model and classes, create UIs to do stuff or simply use code to do it all.

    If you save the Smalltalk 'image' when you exit then all of the objects are persisted in the image. Next time you run it they will still be there exactly as you left it.

    Something like that would be a lot more fun that using any database or text editor, plus you will learn a bunch about objects.

  274. FlatFileSQLDB !!! by philam3nt · · Score: 1

    I came into this story wayyyyy too late, hope you can find me amongst all the SQLite arguing...

    I use FlatFileSQLDB in many of my production projects. It is written in PHP and is very easy and lightweight. Much is built from PEAR libraries. Send me a message or email if you are interested. The production websites are in my website portfolio. FYI, I have made updates to this DB since its sourceforge release a few years ago, if you are interested.

    --

    If I had a sig, this is where it would be.
  275. It's amazing how many people miss the point by orev · · Score: 1

    There's like what, 600 replies to this and almost every one of them talks about writing something yourself (python), or pointing to some type of library (sqlite). You people are total ignoramuses.

    An APPLICATION that can do this, which USES the sqlite format, is "tkSQLite". http://reddog.s35.xrea.com/wiki/TkSQLite.html

    It's an all-in-one GUI frontend to sqlite files, and gives you a decent GUI to work within.

    Seriously, the more I see tech people try to offer their help, the more I realize why tech people get paid mostly crap and get no respect from managers, businesspeople, or anyone else.

  276. RRDtool ? by tomthegeek · · Score: 1

    What about RRDtool? It's more designed to be used for graphing time based metrics but you could probably use it for other stuff. It's very lightweight and uses a flat file.

  277. Re:here's what works - DataEase 4.5 DOS by spockman · · Score: 1

    I think you can still find it out there. Worked great, one of easiest to use DB applicaitons and should work fine under dosemu. Good luck.

  278. Portabase is what you described by Anonymous Coward · · Score: 0

    You have just described Portabase, a F/OSS application available as source and binaries for Windows, Linux and Sharp Zaurus PDAs.

    http://portabase.sourceforge.net/

    It has a GUI interface and lets you do some limited screen layout of entry forms and reports. If you need more complex reporting, just export your db to CSV or XML and process it with your favorite scripting language (or Excel or MS Access).

  279. Simple Solution by Anonymous Coward · · Score: 0

    Maybe all you need is a notebook and a pencil. That's the simplest flat file database I know.

  280. Microsoft Logparser, free, simple, powerful by MaverickOriginal · · Score: 1
    Bash it because it's microsoft, but I love to use Logparser

    I'm looking for a simple - comes with examples in the help file
    free - its IS free
    F/OSS flat-file database program - that's its purpose
    MS SQL, Access (MS), and Oracle, all of which would be overkill for my purposes - runs with simple .BAT script file
    must work in Windows Vista - it does
    preferably use a portable format - it uses CSV, TSV, TEXTLINE, TEXTWORD, XML (and 15 other formats)
    must not be an online app - its run from the command line
    must not require Java - requires nothing but windows
    Does such a beast exist? - yes, dozens as you have seen by this thread

    simply
    logparser "SELECT field1, field2, field3 FROM filename.csv" -i:CSV

    And it has all the power of aggregation, sorting, filtering, and many output formats (chart, datagrid,CSV,IIS,NAT,SQL,SYSLOG,TPL,TSV,W3C,XMl) or even directly into a database

    1. Re:Microsoft Logparser, free, simple, powerful by MaverickOriginal · · Score: 1

      Log parser is a powerful, versatile tool that provides universal query access to text-based data such as log files, XML files and CSV files, as well as key data sources on the Windows® operating system such as the Event Log, the Registry, the file system, and Active Directory®. You tell Log Parser what information you need and how you want it processed. The results of your query can be custom-formatted in text based output, or they can be persisted to more specialty targets like SQL, SYSLOG, or a chart.

      Most software is designed to accomplish a limited number of specific tasks. Log Parser is different... the number of ways it can be used is limited only by the needs and imagination of the user. The world is your database with Log Parser.
  281. Vista? by turgid · · Score: 1

    Are you nuts? If you'd been on some kind of unix, I could have shown you half a dozen lines of shell combined with sed, grep and sort that would do the job.

  282. Commaworks by datawalker · · Score: 1

    Sometime ago I was working with some CSV files and found this program "Commaworks" useful. You can download it from jansfreeware.com. It is a self contained CSV DB & editor.

    1. Re:Commaworks by Leemeng · · Score: 1

      Downloaded this to try. The app needs a password and points you to various sites to get it.

      Doesn't allow you to continue or cancel without a password. Had to terminate it via Taskman.

      So, am gonna trash this.

    2. Re:Commaworks by datawalker · · Score: 1

      It's been sometime since I've used this program. It does seem to be what you've described you're looking for. If there was email registration, I've never been contacted by the author. Maybe it'd be worth a look...

      Cheers

  283. Re:Sounds like he wants an APPLICATION not a frame by Anonymous Coward · · Score: 0

    oo.org's base

  284. No database is needed for req listed. by rmack · · Score: 1

    Your requirementsâ(TM) as you have described them would leave me to believe that you do not need a database. You do not need multi level locking, you do not need centralized access from multi users or machines, you do not need atomic operations on data, and the amount of data in question is not significant so no indexing is required. Just to name a few good reasons. In addition the over head with any resources used by any relational database would not be necessary. Simple flat files should do you fine. And as far as parsing them or formatting them a widely implemented interpreted language like PERL is perfect. If you make the data comma, âoe,â, delimited then open office can make use of the file for other types of formatting needs.

  285. 5+ Different Alternatives by Anarchysoft · · Score: 1

    All from the viewpoint of web development, but applicable to any software: RDBMS Alternatives for Web Developers

  286. The oh-so-obvious by Anonymous Coward · · Score: 0

    Three^WFour words: RTFM, google.com and freshmeat.net, and shoo-shoo-the-cluetrain.

  287. Pytables by neg8 · · Score: 1

    Looking at the large majority of replies to this story (mostly database blinkered) it reminds me why I don't ask slashdot for advice. You asked for a portable format. Databases are not really portable! You want a platform-independent, self-describing, single file-based, storage layer that you can carry on a thumb drive, that won't be locked into an API or persistence layer. www.pytables.org We use it. It'll scale to gigs and gigs in size also because of it's HDF heritage.

  288. Re:Python comes with SQLite by khton · · Score: 1

    3) Your fly is open. Now you're just making yourself look like a silly kid. I thought that was why he was modded informative.
  289. Thanks all, currently testing by Leemeng · · Score: 1

    Thanks so much for all the replies and suggestions. Even the negative ones, which I could glean some info off. Special thanks to those who emailed me.

    My last skirmish with databases was with Filemaker Pro, about 10 years ago. Prior to that, I have vague memories of Foxpro and dBase (!). While I've cobbled together a form or three before, my DB experience has mostly been as an end user.

    So it appears my idea of a database is outdated (skewed?), and I have to explore relational DB territory.

    Basically, all I need is a better way to organise data about Wifi APs. Something better than just notepad, but at the same time, would not cost me big bucks, need a server app, or require me to learn SQL/PHP.

    I'm thinking of some kind of form for data entry, with presets for certain fields (e.g. location, encryption), the ability to view records as a table, and the capability to sort by column.

    "Data entry" usually just means adding new APs as I come across them. Other than that, APs can get renamed or un-named (i.e. "hide" SSID), passwords are changed (though not very often, from what I've observed), or encryption is changed (usually, they just turn on WEP).

    Being able to do queries would be a plus, something like "Show me all the APs in this location which use WPA2, and which I have used in the last 3 weeks."

    I'm evaluating the various solutions posted here, and here are my initial impressions:

    1. Various posters suggested that I could actually use a spreadsheet. However, I don't have Excel, and don't intend to buy it. So OO Calc might look like the best bet. However, its need for JRE gives me pause. As Indy might say, "Java... Why it did have to be Java?"

    Anyway, using a spreadsheet for this seems kinda overkill, though I suppose it can handle the "sort by columns" task. This seems a bit like using Excel just to store phone numbers, which I've seen quite a few people do ;-)

    2. OpenOffice Base. Again, Java. And some posters say it is still half-baked. I might just hold my nose and live with Java to test this.

    3. Kexi (http://kexi-project.org). This seemed to be the the most promising candidate. So I actually downloaded and installed the Windows offering. Unfortunately the Windows ver is only a demo. It comes with a blinking "buy now" button and flickering text, which cannot be disabled. Hmph... I guess the LGPL allows that. So I dumped Kexi. May try it again if I install Linux.

    Plusses: no Java (I think). KDE appearance, which I am partial to.
    Minuses: no free version for Windows. Demo is feature-limited, nagware.

    4. TextDB also looked promising, but it requires PHP.

    5. Treepad Lite, free, but not open source. Might test it later.

    6. SQLite Database Browser - Didn't look promising at first. But despite its name this does allow data entry. Gave this a whirl, but data entry is too rudimentary. THAT'S why it has "browser" in the name.

    Plusses: no Java. Qt (KDE) appearance. FOSS. Runs in vista.
    Minuses: Data entry is rudimentary. Can't sort columns.

    Anyway, those are my DB adventures so far. Will continue the search and also plough thru the 600+ /. comments. This has certainly spurred me to update my knowledge about databases!

    Once again, thanks to all who responded.

    Regards,
    Lee Meng.

  290. Best solution not suggested yet by Anonymous Coward · · Score: 0

    Part 1. View/query

    Roll your own in Silverlight, it will then work in Win/mac/Linux online and offline.

    using-the-silverlight-datagrid
    http://blogs.msdn.com/scmorris/archive/2008/03/21/using-the-silverlight-datagrid.aspx

    You need to dl the free Vs 2008 C# Express to get started. If you later need search/query capability it's simple with LINQ.

    Part 2. Automate adding of Wireless Access Point data:

    Get the source (C#) of Inssider http://www.metageek.net/products/inssider .. It continously tracks access points around you using native Vista API without interfering your WLAN connection. It has a list of AP's seen in last x minutes, it's trivial to save this data and fetch it to your DataGrid.

    If you're never written a line of C# it'll take a while to get the basics, couple days for super smart, couple weeks for retard (me). Very much worth it though and best done with a project you NEED to get done, for the motivation fueling the learning.

  291. Re:Sounds like he wants an APPLICATION not a frame by Anonymous Coward · · Score: 0

    Kexi, perhaps? Or OpenOffice's database app?

  292. Re:Python comes with SQLite by RAMMS+EIN · · Score: 1

    So? You got modded insightful, but I don't see why. No offense to you, but I don't think any of your points are valid.

    ``1) My example was done to show how quick and easy it would be to set up and populate a table in Python.''

    Writing code without injection vulnerabilities doesn't have to be any less quick and easy. Given that, why would you choose the quick, easy, and vulnerable way over the quick, easy, and secure way?

    ``2) He's explicitly mentioned several times that this is for his own private non-web use.''

    Just because you don't see any threats to your software at present doesn't mean you should write it in an insecure way. And if you're posting your code in a public forum, I feel you have some responsibility to present good code or at the very least warn about its weaknesses.

    ``3) Your fly is open.''

    Thanks for pointing that out to me. *closes zip* Now, I hope you will react similarly to people pointing out flaws in your code.

    As a final note, many programming languages lamentably come with APIs that make it easy to do things insecurely and no easy way to do things securely. I feel this is something we should be working on, because if the secure way is as easy or easier to code than the vulnerable way, I am sure software security will improve.

    --
    Please correct me if I got my facts wrong.
  293. What if? by woolio · · Score: 1

    What happens when you import:

    "Smith","John","703-555-5555"

    Does it behave nicer?