I couldn't give two shits about Flash support other than YouTube videos.
Plain and simple. I don't play any of those stupid flash games, the only thing I ever need flash for is previewing videos and music.
And if I can't see them under Linux because Adobe drops support, I'll just go to the raw torrents to do my previewing and prelistening. YouTube audio quality sucks in too many cases, and the only reason I use it for prelistening to music at all is it's handy.
And if Google thinks that I'll use Chrome just to be able to access YouTube videos, think again. I'll just stop using YouTube if they don't support MY BROWSER. (And it doesn't matter WHAT browser that is -- they can check the visitation stats the same as any other web hosting services if they want to know what browser I use.)
You see, most of the YouTube's I see I watch because I clicked on them elsewhere, not because I searched for them by name at the YouTube site. So if support for YouTube video is dropped from the browser I use for day to day surfing, that just chokes off YouTube visits, because there is no right-click-open-in-chrome option in any browser I've ever seen.
I find it interesting that even though the article (yes, I READ them!) says that ACTA is being sent to the courts for analysis and judgement, the writer of the article is already stating their position as if it were court-determined fact:
ACTA will not censor websites or shut them down; ACTA will not hinder freedom of the internet or freedom of speech.
Such concerns are precisely why ACTA is being submitted to the courts for review. With this comment posted in the article as if it were fact, it would seem to me that the author is hoping this is nothing more than a checklist review item for getting it passed. And I don't think it's fair to the public OR the courts to be making that recommendation or decision before the courts have done their due diligence.
It would be as bad as Harper claiming that the Senate review of our (illegal!) Canadian ACTA legislation is "fine, but we need to dot our I's and cross our T's. The Canadian version includes DMCA-like clauses that violate a 50+ year history of Canadians being allowed to make back-ups of the media they own, and to format-shift it as well. Preventing people from using the tools needed to make those backups would be illegal, and our government has been notoriously silent about that issue here in Canada.
They flat out don't want to talk about it. They wish a concerned public would just shut up and let the jackboots come down on their neck without question like good little sheeple.
Thank God Canadians seem more interested in flagging the issues with all levels of government and media than our government is in hearing what the public has to say!
The "Old PC" use case really is for hardware that's 2-5 years old, not much older than that. Even Linux can't make an ancient piece of crap responsive under modern application and rendering loads. You can use that older hardware for office work like editing documents, but if you have to deal with modern media, a 5+ year old machine is starting to have a hard time keeping up.
Sad, but true.
Only geeks running file servers and firewalls want the really old hardware, and they don't even want a GUI running on those dedicated servers because it's a waste of memory and CPU when your normal modus operandi is to SSH into the box to configure it.
Regrettably, that includes my Logitech trackball, which hasn't worked with ANY Linux release I tried that came out post Ubuntu 10.04.1. I love my trackball, but after a decade of solid service, I'm going to have to switch. *sigh*
The sad thing is I can't imagine what they did to the kernel to make it hate what is, in essence, just a USB mouse.
I set MY OWN priorities based on the technical analysis of the problems and the resources available, and publish them.
The company priorities are NOT IT priorities. They are a factor in the decision about IT priorities, but they do not SET IT's priorities unless you're fool enough to LET THEM.
Every user or department who is allowed to set IT's priorities will claim their pet project is priority one, regardless of what's good for the company. Only the people who KNOW the resources available and have to deal with ALL the customer departments can set realistic priorities for the IT department itself.
Fine, but how has the GPS industry been culpable for the actions of the FCC? They submit their recommendations and concerns to the FCC the same as any other interested party, but it's the FCC who makes the call, not the GPS industry.
How is the GPS industry to blame for being legitimately concerned that Lightsquared technology will interfere with their EXISTING, LICENSED USE OF SPECTRUM?!?!?!!
Well, let's just say that SANE countries like Canada, Australia, and Germany have felt no need to go to the INSANE measures imposed by the UK and US governments on it's people.
Israel needs the security and surveillance because it literally has bombers and shooters in it's midsts.
Privacy laws in Canada dictate that a service provider or business have you sign a document granting permission to use your data, and explaining how your data is going to be used, and usually verifying that they will not give away nor sell your data to third parties.
But if you sign a contract that grants "above average" priveleges such as surveillance of professor's accounts, the contract is perfectly legal because you signed it. It is not "illegal" to "abuse" customer data, only to do so without notifying the customer of how you intend to abuse it.
Contrary to popular opinion, in Canada your business email account is considered property of the business, so the company can grant whatever access it wants to employee emails. Cry, bitch, and scream all you like, that's just the way precedent has worked out in Canada over the years.
If you want private email, use a private account, even if it's from a free provider like Google/GMail, Microsoft/Hotmail/Live or Yahoo/YMail. Your BUSINESS account is not yours, and your manager is likely to get pissed off if you abuse it by sending PERSONAL email through it anyhow. Your business account is a tool for doing the job, nothing more.
And if you have to use SQL for whatever reason, don't use indices unless absolutely necessary. It seldom is, despite what school has taught you. The index has to get updated too, which causes additional non-sequential writes. The minor speed boost you may get from selects are easily eaten up by the major speed bumps you cause on inserts and updates.
100% true!
The issue is so common that a virtual index that is not maintained by the database is often referred to as a "business index". With small datasets, application performance is often increased overall by relying on full-table scans for non-indexed data rather than applying an index.
Another situation where this often crops up is keys that have a low variance. For example, a hundred thousand record table where one of the index columns only has a dozen values. There are no hard numbers, but as a rule of thumb, if there are 10% the number of keys that there are records for an expected table size, I test a business index approach to see how the performance works out.
But most programmers aren't professionals who test performance before releasing code. As long as "it works", they ship it. Performance tuning will only get done if enough paying customers are complaining that the revenue stream is threatened.
Not surprisingly, most of the work seems to have been for platforms other than Linux, but maybe the upgraded OpenGL rendering pipeline will prove of benefit when full-screening 1080p videos. My box periodically stutters a frame or two when viewing such videos on a 1600x1200 monitor, because I've only got a crufty old P4-3.8GHz CPU with 4G of fast RAM. My video card is more than capable, and I never used to see any frame loss under Windows.
Mind you, I didn't have a pile of servers running when I had this CPU chugging under XP instead of Ubuntu 10.04.1.
Alas, the odds are not in my favour that I'll see this update unless I build from source.
Seeing as they contractually treat sending a link as making a photocopy, it would seem that you are now allowed to photocopy entire works under this new agreement.
MY slave master provides better working conditions than YOUR slave master.
But the Chinese workers at these offshore provider manufacturing companies are ALL treated as badly as slaves in the old US south. REGARDLESS of whether they're officially "indentured servants" or not.
The fact that some companies treat their employees worse than Foxconn/Apple does NOT mean that ANY of them treat their employees with anything even RESEMBLING dignity or respect.
It'll be interesting to see how you're supposed to run a sex education class with media if "popping boobs" are banned.
Typical stupid politicians, trying to make a name for themselves and get some media exposure.
Unfortunately, the general public is likely to nod and say "good idea" rather than think about all the educational material that would be illegal to broadcast in the US.
Do you realize that in Canada our attitude on sex is so much more liberal that we actually have soft core porn aired after midnight on a few stations every weekend? (Toronto's "CITY TV", for example, plus some stations in Quebec, and, I think, Vancouver BC.)
One of the main reasons I opted for the ISP I'm using for my business is not the fact that they're cheaper (it's only $10/month difference), but the fact that SaskTel hosts their data center in Florida, and the one I'm using is hosted in Saskatoon, Saskatchewan.
I don't want my business anywhere near US regulation and control without oversight and intervention by Canadian authorities. The US has been proving to be insanely jackbootish about their approach to the internet for the past 2-5 years, and I simply do NOT want to take the chance of having them interfere with my business.
Or rather, I don't want US media companies interfering with my business. They don't do proper checks before issuing their takedown requests, and were I in the US, I'd be effectively subject to domain seizure and content takedowns without due process and the chance to defend myself. That is an UNACCEPTABLE BUSINESS RISK when it is so easy to avoid.
Worse, the US dollar is in such a sorry state that I will not be accepting payments in greenbacks. I want to be paid in a stable currency that I don't have to pay exchange rates on in order to spend -- namely Canadian dollars. For years I've had to pay extra to convert my Canadian currency to US dollars to pay for goods and services ordered out of the US. The shoe is on the other foot now.
Even if I work a contract in the US for a US company, I'll either be paid in Canadian dollars or charging a 5% premium for the hassle of converting US currency to Canadian dollars (it's a 2-3% bank fee as well, so 5% isn't as much as you might think.) Add in the fact that all foreign payments get held by the bank for 30 days, and the resulting lost opportunity cost of having my money tied up and inaccessible, and I find I really don't have much interest in business south of the border at all right now.
Besides, if I have to travel to service a customer, I may as well visit somewhere I've never been before, preferably China, Australia, New Zealand, or Germany. (I've just always wanted to see those countries some day. I've already spent about 12 years living and working in the US, so I've seen the US. I want to see someplace different next.)
Who said anything about linked lists? Allocate ARRAYS of objects so one big contiguous chunk of memory can be allocated and allocate from those "pages" of objects, not linked lists.
Furthermore, no one said anything about using a global object pool. For peak performance, you want a pool per thread so you don't have to incur synchronization overhead.
But you are correct -- a poorly written object pool will degrade performance, not improve it.
As to the grandparent post -- just because I started with Java 1.0 doesn't mean I assume that the JVM hasn't changed. I've been redoing my tests with each Java release that came out to see if my old assumptions still applied.
I'm a professional programmer, not some kid hacking code in a basement.
Practical experience and years of testing are why I recommend the ugly looking conditional statements. The Java compiler seems to build one big string buffer with one allocation when you use that technique, rather than repeated calls to StringBuffer.append(). But go ahead, stick with what's easy to read if you're not concerned with raw performance -- readability is every bit as important as performance when it comes time to enhance or maintain the code by hand.
I haven't had to do this with Java yet, but I have implemented thread-specific pools with multi-threaded C++ application code, where each thread had it's own pool. It was a critical performance tweak for one system I worked on 12-15 years ago, as we were pushing the hardware so hard that within a year the IO bus wouldn't be able to move the expected data even if it did nothing but shuffle MY module's data 24x7. (Yes, we EXPECTED to need new hardware, but we needed a solution NOW.)
Fortunately, Java seems to do some pooling of it's own for Strings and box types -- they perform FAR better than general objects, so they have to be doing something special for their allocation and destruction. In particular, I've found that well written Java string manipulation code actually outperforms my C++ code -- even though the Java code deals with UTF16 data instead of 8-bit ANSI/ASCII data. Or maybe byte manipulation on modern processors just isn't as efficient as it used to be.
I've always thought of myself as a "programmer", but having worked since '87 with computers for some pretty big companies and ever-larger projects and teams, I found I acquired a few useful skills that I didn't even realize until someone started asking me the right questions.
Team management is half of staff management. Just because you haven't given someone good/bad news about whether they're still employed or adjusted their salary doesn't mean you haven't had to deal with the far more common issues of staff happiness, resolving contentious issues, or acting as a liason between your team and management.
Designing and documenting processes does not have to be restricted to computer algorithms. Business process improvement is no different than tweaking code -- eliminate redundant effort, streamline the process, maybe even eliminate chunks of it in favour of a completely different approach. It's harder to implement a business process because people need training and will still make mistakes once trained, but "programming people" can be fun.
I take it you've done documentation for the systems you've worked on. Good documentation writers have a unique skillset. It takes a special mindset to even try to bridge the gap between business terminology and a software system. That same skillset can apply to preparing to interact with a vendor whose products and services have a terminology all their own.
Consider law as a career. The legal systems are like old computer systems, full of gnarly gotos and dead code. If you have the patience to take months or years in court to correct "design errors" in the legal system, it can be an entertaining thing to do. You might not want to be a lawyer, but "thinking outside the box" is how lawyers come up with creative case law, the same as for programming machines.
Unless you stuck with programming and never got involved with design and system progress reports, you will have gained some good experience with preparing and making presentations. Don't underestimate the value of good presentation skills.
If you've worked on a variety of systems for one or very few companies, you should understand their overall business processes far better than the average manager who only deals with the needs of their own department. IT is everywhere in modern companies, so good IT resources end up learning the business, not just departmental project needs.
In short, you can't interact with businesses and enterprise-level systems development without learning a whole host of skills that have nothing to do with hammering a keyboard to produce or debug code.
I've worked with Java since 1.0. The only optimization options I've ever used were the heap and stack size adjustments.
Setting your memory heap too high actually degrades performance, oddly enough. I've got 4GB on this box and over 2.5G is normally used by disk cache, but if I allocate more than about 768MB to the heap, the performance suffers.
Maybe some of these options have real effects on certain production code characteristics, but I've found the best performance tuning options are:
Whenever and wherever possible, use intrinsic types, especially extracting a char from a string for evaluation rather than using the object accessors for a String. For whatever perverse reason, the Oracle Java compiler will keep re-fetching the value by re-executing the getChar() rather than realizing it's a constant once the value has first been extracted, because the String isn't changing. Net performance boost for my code: over 30% improvement for a days coding on a multi-year project.
Instead of allocating and destroying objects, consider hanging on to used objects and using your own allocator. This won't help for implicit object construction, but reusing modifiable objects helps performance dramatically. I saw about a 10% performance improvement when I experimented with this. Raw object allocation is EXPENSIVE.
Wherever possible, tighten your loops into a single statement of execution. For unknown reasons, the JVM seems to perform better calling a small function fragment than it does executing inline code in a for/while loop block. This makes no sense based on what I know of C++ tuning, but there you have it: Java likes functions better than inline code when executing loops. Maybe there is some optimization that kicks in for a function that doesn't happen for a code block.
If possible, construct a huge single String assignment using conditional expressions (i.e. ( bool-expr ) ? ret-if-true : ret-if-false ) instead of appending to a string buffer with a sequence of if-then-elses. The code is harder to read, but for anything of moderate complexity you can achieve up to a 30% performance improvement by doing this.
So there you have it -- my favourite REAL WORLD, TESTED, and PROVEN TO WORK performance tweaks.
Enabling hand writing input anywhere one could bring up a virtual keyboard would be an incredible boon to the usefulness of a tablet for me. I can't touch type on a virtual keyboard, so I'd have to LOOK for the "keys" I want as if I were a two-finger typist. It would slow me down FAR more than stylus-driven handwriting recognition would.
And for crying out loud, spend some time on a diagramming tool that can "snap" to geometric shapes if you turn that feature on (e.g. You roughly diagram a box and a proper box shows up that you can then resize and reshape to fit, rather than being left with your unevenly scrawled lines.) But don't FORCE the diagramming UI to do that -- just make it an option that is the initial default.
I couldn't give two shits about Flash support other than YouTube videos.
Plain and simple. I don't play any of those stupid flash games, the only thing I ever need flash for is previewing videos and music.
And if I can't see them under Linux because Adobe drops support, I'll just go to the raw torrents to do my previewing and prelistening. YouTube audio quality sucks in too many cases, and the only reason I use it for prelistening to music at all is it's handy.
And if Google thinks that I'll use Chrome just to be able to access YouTube videos, think again. I'll just stop using YouTube if they don't support MY BROWSER. (And it doesn't matter WHAT browser that is -- they can check the visitation stats the same as any other web hosting services if they want to know what browser I use.)
You see, most of the YouTube's I see I watch because I clicked on them elsewhere, not because I searched for them by name at the YouTube site. So if support for YouTube video is dropped from the browser I use for day to day surfing, that just chokes off YouTube visits, because there is no right-click-open-in-chrome option in any browser I've ever seen.
I find it interesting that even though the article (yes, I READ them!) says that ACTA is being sent to the courts for analysis and judgement, the writer of the article is already stating their position as if it were court-determined fact:
Such concerns are precisely why ACTA is being submitted to the courts for review. With this comment posted in the article as if it were fact, it would seem to me that the author is hoping this is nothing more than a checklist review item for getting it passed. And I don't think it's fair to the public OR the courts to be making that recommendation or decision before the courts have done their due diligence.
It would be as bad as Harper claiming that the Senate review of our (illegal!) Canadian ACTA legislation is "fine, but we need to dot our I's and cross our T's. The Canadian version includes DMCA-like clauses that violate a 50+ year history of Canadians being allowed to make back-ups of the media they own, and to format-shift it as well. Preventing people from using the tools needed to make those backups would be illegal, and our government has been notoriously silent about that issue here in Canada.
They flat out don't want to talk about it. They wish a concerned public would just shut up and let the jackboots come down on their neck without question like good little sheeple.
Thank God Canadians seem more interested in flagging the issues with all levels of government and media than our government is in hearing what the public has to say!
The "Old PC" use case really is for hardware that's 2-5 years old, not much older than that. Even Linux can't make an ancient piece of crap responsive under modern application and rendering loads. You can use that older hardware for office work like editing documents, but if you have to deal with modern media, a 5+ year old machine is starting to have a hard time keeping up.
Sad, but true.
Only geeks running file servers and firewalls want the really old hardware, and they don't even want a GUI running on those dedicated servers because it's a waste of memory and CPU when your normal modus operandi is to SSH into the box to configure it.
Regrettably, that includes my Logitech trackball, which hasn't worked with ANY Linux release I tried that came out post Ubuntu 10.04.1. I love my trackball, but after a decade of solid service, I'm going to have to switch. *sigh*
The sad thing is I can't imagine what they did to the kernel to make it hate what is, in essence, just a USB mouse.
An international conglomerate give up a potential share of the market without a fight?
Bwahaahahhahahha!
Simply put: I don't.
I set MY OWN priorities based on the technical analysis of the problems and the resources available, and publish them.
The company priorities are NOT IT priorities. They are a factor in the decision about IT priorities, but they do not SET IT's priorities unless you're fool enough to LET THEM.
Every user or department who is allowed to set IT's priorities will claim their pet project is priority one, regardless of what's good for the company. Only the people who KNOW the resources available and have to deal with ALL the customer departments can set realistic priorities for the IT department itself.
And the company that OWNS the trademark denies that the company that SOLD it had the right to do so.
It's about time an American company got pimp-slapped for trying to steal someone else's REGISTERED trade mark.
Fine, but how has the GPS industry been culpable for the actions of the FCC? They submit their recommendations and concerns to the FCC the same as any other interested party, but it's the FCC who makes the call, not the GPS industry.
How is the GPS industry to blame for being legitimately concerned that Lightsquared technology will interfere with their EXISTING, LICENSED USE OF SPECTRUM?!?!?!!
Well, let's just say that SANE countries like Canada, Australia, and Germany have felt no need to go to the INSANE measures imposed by the UK and US governments on it's people.
Israel needs the security and surveillance because it literally has bombers and shooters in it's midsts.
We don't.
If you read the article, they're only talking about surveillance of staff, not student, accounts. i.e. Employee emails.
Privacy laws in Canada dictate that a service provider or business have you sign a document granting permission to use your data, and explaining how your data is going to be used, and usually verifying that they will not give away nor sell your data to third parties.
But if you sign a contract that grants "above average" priveleges such as surveillance of professor's accounts, the contract is perfectly legal because you signed it. It is not "illegal" to "abuse" customer data, only to do so without notifying the customer of how you intend to abuse it.
Contrary to popular opinion, in Canada your business email account is considered property of the business, so the company can grant whatever access it wants to employee emails. Cry, bitch, and scream all you like, that's just the way precedent has worked out in Canada over the years.
If you want private email, use a private account, even if it's from a free provider like Google/GMail, Microsoft/Hotmail/Live or Yahoo/YMail. Your BUSINESS account is not yours, and your manager is likely to get pissed off if you abuse it by sending PERSONAL email through it anyhow. Your business account is a tool for doing the job, nothing more.
100% true!
The issue is so common that a virtual index that is not maintained by the database is often referred to as a "business index". With small datasets, application performance is often increased overall by relying on full-table scans for non-indexed data rather than applying an index.
Another situation where this often crops up is keys that have a low variance. For example, a hundred thousand record table where one of the index columns only has a dozen values. There are no hard numbers, but as a rule of thumb, if there are 10% the number of keys that there are records for an expected table size, I test a business index approach to see how the performance works out.
But most programmers aren't professionals who test performance before releasing code. As long as "it works", they ship it. Performance tuning will only get done if enough paying customers are complaining that the revenue stream is threatened.
Not surprisingly, most of the work seems to have been for platforms other than Linux, but maybe the upgraded OpenGL rendering pipeline will prove of benefit when full-screening 1080p videos. My box periodically stutters a frame or two when viewing such videos on a 1600x1200 monitor, because I've only got a crufty old P4-3.8GHz CPU with 4G of fast RAM. My video card is more than capable, and I never used to see any frame loss under Windows.
Mind you, I didn't have a pile of servers running when I had this CPU chugging under XP instead of Ubuntu 10.04.1.
Alas, the odds are not in my favour that I'll see this update unless I build from source.
Seeing as they contractually treat sending a link as making a photocopy, it would seem that you are now allowed to photocopy entire works under this new agreement.
Not a bad perk for the price increase at all.
MY slave master provides better working conditions than YOUR slave master.
But the Chinese workers at these offshore provider manufacturing companies are ALL treated as badly as slaves in the old US south. REGARDLESS of whether they're officially "indentured servants" or not.
The fact that some companies treat their employees worse than Foxconn/Apple does NOT mean that ANY of them treat their employees with anything even RESEMBLING dignity or respect.
Then again, maybe that's the whole point.
It's pretty much illegal to ban sex ed classes, so the puritans who hate such courses are trying another tactic to strangle the programs. Literally.
It'll be interesting to see how you're supposed to run a sex education class with media if "popping boobs" are banned.
Typical stupid politicians, trying to make a name for themselves and get some media exposure.
Unfortunately, the general public is likely to nod and say "good idea" rather than think about all the educational material that would be illegal to broadcast in the US.
Do you realize that in Canada our attitude on sex is so much more liberal that we actually have soft core porn aired after midnight on a few stations every weekend? (Toronto's "CITY TV", for example, plus some stations in Quebec, and, I think, Vancouver BC.)
One of the main reasons I opted for the ISP I'm using for my business is not the fact that they're cheaper (it's only $10/month difference), but the fact that SaskTel hosts their data center in Florida, and the one I'm using is hosted in Saskatoon, Saskatchewan.
I don't want my business anywhere near US regulation and control without oversight and intervention by Canadian authorities. The US has been proving to be insanely jackbootish about their approach to the internet for the past 2-5 years, and I simply do NOT want to take the chance of having them interfere with my business.
Or rather, I don't want US media companies interfering with my business. They don't do proper checks before issuing their takedown requests, and were I in the US, I'd be effectively subject to domain seizure and content takedowns without due process and the chance to defend myself. That is an UNACCEPTABLE BUSINESS RISK when it is so easy to avoid.
Worse, the US dollar is in such a sorry state that I will not be accepting payments in greenbacks. I want to be paid in a stable currency that I don't have to pay exchange rates on in order to spend -- namely Canadian dollars. For years I've had to pay extra to convert my Canadian currency to US dollars to pay for goods and services ordered out of the US. The shoe is on the other foot now.
Even if I work a contract in the US for a US company, I'll either be paid in Canadian dollars or charging a 5% premium for the hassle of converting US currency to Canadian dollars (it's a 2-3% bank fee as well, so 5% isn't as much as you might think.) Add in the fact that all foreign payments get held by the bank for 30 days, and the resulting lost opportunity cost of having my money tied up and inaccessible, and I find I really don't have much interest in business south of the border at all right now.
Besides, if I have to travel to service a customer, I may as well visit somewhere I've never been before, preferably China, Australia, New Zealand, or Germany. (I've just always wanted to see those countries some day. I've already spent about 12 years living and working in the US, so I've seen the US. I want to see someplace different next.)
Who said anything about linked lists? Allocate ARRAYS of objects so one big contiguous chunk of memory can be allocated and allocate from those "pages" of objects, not linked lists.
Furthermore, no one said anything about using a global object pool. For peak performance, you want a pool per thread so you don't have to incur synchronization overhead.
But you are correct -- a poorly written object pool will degrade performance, not improve it.
As to the grandparent post -- just because I started with Java 1.0 doesn't mean I assume that the JVM hasn't changed. I've been redoing my tests with each Java release that came out to see if my old assumptions still applied.
I'm a professional programmer, not some kid hacking code in a basement.
Practical experience and years of testing are why I recommend the ugly looking conditional statements. The Java compiler seems to build one big string buffer with one allocation when you use that technique, rather than repeated calls to StringBuffer.append(). But go ahead, stick with what's easy to read if you're not concerned with raw performance -- readability is every bit as important as performance when it comes time to enhance or maintain the code by hand.
I haven't had to do this with Java yet, but I have implemented thread-specific pools with multi-threaded C++ application code, where each thread had it's own pool. It was a critical performance tweak for one system I worked on 12-15 years ago, as we were pushing the hardware so hard that within a year the IO bus wouldn't be able to move the expected data even if it did nothing but shuffle MY module's data 24x7. (Yes, we EXPECTED to need new hardware, but we needed a solution NOW.)
Fortunately, Java seems to do some pooling of it's own for Strings and box types -- they perform FAR better than general objects, so they have to be doing something special for their allocation and destruction. In particular, I've found that well written Java string manipulation code actually outperforms my C++ code -- even though the Java code deals with UTF16 data instead of 8-bit ANSI/ASCII data. Or maybe byte manipulation on modern processors just isn't as efficient as it used to be.
I've always thought of myself as a "programmer", but having worked since '87 with computers for some pretty big companies and ever-larger projects and teams, I found I acquired a few useful skills that I didn't even realize until someone started asking me the right questions.
In short, you can't interact with businesses and enterprise-level systems development without learning a whole host of skills that have nothing to do with hammering a keyboard to produce or debug code.
I've worked with Java since 1.0. The only optimization options I've ever used were the heap and stack size adjustments.
Setting your memory heap too high actually degrades performance, oddly enough. I've got 4GB on this box and over 2.5G is normally used by disk cache, but if I allocate more than about 768MB to the heap, the performance suffers.
Maybe some of these options have real effects on certain production code characteristics, but I've found the best performance tuning options are:
So there you have it -- my favourite REAL WORLD, TESTED, and PROVEN TO WORK performance tweaks.
What was this mom thinking? The government says you have to have vegetables for it to be a healthy lunch.
She'll have to include a slice of pizza the next time to cover the vegetables requirement.
(Yes, the US government has decided that pizza is a vegetable!)
Enabling hand writing input anywhere one could bring up a virtual keyboard would be an incredible boon to the usefulness of a tablet for me. I can't touch type on a virtual keyboard, so I'd have to LOOK for the "keys" I want as if I were a two-finger typist. It would slow me down FAR more than stylus-driven handwriting recognition would.
And for crying out loud, spend some time on a diagramming tool that can "snap" to geometric shapes if you turn that feature on (e.g. You roughly diagram a box and a proper box shows up that you can then resize and reshape to fit, rather than being left with your unevenly scrawled lines.) But don't FORCE the diagramming UI to do that -- just make it an option that is the initial default.
In short:
I still want my Alan Kay Dynabook!
Wah! :P