What are the Pros and Cons of ICU? [closed] - unicode

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
My team is tasked with implementing Unicode in our software, which is well over a million lines of code. We support an MFC Client and a Server on Windows, AIX or Solaris with an Oracle or SQL Server database. ICU looks like a very helpful tool. What are the pros and cons of using ICU? Does ICU work as advertised without major bugs?

A data point: Our (yes, that's a disclaimer) list of users and bugs is all on our project site.
IMBO (biased):
Pros:
works as advertised, comprehensive.
Mature: 10+ years now, with a good stability policy and very active development.
Uses latest Unicode+CLDR+BCP47+other standards.
Compiles basically everywhere. C/C++/J and called by/implements python,perl,php,…
Open source, with an increasing diversity of contributors.
Comes with all needed data for the above (see below, under cons), yet customizable. (can add custom data)
Cons:
Needs better documentation (we try- anyone want to help?).
Lots of APIs- "it's too big #1" hard to know which one to use, even if it does what you want.
Used by lots of types of programs, from embedded devices, smartphones through major desktop apps through databases and operating systems and enterprise apps: So, there may be multiple ways to do something.
Comes with all needed data for the above! "it's too big #2" (see above, under pros), yet customizable. (can be trimmed down to size)

ICU is terrible: avoid if at all possible.
Despite its age, basic things in it are broken, for example in this question: Fixing regex to work around ICU/RegexKitLite bug
Time handling is broken as times are underspecified: you can't distinguish a DST from a non-DST time in a reliable way in many APIs.
It's freaking huge.
The documentation needs a lot of work. Less-used features are often unusable because there's no way to figure out the right way to use them. I spent days trying to get transliteration to work as explained and eventually gave up.
It likes to work in UTF-16, the worst of all possible worlds.
Support is unresponsive to problems.
In my experience, it's not until you're most of the way through a project that you begin to discover the insidious flaws that will take 90% of your time.
For many people, there is no alternative so you're stuck with it.

Related

InterSystems Cache ObjectScript vs Java as in Web application development [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 5 years ago.
Improve this question
Recently My Project Manger has asked me to work on InterSystems Cache ObjectScript. Earlier i used to work as Java Developer (J2EE). So my question is how different is Cache from java. Comparison would be great to have.
Caché ObjectScript is very different from Java and has very little in common. It is more like dynamically typed compiled scripting language with meta language built in (class definitions) and with a large number of features you need to know to write the good code. All the code is compiled to a low-level (but pretty readable) so-called routine code and is processed by DBMS Caché and its application engine.
Take for example this reference. As you may notice, there are many weird symbols and structures like $, $$, $$$, ##class, &sql(...), &javascript<...>, #dim, $System, .#, $get, $zu(...), %, ^%, { ... }, ... (this list is big). Some of the language features are very unpredictable from the first glance. For example, function $get(...) looks like a fundtion but silently acts like a try/catch statement, as well as $data and some other system functions.
So prepare to work with InterSystems documentation! Also, recently developed InterSystems community is a great resource. And while Googling, you may find quite a few answers out of the internet, but just keep in mind to search with “intersystems” or “objectscript” keywords. But many things you won’t find there, and in this case you should use InterSystems docs or community to ask the questions. Once you will get used to the language (which for me took over 6 months), you will feel more confident in it.
Also it is worth mention that Caché ObjectScript is literally “dinosaur” language, which involves and upgrades over time. That’s why there are so many different features. Some of them you shouldn’t use anymore: for example, instead of writing code in routine, like people did before OOP concepths were introduced, you should use classes. ObjectScript’s JSON capabilities (ability to write JSON inside ObjectScript) was intoduced just approximately 1 year ago. And you may find a plenty of “prehistoric” code in Caché and should take it normally: it is a really huge ecosystem.
Hope this helps, happy hacking!

Learn Operating System Development using Minix 2 or 3? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I took a class this spring about generic operating system theories and principles, and now I'd like to spend the summer working through Tanenbaum's Operating Systems book, looking through Minix source, and getting a general idea of actual OS implementation.
There are two OS professors at school and I went to them to ask about borrow Tanenbaum's book. Interestingly, one said I should use the older, second version of the book, and focus on Minix 2 because it's overall simpler and has less source to understand (and thus would be easier to learn from without information overload). The other prof said she didn't think this would be a problem, and that I should go with Minix 3 and the newest edition of his book so that I get to see a more modern implementation.
What does Stack Overflow think? Anyone here have experiences with both versions of Minix? I would like to learn the principles of making an actual OS, but I also don't want massive information overload that will keep me from actually understanding what the code as a whole is up to.
I took Minix 2 way. It was understandable and paved way for Minix 3.
About HelenOS - they take unrealistic goals - bug free and formal description. Both are not achievable.
HtH
If you want to go deep into sources of microkernel-based OS I would suggest you to have a look on HelenOS, a newer but still relatively simple operating system not burdened with UNIX semantics and API. Alas, there is no book (as the Tanenbaum) about it yet, but the sources are well documented.
Interesting I just come across this old post so sorry for what seems to be a bump.
When I was at university, sometime ago, we had an operating systems lab we used PC's with Linux for the development and 68000 based machines with boot roms for the testing I believe they were VMS based.
The software environment was either Modula2 (the first and second year language) or C/C++ (second and third year language) everything was cross complied and loaded via script ready for the test machine to be reset to boot the new OS.
Anyway to cut this short, we used some sort of educational framework which was using the Minix2 sources so you could write parts of the OS for a project without having to write the whole lot.
I have been trying to find the official sources and documentation for this environment for sometime, I am sure it's on the web somewhere and possibly updated/maintained.

Choosing the correct framework [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
When starting out on any project it could be seen as essential to pick an appropriate framework. I was wondering if you would point out any key questions that should be asked in order to aid the choice. I have looked at numerous sites and there doesn't seem to be any definative questions to ask before a choice is made.
I was wondering if, in any of your experience,s you have come across any key questions.
I gather one of the first is what are you developing? web app or desktop based
Any key questions would be a great help. This is a pretty general question as I am just looking for generic questions that would be asked before a choice is made.
Pick one you (or your team) already know.
Learning a new framework is a time consuming and expensive process that you don't want to be associated with a project. I would say the number one factor when selecting a framework/language is the existing knowledge base in your team.
[Obviously, this isn't very helpful if you don't currently know any, or the ones you do know aren't useful in the project's domain]
The best technology is the one you know. So ask a question - what technologies my team has experience in.
The main question you must ask is about stability. If you are developing an enterprise application wich sould be maintained for several years and should me stable, you should use mature and well tested frameworks. Something Java EE or .NET based for web applications. If your project is experimental, you can use experimental frameworks, technologies, languages etc.
Pick the one with good documentation. The quality of documentation gives you a clue how good the framework is.
A large user community is a plus, especially for opensource frameworks.
Ask yourself right from the start:
What are the things my application
will do, what are the ones it won't ever
do?
Choose a framework that makes it easy to accomplish the things you want from your application, care less for things that are extra. Don't worry, when you'll really need extra, you'll worry about looking then.
Who will use my application? What are
the numbers and needs of people that
will be the application's users?
You need a framework that scales well to the number of users you intend your app to handle and to their specific needs(collaboration, social interaction, ease of use, necessary tools, etc).
Is there a strong support
for the framework(from the developer or the community)?
Make sure you'll have who to turn to if you'll have questions or problems.
I usually try to find the framework that is the most popular. Have a look at a comparison of Javascript frameworks in Google Trends. It's pretty obvious that jQuery is the most popular by a large margin, so I'd lean towards using that.
It's not the only criteria, but more users means better documentation, testing, features, etc. Also, if you're new to an area of programming, then it usually pays to follow the wisdom of the crowd.
I would start by thinking about the pros and cons of frameworks in general. Based on those things that matter most in your situation, see which frameworks fit.
It's also helpful to think about the general features found in most frameworks of a platform (web application frameworks, for example). Decide which of those features are important to you, then investigate the frameworks that provide those features.

Advantages & Disadvantages of DotNetNuke? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
If you have worked with DotNetNuke, what are advantages and disadvantages that you have come across? What are alternative Content Management Systems that you have used that you find are better or worst. I'm trying to get a feel of what Content Management System Frameworks people are using and the advantages and disadvantages of them.
Thanks,
XaiSoft
This post may help as it has covered some of this info!
DotNetNuke works well, and has a wide variety of addins that are available for purchase from various vendors. It is also open source which is nice, as it allows you to troubleshoot issues to a deeper level then if it was closed source.
We didn't spend a lot of time researching CMS systems but this past summer we couldn't find anything with the functionality of DotNetNuke which targets the .net framework. If your not tied to .net then there are a ton of options available.
DNN is very very dynamic in terms of functionality, features and security. There's is nothing like it. However there are a few drawbacks that i felt while using it.
The biggest drawback in my opinion is the response time of a DNN using sites. The code itself is very obsolete and you need to lock yourself and scour on each and every coding details before using DNN. One more is the URL dependency, if you need to change your domain name to another your old database will be of no use.
There are a lot of new promising CMS extension in Dot NET market and Sageframe, in my opinion, is the best of them. I have been using this extension for quite a time now and I am quite fascinated by its features though still in beta.
DotNetNuke is quite powerful. It's biggest advantage is the inline editing of site content, in my opinion. It's biggest disadvantage is that it is pretty resource intensive compared to other CMS systems.
Here's a comparison I wrote last month:
http://www.logicalvue.com/blog/2009/01/cms-shootout-dotnetnuke-vs-joomla-vs-wordpress/
The biggest disadvantage is the missing support for multiple languages.
Yes, you can install multiple languages but you can't write seperate content for each installed language...
It's not hard to write such a module yourself but the other problem is the URLs.
You can use the 'Human Friendly' option but yet again, this does not support multiple languages.
For instance /Products/tabid/57/language/en-US/Default.aspx becomes products.aspx but there isn't a possibility to include the language like this /en-US/products.aspx
I know there are 3th party tools like UrlMaster which covers this up but still I think this should be available in such a framework.
The biggest advantage is the ease of developing your own modules! If a functionality isn't available, you can write your own module without any problems!
.Net Nuke is not good for developing projects.
Microsoft is releasing lot of versiond and including lot of lauguages.
So how developers will learn all the things...
This is very bad for developers.....

Developing addins for World of Warcraft - Getting started? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
As a long time World of Warcraft player, and a passionate developer I have decided that I would like to combine the two and set about developing some addins. Not only to improve my gameplay experience but as a great opportunity to learn something new.
Does anyone have any advice on how to go about starting out?
Is there an IDE one can use? How does one go about testing? Are there any ready made libraries available? Or would I get a better learning experience by ignoring the libraries and building from scratch? How do I oneshot Hogger?
Would love to hear your advice, experiences and views.
This article explains how to start pretty well.
Your first bookmark is possibly the US Interface Forum, especially the Stickies for that:
http://us.battle.net/wow/en/forum/1011693/
Then, grab some simple addons to learn how XML and LUA interacts. The WoWWiki HOWTO List is a good point here as well.
One important thing to keep in mind: World of Warcraft is available in many languages. If you have a EU Account, you got an excellent testing bed by simply downloading the language Packs for Spanish, German and French. If you're an US Guy, check if you can get the Latin America version. That way, you can test it against another language version.
Once you made 1 or 2 really small and simple addons just to learn how to use it, have a look at the various frameworks. WowAce is a popular one, but there are others.
Just keep one thing in mind: Making an Addon is work. Maintaining one is even more work. With each new Patch, there may be breaking changes, and the next Addon will surely cause a big Exodus of Addons, just like Patch 2.0.1 did.
Another useful tools you might like is WarcraftAddOnStudio which lets you make plugins in the visual studio environment.
I learned the art of add-ons primarily by looking at the code of Blizzard's UI. You can see that code by extracting the default UI or finding a copy of the default UI online. Add-on developers sometimes like to over-engineer their pet projects (who doesn't?), while Blizzard's code is usually pretty no-nonsense and straightforward. In addition, Programming in Lua is a pretty useful (if slightly out-of-date) reference for the actual Lua language.
The best way to start is with the book World of Warcraft Programming. It covers LUA, XML, WarcraftAddOnStudio and the WoW API. The book also has sections on best practices and avoiding common mistakes.