Last minute but... If you are close to either Santa Clara, CA, or Dallas, Tx, and are interested in JavaEE 6, check out these free JavaEE 6 Roadshow presentations:
•
Roberto Chinnici, SCA Bldg 3 Auditorium, SCA, CA 95054
•
Arun Gupta, SMU Bldg 4, Room 102, Plano, TX 75024
Both are 6:30PM-9:00PM (PT and CT, respectively). And stay tuned for more Roadshow events from Oracle University.
I've uploaded the current table of contents for Multicore Application Programming. You can find all the detail in there, but I think it's appropriate to talk about how the book is structured.
Chapter 1. The design of any processor has a massive impact on its performance. This is particularly true for multicore processors since multiple software threads will be sharing hardware resources. Hence the first chapter provides a whistle-stop tour of the critical features of hardware. It is important to do this up front as the terminology will be used later in the book when discussing how hardware and software interact.
Chapter 2. Serial performance remains important, even for multicore processors. There's two main reasons for this. The first is that a parallel program is really a bunch of serial threads working together, so improving the performance of the serial code will improve the performance of the parallel program. The second reason is that even a parallel program will have serial sections of code. The performance of the serial code will limit the maximum performance that the parallel program can attain.
Chapter 3. One of important aspects of using multicore processors is identifying where the parallelism is going to come from. If you look at any system today, there are likely to be many active processes. So at one level no change is necessary, systems will automatically use multiple cores. However, we want to get beyond that, and so the chapter discusses approaches like virtualisation as well as discussing the more obvious approach of multi-thread or multi-process programming. One message that needs to be broadcast is that multicore processors do not need a rewrite of existing applications. However, getting the most from a multicore processor may well require that.
Chapter 4. The book discusses Windows native threading, OpenMP, automatic parallelisation, as well as the POSIX threads that are available on OS-X, Linux, and Solaris. Although the details do sometimes change across platforms, the concepts do not. This chapter discusses synchronisation primitives like mutex locks and so on, this enables the chapters which avoids having to repeat information in the implementation chapters.
Chapter 5. This chapter covers POSIX threads (pthreads), which are available on Linux, OS-X, and Solaris, as well as other platforms not covered in the book. The chapter covers multithreaded as well as multiprocess programming, together with methods of communicating between threads and processes.
Chapter 6. This chapter covers Windows native threading. The function names and the parameters that need to be passed to them are different to the POSIX API, but the functionality is the same. This chapter provides the same coverage for Windows native threads that chapter 5 provides for pthreads.
Chapter 7. The previous two chapters provide a low level API for threading. This gives very great control, but provides more opportunities for errors, and requires considerable lines of code to be written for even the most basic parallel code. Automatic parallelisation and OpenMP place more of the burden of parallelisation on the compiler, less on the developer. Automatic parallelisation is the ideal situation, where the compiler does all the work. However, there are limitations to this approach, and this chapter discusses the current limitations and how to make changes to the code that will enable the compiler to do a better job. OpenMP is a very flexible technology for writing parallel applications. It is widely supported and provides support for a number of different approaches to parallelism.
Chapter 8. Synchronisation primitives provided by the operating system or compiler can have high overheads. So it is tempting to write replacements. This chapter covers some of the potential problems that need to be avoided. Most applications will be adequately served by the synchronisation primitives already provided, the discussion in the chapter provides insight about how hardware, compilers, and software can cause bugs in parallel applications.
Chapter 9. The difference between a multicore system and a single core system is in its ability to simultaneously handle multiple active threads. The difference between a multicore system and a multiprocessor system is in the sharing of processor resources between threads. Fundamentally, the key attribute of a multicore system is how it scales to multiple threads, and how the characteristics of the application affect that scaling. This chapter discusses what factors impact scaling on multicore processors, and also what the benefits multicore processors bring to parallel applications.
Chapter 10. Writing parallel programs is a growing and challenging field. The challenges come from producing correct code and getting the code to scale to large numbers of cores. There are some approaches that provide high numbers of cores, there are other approaches which address issues of producing correct code. This chapter discusses a large number of other approaches to programming parallelism.
Chapter 11. The concluding chapter of the book reprises some of the key points of the previous chapters, and tackles the question of how to write correct, scalable, parallel applications.
So we're almost sold out of Sun SPOTs, but we have also changed the pricing model. Remember when users were complaining that the retail price for $750/kit was too high? Right. So we have made some adjustments to the pricing model.
You read those prices correctly. We have lowered the retail price from $750.00 to $399.00 which is a pretty darned good deal! I encourage you all to get over to our store and order up!
There is small, but exciting news on the web, since the Oracle Sun Fire x2270 M2 was announced last week. This is the first x64 server refresh to be announced by Oracle since the Sun acquisition, so this is good news for those spreading rumors ...
The x2270 M2 is a model refresh for the old 2270 and the first server to include the new 32 nm Intel 5600 processor (a.k.a Westmere). Other great new feature are the two slots for Sun Flash modules on the motherboard. This server is positioned for cloud or technical computing environments. As usual a white paper and documentation are on the linked Oracle.com website.
Especially important for partners you can find important info on the wikis.sun.com site, like an overview of option boards and os drivers and a list of supported Oracle and third party OS.
Hi all, today we will have a look at the latest improvements that can be found in NetBeans PHP Frameworks area. We believe that the most important feature is that code completion in view (or template) files now offers variables from controller (or action) files - this works for both, Symfony and Zend Frameworks. So, let's have for example this controller:
One can see that we pass a pager variable to our view template so now, we can see it in code completion in view file:
Please notice that the $pager variable is not only listed in code completion items but that NetBeans also knows its type and the file where it is defined. That means that Go To Declaration (CTRL + click) works as well and of course, we can find all the public methods and fields in code completion for the $pager variable itself:
Other minor improvements can be found in navigating and running framework commands - now, one can use just one shortcut for navigating from action to view and vice versa and NetBeans automatically calls the correct framework support. The same applies for running framework commands - no need to specify two shortcuts, one for Symfony and one for Zend. These shortcuts can be changed in Tools > Options > Keymap (the default for Run Framework Command is ALT + SHIFT + R).
That's all for today, as always, please test it and report all the issues or enhancements you find in NetBeans Bugzilla (component php, subcomponent Symfony or Zend). Please notice that if you write a comment here but do not report a bug or enhancement, nothing will probably happen ;)
But, anyway, speaking of which, arguing along the same lines (i.e., "at last NetBeans has seen the light"), when is Eclipse going to run natively on Swing? That's the standard UI toolkit for Java desktop applications, isn't it? The point is, if your argument is that it's great that NetBeans can "finally, at last, hurray" run on the standard module system, isn't it weird that you consider it acceptable to run on your own proprietary UI toolkit?
It's not just me that thinks this, since probably (rough guess) 95% of those who choose to use the NetBeans Platform over Eclipse RCP (read some of their motivations here) do so because the NetBeans Platform uses the standard UI toolkit, while Eclipse doesn't. So, here's hoping Eclipse will continue operating in the stone age (i.e., using their own system while a standard system exists) of using SWT for all eternity since it is exactly this differentiator that has made the NetBeans Platform so popular. :-)
工作需要,EditPlus 编辑亚欧18个语言,唯独韩语显示方块(乱码)。解决方案来自网络,摘抄与此,广而告之。
ps: 韩语常见字体: Dotum、Batang和 Gulim 均可。
--------------------------------------------------------------
How to view/edit Korean by EditPlus.
We all know Serviceability Agent - a great debugging tool for troubleshooting HotSpot VM problems.
Now Serviceability Agent is also available in VisualVM through SAPlugin. More deatils here:
https://visualvm.dev.java.net/saplugin.html
My response:
http://blogs.sun.com/geertjan/entry/netbeans_apis_outside_of_the
That's all. Similar story to part 1 which also discusses FilterNode.
Here are some useful links to Oracle-related content that I recently discovered, as seen from the perspective of a "Sun classic" Oracle employee.
Start with Blogs.Oracle.Com. I had checked it out last year and then forgot about it but I just revisited it and I found the content quite interesting. BOC covers a number of topics, from the core Oracle DB, to ADF, to CEP, and more; a few recent examples are:
You can track BOC from the website, the RSS feed and @oracleblogs. BOC does not have as much volume as what BSC had, say, in early 09, but it's pretty close to today's BSC. And, BTW, Justin has indicated that the current plan is to merge BOC and BSC (and, yes, the BSC content will be preserved).
Like at Sun, plenty of useful content is generated outside of BOC, but, unlike BSC, BOC does not include a planet aggregator. Two useful planets are OraFAQ.com (RSS, @orafaq) and OraNA.info (RSS , @oraNA). I discovered oraNA first and I'm following it; sample posts from there:
Overall, there is quite a bit of community generated content around Oracle-related technologies. Oracle employees also seem to generate a healthy amount of content, I suspect tempered by things like culture and RevRec. A key difference is the lack of blogging from Oracle management: clearly, upper management has a different perspective.
Note - If you know of other key sources of information on Oracle, let me know via comments to this entry and I'll update the main post.
So it looks like Facebook finally opened up access to their chat service for third party applications such as Pidgin, Adium, etc..
They used the open protocol XMPP (good for them!) so we can use our regular IM client to chat with our Facebook contacts without the need of ugly hackish plugins.
Instructions for Pidgin (version 2.7):
- Get a Facebook username. We have a numerical one by default (which we won't know unless someone with his/her account set up in Pidgin tells us) but in the Account Setting menu we can set a new one (for example, alias.surname)
- Create a new account in Pidgin with the Account Manager. Parameters:
Protocol: XMPP
User name: alias.surname (the one chose above)
Domain: chat.facebook.com
Resource: Facebook (whatever label, really)
Password: Our facebook's password (duh!)
ADVANCED TAB:
Disable 'Require SSL/TLS encryption'
Connect to server: chat.facebook.com
Sources:
http://wiki.developers.facebook.com/index.php/Integrating_with_Facebook_Chat
http://www.facebook.com/sitetour/chat.php