Are Kyoto Cabinet and Tokyo Cabinet dead? - tokyo-cabinet

These projects sound interesting, but I don't see any active development, and the code base depends on obsolete sowftware (GLIBC_2.14...)
Or am I looking in the wrong places?

The main author seems to have stopped development. However, there are many active users around (e.g. on the mailing list tokyocabinet-users#googlegroups.com).
Can you specify the dependencies on obsolete software?

Related

How to estimate the quality of pub.dartlang.org packages?

I started a Dart project and now I need some functionality that is not available in the Dart API Reference. I was advised to use a package from pub.dartlang.org and now I am browsing through the pub.
Previous experience with Javascript libraries tell me that quality and support can vary wildly between libraries. Therefore I am a bit reluctant to use packages from pub. How would I know which package has a good quality, and whether a package will be updated when there are breaking changes in Dart?
Therefore I would like to know:
Is there a way to know which packages on pub.dartlang.org are safe to choose for a long-term project?
Some questions related to this:
Will packages where "Dart team" is the author be supported for a long time?
Should I prefer packages where the uploaders have #google.com in their email address?
Is there a list of google-supported packages? (I suppose polymer would be on it)
Is google currently monitoring the quality of the pub packages?
Kind regards,
Hendrik Jan van Meerveld
You are correct that the quality of packages can vary in Pub or any other pack repo. Here are a few things you could use to evaluate the quality of the packages:
Is the package actively maintained?
How many active committers does it have?
How many people have starred or forked it on GitHub?
How much use do you think it is getting? Are there questions about it on StackOverflow or other mailing lists?
To answer your specific questions:
You can reasonably expect "Dart team" packages to be supported.
There isn't a list of official Google supported packages. Just look for packages supported by the Dart team if you're looking for packages created by members of the Dart project.
The Dart project doesn't currently have any way of ranking Pub packages.
You can see a list of Dart-team developed packages on the Dart API page. Any package there not prefixed with dart is a library that has been developed and supported by the Dart team. I would definitely prefer a library developed by the Dart Team or someone from Google.
If the source repo for the package is available publicly (e.g. on GitHub), you can view the frequency of commits, and responsiveness of the author to issues/pull requests. For instance, you can easily tell that StageXL is a well maintained library by taking a look at their GitHub: 550+ commits, new commits within the last couple of weeks, accepts code from other contributors, and has almost 50 closed issues.
Bob Nystrom has talked about a ranking mechanism for pub in the past (he recently posted some ranking results that you can see here). Once a ranking system is in place, you will be able to better choose between two XML libraries for instance.

How can I create a data base management system?

I have to create a data base management system as a project for the school but I don't know how to. It doesn't have to be very sophisticated. Is there any tutorial that shows how to do it? And, what would be the most appropriate language to do that?
Do you need to actually build a database engine? Or do you need to use a database engine to create a database that you write a program to use?
Without knowing exactly what you're after, for the latter, I'd recommend you get ahold of the MAMP (on Mac) or WAMP (on Windows) stacks. this gives you Apache, MySql, and PHP on top of your favorite OS. Following google threads on those topics should lead you to plenty of examples.
If you have to actually build a database engine... well, here's another SO question that might help: Simple Database Implementation for Educational Purpose. Also, you might search through Github for open source examples.
Good luck!
I suggest this repository:
Prerequisites :
Good understanding of algorithms & dynamic data structures like trees - B-trees.. (it's all about structuring data and handling it using optimized algorithms's implementation)
Proficiency with C programming language ( pointers , structures-unions-typedef..) .

Is Mapstraction still the way to go

I was starting to write a multi-Map JS library, but I see that Mapstraction does that exactly..
I really would like to use Maptraction but it looks a little old (The commit's on GITHUB) (Not a issue if it is still "supported"), also The tutorial page, the Maps do not show up in my browsers.
Any input is highly appreciated.
Thanks
Kim
Depends what your use case is - if you don't want to be tied in to any one map provider and only need standard features then, yes.
Version 2.1 of Mapstraction is currently being prepared (on the release-2.1 branch) which brings some improvements in behavioural consistency across the providers.
Because of the nature of the library development isn't continuous and tends to be reactive to changes in the underlying providers or issues being raised. That said the community is fairly active and you can sign up to the mailing list via the site.

Bugzilla Reporting

Is there a really good free tool for BugZilla reporting? I am finding the default search options on the web interface far too limiting. My biggest issue is with the lack of Order By options (only 1 field at a time, and a very limited set of fields to choose from). I have done some Google searches, but I can't find any good free BugZilla reporting tools.
If there isn't one, can someone please point me to an example on how to access the BugZilla web services? If I can get the BugZilla data, then I can easily build my own reports that will better meet our needs.
Take a look at this: http://www.faqs.org/docs/bugzilla/dbdoc.html
Use this database schema for reference: faqs.org/docs/bugzilla/dbschema.html
If you need a web-interface, use your favorite dynamic website scripting language that can access MySQL databases (say PHP)...
Simple-ish Tutorial: freewebmasterhelp.com/tutorials/phpmysql/4
PHP MySQL API Reference: php.net/manual/en/ref.mysql.php
Then use SQL queries such as:
"SELECT * FROM bugs WHERE WHERE bug_status != 'RESOLVED' ORDER BY creation_ts ASC, votes DESC LIMIT 50"
which lists first 50 entries of unresolved bugs ordered first ascending creation time then descending by number of votes.
I have used this in the past and have liked it a lot: http://www.mediawiki.org/wiki/Extension:Bugzilla_Reports
You can also consider other tool eg mantis
(http://www.mantisbt.org/)
I've personally switched from Bugzilla into Mantis and installed some plugins (http://deboutv.free.fr/mantis/) and found this more comfortable
If you are a Java user, you might want to check out Mylyn for eclipse. This is integrates a task-driven development approach into eclipse.
With that, you can raise bugs, tie together SVN changes and bugs, and hide classes that are not relevant to fixing bugs, etc. It's a bit involved to get started with, but quite powerful.
It also comes with a connector for BugZilla. See this introductory article for an example.
If you don't use eclipse, but you do use Java, then note that since Mylyn is open-source, you might want to look at the source code of the Mylyn BugZilla connector for how they do their work.
Good luck.
You can try Deskzilla (http://deskzilla.com/) - it is a multi-platform desktop client for Bugzilla with Outlook-like interface, rich reporting and filtering capabilities, offline work, drag-n-drop, etc. It's a commercial product, but if you're working on an Open Source project you can use it for free.
AFAIK Bugzilla uses MySQL database for storing data. So probably you can connect with some visual db manager (plenty of it exists, see Toad Data Modeler, DbVisualizer) and try do do some sql work...
There is a list of some add-ons (free and commercial) listed on the Buzilla addons wiki.
If you are a Windows user, MyZilla is a possible option.
Otherwise, to work toward your own, see the Bugzilla API documentation, which, in a way, includes how to retrieve the current schema (Bugzilla::DB::Schema), and Bugzilla::WebService.
Netbeans also has Bugzilla integration (I haven't tried it...).
I have analized a bunch of bug tracking tools.
You can try track or mantis, because bugzilla is very unfriendly about reporting.
Mantis
Mantis can export data in excel: all the graphic you need can be generated by that sheet.
For more information take a look to my blog:
http://gioorgi.com/2008/bug-tracking-mantis/
Anyway, Track is used a lot more, so for sake of completeness I should cite it:
Track
Pros:
Can Also work with an embedded database (using sqlite).
Easy to setup and use.
Cons:
Feature are too much, and aims to be also a CMS to some extend.
Take a look to:
http://gioorgi.com/2008/bug-tracking-trac/
Since Bugzilla can be installed on your own server, I presume the simplest way is to do that and play with the databases it creates ("Bugzilla supports MySQL, PostgreSQL and Oracle as database servers"). The documentation also says you can modify the templates as you like.
Otherwise one could try paid support or some other bug trackers.
I use this bookmarklet and like how it searches right with the strings entered in the location bar like smart search. It lets you quickly search bugzilla or jump to a bug number via Bugzilla Quicksearch, and is IE6+, Moz, Op7+ compatible.
Its companions on the same page can be used to refine or help with bug search/report, e.g. collect buglinks (queries bugzilla to show a list of bugs linked to from the current page),ord buglinkify (turns all numbers on the page into bug links).

How do other development teams approach version numbers?

Our application is quite mature, and thus we are up to version 16. However, this can give the impression that the software is old and out of touch (how many commercial applications are there with a version 20+??)
Obviously, version numbers are quite arbitrary - what do other people use? I quite like the Ubuntu approach of month.date, but I'd like to see what other strategies people use.
We tend to go with something like 1.20.5, where the 20 is, in your case, the fairly high 'release' number or something.
When we completely re-write a product in a different implementation, it becomes 2.0.0, and so on.
It also means that the beta versions can be 0.2.3, for example.
I think it's pretty standard to use a sub-version format like 1.1 or 1.1.2 or something to that effect for just bug fix releases, minor additions, etc... and then plan to increment the main version number on major releases.
My company develops product for 19 years, and we have only version - 3. Although we had 1.2, 1.5 and so on. I think this is the best practice.
We use Microsoft's system (or at least their documented system - real binaries seem to be rather less consistent):
Major version (incremented on breaking or large changes)
Minor version (incremented on non-breaking or small changes)
Revision number (incremented on each service pack release)
Build number (incremented on each physical build)
Whenever a version part is changed, all parts below it are reset to zero rather than just changing independently.
As Christian said, we used major/minor numbers along with month-date for release.
For internal usage, we use CVS's date.
In our case, product is fairly small, we refer with md5sum when talking to QA folks.
Version numbers can be used to sell upgrades to non-technical people either from the perspective of the software vendor wanting to get people off old versions or the user trying to get management approval to upgrade.
If you were to say that you are using "Version 20" this doesn't immediately mean anything to everyone.
If you say that you are using "Product X 2005" everyone understands that it's a 4 year old product.
(Technical people probably don't care either way!)

Resources