类别:形和色 查看评论
10640 items (10640 unread) in 19 feeds
Blog
(66 unread)
Google
(1640 unread)
Oracle
(3652 unread)
OracleERP
(1086 unread)
ReadBlog
(1708 unread)
nix
(263 unread)
OpenSource
(341 unread)
TechNews
(1769 unread)
Design
(115 unread)
This one is for standalone/BIEE uses of Publisher. All the ERP/CRM/HCM folks are already catered for and can tuck into a nut cutlet and arugala salad. Sorry, I have just watched Food Inc and even if only half of it is true; Im still on a crusade in my house against mass produced food. Wake up World!
If you have ventured into the world of sub templating, you'll be reaping some development benefit. In terms of shared report components and calculations they are very useful. Just exporting all of your report headers and footers to a single sub template can potentially save you hours and hours of work and make you look like a star. If someone in management gets it into their head that they would like Comic San Serif font rather than Arial in their report headers, its a 10 min job rather than 100 hours!
What about the rest of the report content? I hear you cry. Its coming in 11g, full master template support. Your management wants bright blue borders with yellow backgrounds for all the tables in your reports, 5 minute job!
Getting back to sub templates and my comment about all the ERP/CRM/HCM folks be catered for. In the standalone release there is no out of the box directory for you to drop your sub templates. Dropping them into the main report directory would make sense but they are not accessible there via a URL. An oversight on our part and something that will be addressed in 11g. Sub templates are now a first class citizen in the world of BIP, you can upload them and BIP will know what to do with them. But what do you do right now?
The easiest place to put them where BIP can 'see' them is to create a directory under the xmlpserver install directory in the J2EE container e.g.
$J2EE_HOME/xmlpserver/xmlpserver/subtemplates
You can call it whatever you want but when the server is started up, that directory is accessible via a URL i.e. http://tdexter:9704/xmlpserver/subtemplates/mysub.rtf. You can therefore put it into the top of your main templates and call the sub template.
<?import: http://tdexter:9704/xmlpserver/subtemplates/mysub.rtf?>
Of course, you can drop them anywhere you want, they just need to be in a web server mountable directory. Enjoy the arugala!
I was just checking up on Google charts this morning to see what was new. They now support QR codes, another barcode format that you might need in your outputs at some point.
similar to datamatrix barcodes, its used to store large amounts of data. Kudos to someone that can decipher the contents of the code on the left (no cheating folks :)
To quote Google,
QR codes are a popular type of two-dimensional barcode. They are also known as hardlinks or physical world hyperlinks. QR Codes store up to 4,296 alphanumeric characters of arbitrary text. This text can be anything, for example URL, contact information, a telephone number, even a poem! QR codes can be read by an optical device with the appropriate software. Such devices range from dedicated QR code readers to mobile phones.
Calling the code is a simple URL away, embedding it in your outputs, even simpler. No font files to load just create a field or dumy image with a URL pointing to the Google charts API. More information from Googlehere.
More information on BIP images here.
Once again, the tech team at BusinessWeek is preparing our annual list of the best under-30 entrepreneurs. Who would you put on our list of the brightest young stars in the tech industry? Check out our online poll and nominate who you think are the most deserving start-up founders.
We've written about well-known entrepreneurs like Aaron Patzer, Bret Taylor, Christophe Bisciglia, and Max Ventilla in past reports, so we're looking for fresh faces. Tell us your nominees by March 19. We'll publish a report based on the results in late April.
欢迎福州!
3月21日,UCDChina三周岁!
UCD书友会2010年3月话题:设计的协作与沟通
各城市书友会地址:
请注意深圳时间为20号下午14:30。
北京,西直门附近奇遇花园,
21号(周日)、下午14:30,
联系人:千鸟 13366219527
上海,长宁区延安西路889号 太平洋企业中心22楼PCHOME办公室,
21号(周日)、下午14:30,
联系人:Sky 13918016880
南京,中山东路293号新安大厦7F 途牛旅游网(毗卢寺东南对面,汉府雅苑南侧),
21号(周日)、下午14:30,
联系人:JunChen 13913833651
深圳,南山区科技园科苑路15号科兴生物谷研发中心六楼,
20号(周六)、下午14:30,
联系人:Lytous 13723766365
广州,天河区体育东路六运五街48号Nasdaq8,
21号(周日)、下午14:30,
联系人:胡晓 13560220908
杭州,西湖区通普路41号 BetaCafe
21号(周日)、下午14:30,
联系人:坏人 15068883444
厦门,软件园二期望海路21号楼福富软件大厦一楼会议室,
21号(周日)、下午14:30,
联系人:大象 13950064793
成都,人民南路一段97号现代之窗二层D座新亚天府苹果体验中心,
21号(周日)、下午14:30,
联系人:老妖 13550272317
福州,晋安区树汤路60号 蔚蓝国际 2-1303,千度教育软件 会议室
21号(周日)、下午14:30,
联系人:九翼青鸟 15205009072 陈晓翌 13799373691
书友会详细信息:http://ucdchina.com/club/
转载请注明出自UCDChina.com,谢谢。
相关文章
No Clutter
Don’t clutter your dashboard with unnecessary visual elements and data. If it looks too busy, then it will fail to communicate the data effectively. Don’t include every bit of data in a dashboard. Seperate them into separate dashboard Tabs.
Single Page – No Horizontal scrolling
Do not put objects on the far right so that the user has to scroll horizontally. It is easy to scroll only one direction which is vertical as that is the default website browsing behavior.
Do not print your Dashboard
Encourage users to export dashboard to PDF and stay on the “Green” side
Add interactivity
Adding extra interactivity to your dashboard, such as being able to select a certain region or being able to drill down can make a huge difference in the perceived usability.
Keep it simple
Show trend by periods
Show pie charts by categories or dimensions
Show tabular data with exception formatting
At the end, ask yourself, “Does this provide any value?” If so, what is it?
有感于国外Oracle用户组的发达,我跟eygle从今年开始尝试组建中国的Oracle用户组,All China Oracle User Group。我们的站点是acoug.org。
我们希望能够为全中国的Oracle技术爱好者提供一个交流与活动的平台,我们希望能够激发更多人对于Oracle技术以及相关知识的兴趣,我们希望沉浸在这些技术中的人员获得更多的乐趣。这是我跟eygle一直以来的一个理想,但愿我们能为此付出并且有所回报。
我们认识到中国目前掌握Oracle技术的人员广度和深度都跟美国、欧洲甚或是印度存在着较大差距,这需要我们更有热情的去付出,但愿在不久的将来ACOUG在全球Oracle用户组中占据一席之地。
ACOUG计划定期举行线下活动,而线下活动也将是ACOUG未来工作的重点,邀请著名的业内人士(不仅限于国内)来进行主题演讲,并围绕相关主题进行广泛的讨论从而使更多人获益。
eygle的文章有关于ACOUG更多的阐述,请猛击这里。
预计在这个月的3月20日(周六)开展ACOUG第一次线下活动,详细的地点、场地以及演讲主题还未确定,但是请有兴趣的朋友时刻关注ACOUG网站,欢迎参加。
Google made plenty of noise with its January announcement that the company was “no longer willing to continue censoring” its Web search results in China at the behest of that country’s policies. But nearly two months later, the company has not followed through on the threat and is less likely to shut its Chinese site, according to a recent study by analysts at Piper Jaffray.
Searches done on ten “sensitive” keywords in the Mandarin language on Google.cn, the company’s Chinese search site, yielded 52% fewer results than searches for the same keywords on the uncensored, English-language site, the analysts said in a research report on March 5. That confirms the censors are still in effect. And there may actually be a higher level of filtering on Google.cn now than there was in January, when Piper Jaffray found 40% fewer search results on the censored search engine for the same ten keywords.
The likelihood that Google will shutter Google.cn has diminished to 50% from 70%, Piper Jaffray analyst Gene Munster writes in a research note.
The results of this study are line with reports that the company’s executives are in talks with Chinese officials, and are waiting to lift censorship in the country until the parties reach some resolution. Google employs hundreds of people in its Beijing offices, and some analysts take recent actions – such as looking to hire new workers there and introducing new mobile products – as signals that it intends to keep operating in the country to some capacity.
Still, it’s unclear how Google and China could reach a compromise, as the search giant remains resolute in its ultimatum. Google deputy general counsel Nicole Wong t Google vice president and deputy general counsel Nicole Wong told the US Senate Judiciary Committee on March 3 that the company is "firm in our decision that we will not censor our search results in China and we are working towards that end."
Google’s captioning initiative has now expanded to all uploaded English-speaking videos, with more languages to be added later this year.
By Guest Blogger Suzanne Robitaille
Ah, video and search. Frank Sinatra said it best: Try, try, try to separate them – it’s an illusion. Here’s proof of that: Speech Technology. This week, Google sealed the deal on video search capabilities for its YouTube portal, saying it would provide auto-captions for all of its uploaded videos using proprietary Google's Speech Technology.
Google’s initiative, piloted in November, began with a handful of partner channels including PBS, Stanford University and National Geographic. It has now expanded to all uploaded English-speaking videos, with more languages to be added later this year.
With this news, Google establishes itself as a frontrunner in the Internet programming space. As a company built on search, search, and more search, Google is now able to capitalize on its investment in speech-to-text technology to index videos, target advertising and create an actual profit margin for YouTube. In fact, video search is likely why Google acquired YouTube in the first place.
The bigger news is that auto-captions will have clear benefits for the deaf and hearing-impaired population, who now will be able to better understand dialogue on uploaded videos. Up to now, this group had to rely on the goodwill of YouTube users to manually add captions to their videos. A time-consuming process, most users didn’t bother to do so.
At a press conference on Thursday, YouTube says accessibility is a key goal for the years to come. Even as Google touts a serious business purpose for auto-captions – search -- it’s not hard to also believe in their commitment to making their products and services more usable for more of their customers.
Furthermore, Google is now removed from any ill will associated with Internet programming issues – such as the ones plaguing network and cable broadcasters. On March 17, the Federal Communications Commission will unveil a proposed broadband plan that is designed to ensure, or at least improve, equal access to Web TV and movie programming for people with disabilities, which could including requiring captions.
Meanwhile, a House congressional committee is mulling the Twenty-first Century Communications and Video Accessibility Act of 2009 that would make captions for the deaf and audio descriptions for the blind into law for Internet broadcasters. The bill is backed by nearly 240 disability organizations known as the Coalition of Organizations for Accessible Technology.
TV broadcasters – unlike Google – already have transcripts available to them – either on paper or in the form of regular TV closed captions, which have been required for almost all programming since 1990. And ABC has publicly committed to captioning all long-form content – so the heat is on everyone else.
While YouTube videos are technically outside of the FCC’s realm, consumers don’t see it that way – and they shouldn’t. That makes Google’s auto-captioning move financially savvy, and buys them consumer altruism at a time when broadcasters are facing down a potentially ugly battle over access issues.
This post was written by guest blogger Suzanne Robitaille. Robitaille is the founder and publisher of abledbody.com, a website covering assistive technology issues. She is the author of The Illustrated Guide to Assistive Technology.

Ever since the Oakland-based East Bay Express published an explosive story called Yelp and the Business of Extortion 2.0 a year ago, Yelp Inc. CEO Jeremy Stoppelman has been dealing with charges that the company has a bad habit of shaking down small businesses. The scheme, say critics, is that Yelp salespeople call small businesses that have been reviewed on the hugely popular business review site, and offer to let them manipulate the reviews if they pay to advertise with Yelp. Some business owners say that when they refused to advertise, they soon began to notice good reviews disappearing or negative ones becoming easier to find.
Now, the grumbling has led to a class action lawsuit. Who knows if the suit has merit, but one thing is for sure: it has refocused attention on the controversy. If the suit goes to trial, Yelp will likely have to disclose more details of its inner workings. While the company has always insisted that advertisers have no control over the reviews that appear on the site (other than the ability to highlight one "sponsored" review they like at the very top of the queue), it has refused to say much about the secret algorithms that determine which reviews appear and in what order.
If Stoppelman is worried, he sure doesn’t show it. In the days after the lawsuit was filed on Feb. 23, he wrote two self-assured blog posts (here and here) in which he confidently explained why he says Yelp is innocent. I wanted to take a deeper dive, to find out what it’s like for the CEO of a company that’s accused of wrongly besmirching corporate reputations to find himself on the hot seat. Stoppelman got on the phone with me on March 2. Here are edited highlights of our conversation.
BW: The class action suit has again focused attention on allegations that Yelp shakes down businesses to get them to advertise. How much is riding on Yelp’s ability to deal with the controversy?
Stoppelman: This [class action] is a reminder of the challenge we have ahead of us, and which we’ve had for the last year. What we’ve built is a system that works really well for consumers. When you read reviews on Yelp, you get a good sense of what’s going to happen when you walk in the door of that business. The challenge is that there are fifteen million businesses in the U.S., and its very hard to communicate with all of them about how Yelp works, and why it works the way it does. That’s an incredible challenge.
BW: There was a time when many people had their doubts about the integrity of search results--about whether search rankings were bought and paid for. A major reason for Google’s success was that it managed to establish consumers’ trust that its search rankings were legit. Do you see any parallels to what's happening with Yelp?
Stoppelman: I see many parallels. When AdSense was introduced, there was a lot of fear and even belief that Google’s rankings would be affected by whether a site was using [this ad-serving system]. There were many articles written about that, too. Now we all love and trust Google. But when they first began wielding significant power, people got spooked.
BW: Did you?
Stoppelman: When Yelp first took off, our rankings on Google would fluctuate wildly. I remember thinking “we’ve got this [potentially competing] product that is taking off; are they on to us?” There’s just a human tendency to want to explain things as if everyone is paying attention to you, when in reality it was just an algorithm.
BW: But the suspicions about Yelp have been around for more than a year now, and don’t seem to be easing. In fact, they seem to be intensifying. Why was Google able to win that trust more quickly?
Stoppelman: Google mines links (to determine rankings) and we mine reviews. The difference is that Google doesn’t have to show which links it is counting. It can be kept hidden from view. But reviews are written by people (who may notice if their review disappears, reappears or is moved up or down in the rankings).
BW: So how do you get out of the penalty box?
Stoppelman: The biggest thing is to create a product that consumers find useful. As more and more people like something, it becomes harder and harder to have a conspiracy theory about it.
There’s been resistance to every new technology that’s ever been introduced. When books came out hundreds of years ago, there were complaints that it would destroy the oral tradition. Some of those fears were justified, but it didn’t stop the rise of the written word. And books have proven to be incredibly useful.
BW: But there’s no question that consumers find Yelp very useful. The question is whether you are serving the needs of the businesses you need to advertise.
Stoppelman: Our business is about connecting consumers with great local businesses. The world of the past, where businesses could completely control their image, was nice. But overall, are there tremendous advantages for businesses by having power in the hands of consumers? Absolutely. The other day there was a story in the New York Times about a place called Ike’s Sandwich Shop. Yelp made his business; now he has to take reservations because the lines are so long.
BW: So is all the controversy hurting your business? It must make it a lot harder for salespeople to do their jobs.
Stoppelman: No, we’ve been through this before. This is the same press cycle we had a year ago—but now we’re better prepared.
BW: The plaintiff in the class action suit (Long Beach, CA-based veterinarian Cats & Dogs Hospital Inc) says that a Yelp salesman named Kevin repeatedly promised to make negative reviews go away if he would advertise on Yelp. Have you disciplined Kevin for breaking the company’s sales policies, and how many times have you had to discipline or fire salespeople for such transgressions?
Stoppelman: We’ve never had to discipline a salesperson about the issue that was laid out in the lawsuit.
BW: Yelp is well-known for throwing fun, alcohol-drenched parties for top reviewers. Should you be doing more outreach to businesses, too?
Stoppelman: They don’t involve alcohol, but we have hosted ten forums in five cities in recent months. I’ve attended three of them so far. We invite ten to twenty small businesses in the area—some advertisers, some not--to talk about how Yelp works and give feedback. They’ve been surprisingly positive. Business owners realize we’re an important and a low-cost driver of business—especially if they’re paying us nothing (because they don’t advertise).
BW: So far, we've discussed what Yelp needs to do to clear up misunderstandings and conspiracy theories. But some people say they understand the business, but don’t like a business model by which you take money from the companies that are reviewed.
Stoppelman: We survey every advertiser that signs up, and one of the things we ask is whether they realize that advertising is not connected to content and reviews. If they say no, they get a call from a salesperson to make sure.
BW: Danny Sullivan, a respected search industry analyst, thinks the only solution is for Yelp to let companies opt-out entirely. That way, only basic information on the company would appear, but no reviews. What not do this? It would go a long way towards proving to businesses that you’re not interested in extorting them.
Stoppelman: Why doesn’t BusinessWeek let me opt-out of having a story written about me? It’s a new generation of people out there (that want to communicate and share opinioins). Some of the content that appears on Yelp might have been created by a newspaper in the past---say, a review by a restaurant critic. It’s a clear question of free speech. If someone said a reviewer couldn’t write about a particular restaurant, there would be an outcry—how dare he be silenced!
During upgrades you will need to uninstall Excel Analyzer, if you use it of course. I have hit a few issues getting my system cleaned out when uninstalling and trying to install the new version.
Junichi from the dev team has a useful crib sheet to ensure its cleaned out completely.
1. Uninstall Excel Analyzer from "Control Panel" -> "Add or Remove Programs"
2. Remove Excel Analyzer add-in
2.1 Excel 2003
2.1.1 Open a blank excel and go to "Tools" -> "Add-ins"
2.1.2 If you see "Xmlpreportaddin", click it to remove
2.2 Excel 2007
2.2.1 Click ms office button on the left upper in MS Excel
2.2.2 Click "Excel Options" -> "Add-ins
2.2.3 Select "Excel Add-ins" at the bottom then click go
2.2.4 If you see "Xmlpreportaddin", click it to remove
3. Open explorer and go to "C:\WINDOWS\assembly".
4. Check if the assemblies which start with "XDO" don't remain there.
5. Install Excel Analyzer again
Download a Excel file from BIP server and go to Login
or
If the OS is Vista, run ExcelAnalyzer.exe
6. Re-start your PC.
Happy Analyzing!
Previous – Excel Dashboard Tutorial – 11
How do you share your Excel Dashboard with users?
Now that you have built the dashboard, you can share the dashboard in multiple ways.
” Create a PDF output of the dashboard and send as email attachment.
Click on the PDF icon on the toolbar as shown below and it will instantly create a PDF output

PDF output

” Create Static HTML output. Click on the HTML icon on the toolbar. This option creates a static html page that you can put in on the web. Users cannot interact with the dashboard. It is just a snapshot image of the dashboard at the time the output was generated. It does not refresh automatically. You will need to regerate the output again when the data is refreshed.
” Desktop Sharing. You can put the dashboard definition file (icv) on a file share directory and other users can view the dashboard through the Dashboard viewer. You may need separate license for dashboard viewers for desktop.

Go to Menu Create ‘ Publish to web and it will generate a file that you can put it where the dashboard web server is and it will render the output. The look and feel is different with this option
The web version is using a flash charting engine to the desktop Java chart engine.
Details of converting the desktop to web version are not covered in the document. Please refer online at any of our websites for more details
You can download the complete tutorial as PDF
” Web Sharing: In this option, you can publish the dashboard to web and the dashboard is available real time with all the dashboard parameters and refresh actions
Previous – Excel Dashboard Tutorial
Summary
We built the above dashboard completely from scratch.
Previous – Excel Dashboard Tutorial – 9
Cleanup – Resize and Organize
Give appropriate names to each portlet.
During the chart creation if we did not provide names, now is the time to provide them.
Right click on each title and click on “Edit”

Scale down the Size

Note, you can drag the corners of each portlet to resize the frames and drag the title name to place them on the canvas
Screen real-estate is very important when designing any dashboard or web application. For better space utilization, we will convert the standard pie to a 3D view

Also, while arranging the objects, keep the most important charts on the top and left area. Put all the detailed portlets at the bottom.
Avoid horizontal scrolling
Remember, do not put any objects on the right side of the scroll bar. Always, keep the scrolling to vertical as it is convienient for viewing.

The above layout will cause for horizontal scrolling and is not a good practice.
Once you do the basic layout of placing the portlets so that they are distinctly visible, it becomes easy to use the resizing options within the tool.
Navigate to Edit ‘ Resize Mode

Once in the resize mode, you can select each object and they are enabled for group resize and placement
Select all the parameters on the top and we will align the top edges with respect to the first one.

As you see, each plet is shown in red with a bar on top indicating it is selected for alignment
One more, thing, you can also turn the Grid mode to see a guide for your alignment and placement
Goto Edit ‘ Show Grid

Note: Once you are done with resize and align with one set of objects, make sure to deselect them before working on the next set of objects
It is best practice to first resize all the objects. All objects on the same horizontal line should have the same height. Select the optimum height of any object on that particular horizontal line and then right click on the title and resize the height of all the selected ones. Then apply the alignment -> Top , deselect the objects and start with the objects in the next horizontal line.
This completes our basic dashboard which is dynamic and extremely informative.
If you need to further customize the look and feel please refer to our online tutorial and reference section
http://www.infocaptor.com/user_help/bi-dashboard-help.htm
Next – Excel Dashboard – Complete Order Management Dashboard
Previous – Excel Dashboard Tutorial – 8
Finish the Dashboard Design and Development
By now, your dashboard is quite chaotic. You have objects all around your dashboard canvas with different sizes. We will start the process of finishing our design.

Before proceeding, we save a copy of the dashboard.
Navigate to menu File ‘ Save As

Give a name to the file so that you can identify the raw dashboard definition file.
Click on Save.
Next, go to menu File => Close All


Note that there are no dashboards to view.
If you need more backup copies to be created or create different versions of the same dashboard definition, then go to the File Explorer, select the file and type – Ctrl-C, and then Ctrl-V

Now, Click on the File ‘ Open
Select the file “Order Management Analytics.icv”

Note that we are not touching the – Initial Copy file.
Click on Open
Get rid of objects you don’t need
We don’t need the initial table portlet, so we will delete that.
Select the “Name” portlet and then click on the “Scissor’ icon on the toolbar


Click “Yes” to confirm.
Note, we created the backup copy of the dashboard so don’t worry if you mess up the dashboard. You can always go back to the original and start again.
Similarly remove all objects that you don’t need it.
Next – Excel Dashboard Tutorial – Arrange objects in sizing and alignment
Previous – Excel Dashboard Tutorial – 7
Create Pie Chart
We will now create a pie chart by product name


It is nice to know that the revenue distribution is not dominated by a single product.
We can now change the “Category name parameter” to see the product distribution for other category

By Category = Beverages

Summary of steps so far
” Create a foundation table portlet (Qlet)
” Add Calculations and any derived columns
” Add Date hierarchy columns as needed
” Create Date parameters if needed
” Create drop down list of values as parameters
” Create charts using the base Qlet
” Delete the foundation portlet when not needed and you are done with the dashboard design
” Arrange the remaining portlets in desired format.
Once you are done with all the Qlets (query/table portlet) and Glets (graphic portlets), it is advisable to save the dashboard file, copy the file and work on the new file for finishing and polishing the dashboard.
Next – Excel Dashboard Tutorial – 9
Motorola General Manager Bruce Brda has big plans for the company’s networks mobility business, which specializes in next-generation wireless equipment and was recently spit off from a larger division.
The networks unit, which on Feb. 11 was combined with a unit that makes radios and computers for corporate and government customers, wants to boost revenue generated from services, such as helping carriers design and make more efficient use of their new wireless networks. Services already account for more than one-third of the division’s $4 billion in annual sales. “There’s room to grow it by a few percentage points,” Brda says. The division, which employs thousands of people, is “highly profitable,” he says. The unit’s financial performance and exact employee numbers have not yet been reported separately. Brda’s business specializes in gear for next-generation mobile networks, based on technologies such as Long-Term Evolution (LTE) and WiMax.
The idea is to offer a broader array of services for carriers that may use Motorola’s – or other vendors’ – equipment in more markets, particularly in the Americas. While he wouldn’t provide any hiring projections, Brda expects to grow his services staff in the coming months.
Striking additional partnerships is also on the agenda. The unit already buys certain gear from partners such as Cisco. “We will partner as a way to expand the reach of our products and to gain [research and development] efficiency,” Brda says. “I believe we have all of the components carriers need in the next couple of years.” The division already sells LTE and WiMax gear to carriers like Verizon Wireless and Clearwire. In the coming months, Brda expects to win a large LTE contract with giant China Mobile. “We are confident we’ll get that,” he says. “We are winning as many [LTE] deals as everyone else.”
The February split from the home unit, which manufactures set-top boxes, shouldn’t affect the networks division’s ability to find customers and win business too much. “The decision Motorola had to weigh is what business has the most synergy [with the home business],” Brda says. Motorola envisions creating cell phones that act as remote controls for televisions and set-top boxes, among other functions. “My goals, my financial objectives haven’t changed whatsoever,” Brda told me this afternoon. “It’s just that I am now reporting to a different leader,” co-CEO Greg Brown. Co-CEO Sanjay Jha heads the second part of the business, which makes mobile phones and set-top boxes.
As many of you know BIP can generate Excel output from RTF template. However, being able to generate a multi-sheet Excel output is a bit more tricky.
For those of you using the standalone release the Excel Analyzer button can help you out. You can build Excel templates that can then be loaded back to the server and used as a template, at runtime generating binary multisheet Excel output. These templates rely on the data being dropped into a single worksheet and then building new sheets on top of the first worksheet. this approach provides masses of freedom in terms of adding native Excel functionality. However, you do need to generate flat data for the base sheet.
For those of you that don't use a standalone release and don't generate flattened data, what your options?
From around the Excel 2002, it has supported an XML format. Thankfully new versions of Excel support the older XML formats. I got a question today asking how do I create an XSL template to generate multisheet Excel output. It took some digging to find information about the Excel XML format. Being the consummate lazybones, I went off and found an XSLT stylesheet to get me started. It was just a simple case of then modifying that to work with my data and to get multiple sheets.
BI Publisher does not supply any XSL editor, because I'm so hard core, I used notepad. But there are several exercises out there some of them are even free, just choose your poison.
The basic structure of Excel XML is as follows:
<Workbook>
<Styles>
<Style>
<Alignment/>
<Borders>
<Border/>
</Borders>
<Font/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
</Styles>
<Names>
<NamedRange/>
</Names>
<Worksheet>
<Names>
<NamedRange/>
</Names>
<Table>
<Column/>
<Row>
<Cell>
<NamedCell/>
<Data>
<Font/>
<B/>
<I/>
<U/>
<S/>
<Sub/>
<Sup/>
<Span/>
</Data>
<PhoneticText/>
<Comment>
<Data>
<Font/>
<B/>
<I/>
<U/>
<S/>
<Sub/>
<Sup/>
<Span/>
</Data>
</Comment>
<SmartTags>
<stN:SmartTag/>
</SmartTags>
</Cell>
</Row>
</Table>
<WorksheetOptions>
<DisplayCustomHeaders/>
</WorksheetOptions>
<WorksheetOptions>
<PageSetup>
<Layout/>
<PageMargins/>
<Header/>
<Footer/>
</PageSetup>
</WorksheetOptions>
<AutoFilter>
<AutoFilterColumn>
<AutoFilterCondition/>
<AutoFilterAnd>
<AutoFilterCondition/>
</AutoFilterAnd>
<AutoFilterOr>
<AutoFilterCondition/>
</AutoFilterOr>
</AutoFilterColumn>
</AutoFilter>
</Worksheet>
<ComponentOptions>
<Toolbar>
<HideOfficeLogo/>
</Toolbar>
</ComponentOptions>
<SmartTagType/>
</Workbook>
It's a big structure, but I doubt you'll need to use that Much of it. You can see how you can build the loop to generate multiple worksheets. Here's my complete XSLT stylesheet, I'll work through some of the features you can understand them better.
Here's the data I'm working with:
<EMPLOYEES>
<LIST_G_DEPT>
<G_DEPT>
<DEPARTMENT_ID>10</DEPARTMENT_ID>
<DEPARTMENT_NAME>Administration</DEPARTMENT_NAME>
<LIST_G_EMP>
<G_EMP>
<EMPLOYEE_ID>200</EMPLOYEE_ID>
<EMP_NAME>Jennifer Whalen</EMP_NAME>
<EMAIL>JWHALEN</EMAIL>
<PHONE_NUMBER>515.123.4444</PHONE_NUMBER>
<HIRE_DATE>1987-09-17T00:00:00.000-06:00</HIRE_DATE>
<SALARY>4400</SALARY>
</G_EMP>
</LIST_G_EMP>
<TOTAL_EMPS>1</TOTAL_EMPS>
<TOTAL_SALARY>4400</TOTAL_SALARY>
<AVG_SALARY>4400</AVG_SALARY>
<MAX_SALARY>4400</MAX_SALARY>
<MIN_SALARY>4400</MIN_SALARY>
</G_DEPT>
...
Just a employee by department data set with some structure provided by a data template.
<xsl:stylesheet version="1.0" xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="urn:my-scripts" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"> <xsl:output method="xml" encoding="utf-8" indent="yes" omit-xml-declaration="no"/>
<xsl:template match="/">
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40"> <ss:Styles> <ss:Style ss:ID="Default" ss:Name="Normal"> <ss:Font ss:Color="black" ss:Size="10" ss:Bold="1" ss:FontName="Arial"/> </ss:Style> <ss:Style ss:ID="x1"> <ss:Font ss:Color="black" ss:Size="10" ss:FontName="Arial"/> </ss:Style> <ss:Style ss:ID="xdo2"> <ss:Font ss:Color="black" ss:Size="10" ss:FontName="Arial"/> <ss:NumberFormat Format="$#,##0;[Red]$#,##0" Bold="0" /> </ss:Style> </ss:Styles> <xsl:apply-templates select="EMPLOYEES"/> </Workbook> </xsl:template> <xsl:template match="EMPLOYEES"> <xsl:for-each select=".//G_DEPT"> <Worksheet Name="{.//DEPARTMENT_NAME}"> <Table x:FullColumns="1" x:FullRows="1"> <Row> <Cell> <Data ss:Type="String">Employee ID</Data> </Cell> <Cell> <Data ss:Type="String">Employee Name</Data> </Cell> <Cell> <Data ss:Type="String">Email</Data> </Cell> <Cell> <Data ss:Type="String">Phone Number</Data> </Cell> <Cell> <Data ss:Type="String">Hire Date</Data> </Cell> <Cell> <Data ss:Type="String">Salary</Data> </Cell> </Row> <xsl:for-each select=".//G_EMP"> <Row> <Cell ss:StyleID="x1"> <Data ss:Type="String"> <xsl:value-of select="EMPLOYEE_ID"/> </Data> </Cell> <Cell ss:StyleID="x1"> <Data ss:Type="String"> <xsl:value-of select="EMP_NAME"/> </Data> </Cell> <Cell ss:StyleID="x1"> <Data ss:Type="String"> <xsl:value-of select="EMAIL"/> </Data> </Cell> <Cell ss:StyleID="x1"> <Data ss:Type="String"> <xsl:value-of select="PHONE_NUMBER"/> </Data> </Cell> <Cell ss:StyleID="x1"> <Data ss:Type="String"> <xsl:value-of select="substring(HIRE_DATE,1,10)"/> </Data> </Cell> <Cell ss:StyleID="xdo2"> <Data ss:Type="Number"> <xsl:value-of select="SALARY"/> </Data> </Cell> </Row> </xsl:for-each> </Table> </Worksheet> </xsl:for-each> </xsl:template>
</xsl:stylesheet>
We start with some standard style sheet declarations about the output format, the encoding, etc.
- here there are a bunch of namespace declarations. I have added in some Styles so that you can see how they are used in the worksheets. I then make a call out to the EMPLOYEES template. We could create the complete template in a contiguous fashion but just to break things out so you can see the separate sections have a separate template for the worksheets and their contents.
With the template match for EMPLOYEES, you can then see I am doing a simple for-each over the G_DEPT level in the data. Inside that loop you can see the Worksheet element.
<xsl:for-each select=".//G_DEPT">
<Worksheet Name="{.//DEPARTMENT_NAME}">
this is how we create a worksheet for every department. You can also see I can set the name of the worksheet to the department name, so it's completely dynamic.
Inside the department loop, you can see I just lay out the title row cells. Then I create a new for-each loop over the G_EMP level of the data.
<xsl:for-each select=".//G_EMP">
<Row>
<Cell StyleID="x1">
<Data Type="String">
<xsl:value-of select="EMPLOYEE_ID"/>
</Data>
</Cell>
...
I will now get a row in my spreadsheet for every employee for a given department. You'll also notice at the Cell level, I can define a style ID that references the styles defined at the workbook level.
Finally I close out my for each loops, remember you have two of them, G_DEPT and G_EMP.
That's it, it's a simple XSLT stylesheet from which you could probably build on quite easily. Microsoft has a few references to the XML format, this particular format, is for Excel 2002. As I mentioned they upwardly compatible. MSExcel XML Spreadsheet Reference
Deploying the templates is straightforward, no matter flavor of BI Publisher you running, it's just a simple case of uploading them into the template manager. There is a wrinkle thou, when running the template you are going to be generating XML output. The browser is not going to know that you have generated Excel XML and therefore needs to open Excel to view it. This can be seen as a limitation of the BI Publisher server. An enhancement to allow me to set what the output type is going to be would be great. For now, your users are going to have to export and save the XML to the client machine. Then, get Excel to open up the XML file, they will then have multisheet Excel coming from BI Publisher.
XSL template and data available here.
Previous – Excel Dashboards – 5
Create Year and Category Parameters
Remember, we have not built any charts yet. It is very important that we build our foundation Qlet and its corresponding parameters so that all of the drop down parameters can be leveraged in the charts.
It definitely helps to plan your dashboard development. Since the dashboard tool is easy to work with, we should still make an attempt to always plan so that we don’t duplicate our effort.
During the development, it may happen that you will get lots of ideas on implementing different ways. I would suggest to save the base dashboard definition once you have frozen all the parameters and Qlets. Before you start building charts, create a copy of the dashboard file as backup.
In our data, we have details about items that are sold on a particular date. We have the unit price, and quantity information. We also have the category for each item that they belong to. So it makes sense to include a parameter for the item category so that we can select only the items belonging to a particular category.
Right click on the “Category Name”, navigate to Create ==> Create Parameter

It creates a new parameter named “Category Name”

You may place this anywhere you feel appropriate.
Similarly, right click on the “Or Year” column and create the parameter


NOTE: Often it does not make sense to have a year drop down and a date range parameter.
Because if the year value and the date ranges fall apart or do not intersect then you will not see any data output. In this tutorial we provided the year and date ranges only for demonstration so if you need only one, do not use the other.
Next – Create Excel Dashboard – 7
Previous Article – Create Excel Dashboards – 4
Add Date Hierarchy Columns
Most of the data, has some form of date information. Now date is very granular information. Very often, to generate trending information, you need to derive year and month columns.
In the dashboard designer, you can easily generate Date hierarchy columns for any kind of reporting.
In our example, we have order date, so we will generate the Year, Quarter, Month, Day , Week and other flavors of the same information for better representation.
Right click on the “Order Date” column and navigate to Create ‘ “Add Year, Quarter, Months column


Click on “Add” and it will add the following columns to the right of the primary column “Order Date”

You may not need all of the date derived columns but it is worth understanding what they stand for.
The derive columns, have a prefix of “Or” which are the first two letters of the primary date column “Order Date”. The remaining part explains the actual part of the date.
1. Year : represents the year component of the date
2. Mth N : represents the numerical month.
3. Mth Disp: represents the month number but padded with zero on the left
4. Mth NN: represents month number and 3 letter month name
5. Yr Mth : represents the year and month number
6. Qtr: represents the quarter number
7. Week : represents the week of year
8. Dy: represents day of year
9. … and so on.
The concept of date hierarchy even though simple to implement is very powerful. Within few minutes you can derive important “Insight” into your data. We will now begin the process of deriving intelligence out of boring data. Now begins the fun part.
Create Date Filter and Parameters
If you work with real transaction application, you already know that the amount of data is huge and the data has some form of date column. This date could be transaction date, invoice date, order date, payment date etc.
One of the dashboard and reporting best practices is to have some form of date filter and/or parameters so users can dynamically choose the date range. This helps in narrowing down the data for analysis.
Let us create a simple date filter.
One of the typical requirement is to see data for “as of today”.
In the dashboard designer it is few click process to implement this.

Right click on the Date column (order date), Navigate to
Create ==> Create Date Filter

The detail use of the Date Filter is covered in a separate tutorial. As we have very minimal use of the date filter for the dashboard that we are building we will just touch the basics.
In the date filter, on the left you see the column name and on the drop down you see different options such as below

” First Day of Month
” Last Day of Month
” First Day of Qtr
” Last Day of Qtr
” First Day of Week
” Last Day of Week
” First Day of Year
” Last day of Year
For our purpose we just limited our data to be less than today.
Click on “use this filter” and it will be applied to the Qlet.
One of the best practice is to avoid hard coding of any values in the Query. For e.g, The dashboard designer allows you to build drop down list of values as parameters to the query. We will leverage this option to the fullest so that the dashboard is extremely useful and can respond to data changes.
We will create a From and To Date range parameter
Right click on the “Order Date” column, Navigate to Create ‘ Create Parameter
It instantly creates two Data Parameters

We arrange them and size them appropriately as below

Once arranged and formatted, you can type the date or popup the date picker by click on the button on the side

Now, right click on the Title and select “Refresh”

Change the From and To Date values and refresh, the Qlet will change the data accordingly.
Next – Create Excel Dashboards – 6
Previous Part Build Excel Dashboards – 3
We will Add Calculations and Formulas
Add Calculations
Since this is a raw extract of actual transactions, it may need to add additional calculations and columns to create useful metrics.
For e.g in our sample file, we have the “Unit Price” and “Quantity” columns. We will create calculation to derive the “Amount” column

Right click on the Quantity Column, Navigate to Popup Menu
Create ‘ –>Create Calculation
It shows a calculation wizard.

1. Click on “Unit Price”
2. Click on * multiplication operator
3. Click on Quantity
4. Rename the column to “Amount”
5. Click on “Use this Formula”
As you see, the “Amount” column is added right next to the Quantity column

Mikhail from the PeopleSoft reporting team came up with a good question today. A customer that converted one of their Crystal Reports to BIP was having some issues. The report was not sorting the same way the Crystal report used to. They wanted the data sorted by Numbers , then uppercase followed by lower case strings.
It reminded me of the Cool Sorting post from 2 years ago. Dang, we have written a lot! With a little change I came up with a similar solution.
You need to use a trick in the sort
<?for-each:row?><?sort:string-length(substring-before ('01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
,substring(PRODUCT_ID,1,1))) ;'ascending';data-type='number'?>
I have a the string '01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' to provide the required sort order ie numbers , then upper case then lower case values.
The substring-before finds the sub string in the big string based on the first character of the PRODUCT_ID e.g. value starting with '3' will return '012'
The string-length then calculates the length of the string e.g. '012' returns 3.
We then sort by that string length value.
To simplfy the code a little I would put the string into a variable
<?variable: srtStr; "'01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'"?>
thats a " surrounding the single quotes. Then reference it
<?sort:string-length(substring-before ($srtStr,substring(PRODUCT_ID,1,1))) ;'ascending';data-type='number'?>
Bit neater and more portable ie you can use the same variable for multiple sorts. RTF available here.
现在个人要注册并且使用一个cn域名,手续需要:
1. 购买域名,付费
2. 付费成功之后提供审核资料(包括一些打印件和身份证的扫描件)
3. 审核通过之后去工信部备案网站中自行备案
4. 备案成功之后域名开通
为此条款我特地致电了国内某域名注册商的客服。
Q:费用计费是从什么时候开始的?
A:从成功付费以后。
Q:那如果工信部备案拖了我几个月都备案不成功,这段时间如何补偿?
A:没有补偿。
Q:如果备案不成功怎么办?
A:那你就重复提交备案申请,总会成功的。
Q:如果我厌倦了备案的繁琐,决定放弃这个域名,既然你们自从我注册了这个域名之后就没有提供任何服务,可以退款吗?
A:抱歉,一旦付费成功了,就无法退款。
cao你大爷,贵国真是威武。老子惹不起总躲得起,本来一直说cn域名还代表咱是中国人,用着挺爱国的,但是从今以后决定不再注册任何cn域名。
做出这个决定,就好比方鸿渐老爹抱怨的那样“他爱国而国不爱他,大有青年守节的孀妇不见宠于翁姑的怨抑”,又跟五折叔说的那样怎么老是有种挥之不去的忧郁感呢?日你个麻哟。
最后看一眼工信部备案管理网站糟糕至极的用户体验。
1. “建议使用:1024 * 768 分辨率”,这种土掉渣的提示应该在进入21世纪以后就很少看到了吧。
2. “刷新验证码”这个链接是假的,毫无用处。不偷工减料会死啊。
3. 每个新网站必须要重新注册新用户才可以备案,即使登陆备案网站是通过用户名而不是网站名。也就是一个名下有10个网站的主办者需要注册10次才可以,这是什么脑子思考出来的模式?
4. 作为一个互联网域名备案的网上办公系统,毫无专业性。为什么“典型问题指南”是用弹出窗口这样被用户诟病了多年的方式来表达?为什么在用户登陆之后页面左侧的树状结构在Firefox和Chrome浏览器里面一团糟完全没法正常使用?
不知道这个网站用了多少钱造出来的,我只想说在如今这个年代大概再差劲的架站初学者应该也会比这个做的好看吧。
Seeking startup funding may soon get easier. A group of venture capital firms led by Andreessen Horowitz on March 1 unveiled a Web site www.seriesseed.com designed to streamline the way startups apply for seed funds, cutting the number of documents young companies need to fill out.
The Web site, formed with the help of startup lawyer Ted Wang, contains 30 pages of free documents entrepreneurs can fill out to apply for $300,000 to $1.5 million of initial funding. Typically, such documents run about 100 pages and have to be customized by lawyers. The 30-page term sheet would have to be customized as well, but it would dispense with some sections typically unnecessary for early-stage investments, such as those dealing with prior investors. The idea behind the effort is to “save start-ups time and money,” Wang tells Bloomberg BusinessWeek. “The negotiations process will also be shorter.”
Ten well-known venture firms have committed to accepting these so-called Series Seed Documents. They include Charles River Ventures, SV Angel, Polaris Ventures and Andreessen Horowitz, which is an investor into Web-calling company Skype and social games maker Zynga. “We are committed to making deals on these terms,” says general partner Ben Horowitz.
The venture firms hope others will end up supporting this effort as well. “I think this will become a new standard, and people will be able to raise money more quickly,” Wang says. Bloomberg LP or one of its subsidiaries is an investor in Andreessen Horowitz. Bloomberg LP also owns BusinessWeek.com.
生成系统正常期间内和故障期间内的AWR性能数据比较报告,可能可以帮助我们更加简单的定位问题所在。
可以通过awrddrpt.sql脚本生成。
SQL> @?/rdbms/admin/awrddrpt.sql
脚本会要求输入需要比较的第一份和第二份AWR报告的起始结束Snap ID,生成的AWR报告基本上如下图所示。
在普通的AWR报告各个部分都增加了1st, 2nd以及%Diff,这表示第一份时,第二份时各自的情况以及两次的相差百分比。
如果我们因为某些原因(比如权限问题)无法读取awrddrpt.sql,那么也可以通过DBMS_WORKLOAD_REPOSITORY.AWR_DIFF_REPORT_TEXT函数来完成。
DBMS_WORKLOAD_REPOSITORY.AWR_DIFF_REPORT_TEXT( dbid1 IN NUMBER, inst_num1 IN NUMBER, bid1 IN NUMBER, eid1 IN NUMBER, dbid2 IN NUMBER, inst_num2 IN NUMBER, bid2 IN NUMBER, eid2 IN NUMBER) RETURN awrdrpt_text_type_table PIPELINED;
dbid通过以下SQL获取。
SQL> SELECT DBID FROM v$database;
DBID
----------
777920305
inst_num通过以下SQL获得。
SQL> SELECT instance_number FROM v$instance;
INSTANCE_NUMBER
---------------
1
bid和eid分别是Begin Snap ID和End Snap ID,通过以下SQL获得。
SQL> SELECT snap_id, end_interval_time
2 FROM dba_hist_snapshot
3 WHERE end_interval_time > trunc(sysdate-1)
4 ORDER BY snap_id;
SNAP_ID END_INTERVAL_TIME
---------- --------------------------------------------------------------------------------
377 25-FEB-10 01.10.10.657 PM
378 25-FEB-10 02.00.21.884 PM
379 25-FEB-10 04.49.00.861 PM
将上述获得值全部作为参数值传入AWR_DIFF_REPORT_TEXT函数,执行即可。由于输出结果较长,使用spool打印到文件中方便查看。
SQL>spool awrdiff_1_377_1_378.txt SQL> SELECT * FROM 2 TABLE(DBMS_WORKLOAD_REPOSITORY.AWR_DIFF_REPORT_TEXT(777920305,1,377,378, 3 777920305,1,378,379)); SQL>spool off
今天的湾区阳光灿烂,280州际公路两边的绿色山坡和蔚蓝的白云,让人觉得自己是Windows XP桌面上的一个图标。
下午,2点,终于来到Facebook这个神奇的公司。他们的新家在南加利福尼亚街的最里面,一幢两层的楼里。他们刚刚从车位紧张的Palo Alto城里搬到这里,据说一层楼又要搬了。我好像是他们再次搬地方前的最后一批访客。这里,车位依然紧张。Facebook有那种蓬勃向上的感觉,处处都在生长。长得结实的前台问的第一个问题就是:你是来访问的,还是来面试的?
Facebook的格局和百姓网很像,就是平板桌子,一个接一个排开,没有隔间,像是巨大的停车上的车位。每个人站起来都可以看到其他人。这架势,豆瓣有一点,Six Apart也是,Mozilla也是。比起Google来说,Facebook身上依然可以看到创业公司的影子。办公室很Cool(绝大多数的硅谷公司都很cool),很实用。没有Google那样fancy的航天飞机,也没有太多的装饰,除了人,就是人,非常的实用主义。
Facebook里面到处挂着国旗。毕竟Facebook已经是全球的网站,美国已经只占30%的访问量。书架上摆着不同版本的Risk游戏 - 他们非常推崇的桌游,是一种战略游戏,两个人一个国家一个国家的PK,看谁最后占领的领土大。Facebook的市场,的确就是按照Risk的战略来做的。
让我有些想不到的是,Matt向我介绍一个人。他坐在5张桌子拼成的岛的里面一张桌子上,远离光线好的窗户,身后是一个人来人往的会议室。我们握手,然后我看他很眼熟,然后想了半天,总算觉得好像是。。。“Are you that Mark?" 他说是呀。他就是Facebook的Mark Zuckerberg,创始人和CEO。
之后我们聊了会儿,期间还有域名注册商的推广电话打进来,我估计是想让他买Facebook的其他什么服务的(这位打过来的老兄也挺雷人的,估计不知道电话这边是谁,不见得Facebook的DNS的联系人还是Mark吧)。
Mark显然比我想象的年轻,并且安静。别人都有超大的屏幕,他就一个白色的笔记本电脑。那个桌子,显然就是一个拘谨的访客,除了电脑和几张纸,好像没有什么了。这让我相当惊奇。不过他确认,这就是他干活的地方。那种不羁的感觉,在我认识的朋友中,倒还真和VeryCD的黄一孟同学神似。

关于Mark的评论,我觉得最有趣,也最深入的是这一篇:Mark Zuckerberg: The evolution of a remarkable CEO。
当看到一个长相普通的年轻人站在身边,并且可以做出成就的时候,对于我这样比他大7岁的人来说,还是有很大的启发 - 如果可以和神话里的主角聊聊天的时候,神话就不是神话,而就是生活。至少,我们不再觉得很多事情不可能。
作者:Fenng 发布在 dbanotes.net.
最近 Apple 和 Adobe 之间因为 Flash 的支持与否,口水仗打的比较热闹。个人愚见,苹果公司做出当前的选择应该不是因为乔布斯要逞一时口舌之快,相信是内部自有 iPhone 以来的长期评估后做出的选择,苹果公司从战略层面甚至会把 Adobe 看作竞争对手而不再是重要的合作伙伴,而谢绝 Flash 入内,是一个非常精明的借口。
之所以说二者是竞争关系,关键字还是在于"平台"。Adobe Flash 是当前业界占有率最广泛的一个技术平台,甚至超过大家想当然的 Java 。根据 Adobe 的统计,Flash Player 占领了 99% 可上网电脑设备,有超过 200 万专业用户在使用,这里的专业用户应该指具备一定开发能力的用户,依托于 Flash 的应用程序数量已经相当的惊人。所以,是否在 iPhone 、iPad 上引入 Flash 的支持,从苹果的角度看,这是平台之战,谁也不想引狼入室。我们设想一下假定 Flash 已经得到了苹果公司的支持,那么 Adobe 可以一转身也建立一个 "Flash App Store" 或者类似的东西,开发者可以用上传的小应用,任何平台的用户都可以下载使用。想想对苹果的冲击会有多大? Adobe 或许还没想好如何也建立一个 App Store ,但不排除将来会染指这一块业务。
苹果公司长久以来不太有"开放"的态度,或者说是"封闭的开放",最希望通过自己封闭的环境,让用户通过圈下来的地建立一个生态圈子,不想和其它公司一起合作。乔布斯回归后,通过激发用户对 iPod 喜爱与信赖,进而购买使用 iPhone ;通过 iPhone ,进而使用 iPad ;通过 iPad ,再回去使用 Mac 。这是个非常好的封闭循环过程。开放,会丢掉利润,而封闭,才会让苹果公司有更大收益。当然,我也想说的是,对 Flash 的支持友好也的确有可能让 iPad 在某些方面导致平庸,比如性能。与之类比的是 Firefox ,现在速度问题广为用户诟病,而这问题基本由插件导致的,现在 Chrome 尽管足够快,但随着扩展日益增多,必然重蹈覆辙。
现在乔布斯游说内容提供商加入他的 iPad 阵营,而他之所以敢批评 Flash 的不足,也是因为还有另外的技术路线可选,那就是 HTML5 。但是有多少内容提供商会舍弃 Flash 而加入 HTML 5 的阵营,这个还需假以时日才能看清楚。换做另外一家公司,来自用户的呼声可能都会受不了,对于苹果来说,我行我素是一贯的风格,乔布斯一直是个精明的商人。
是否会在 iPad 上看到 Flash ? 将来或许会,但是这要在乔布斯开给 Adobe 的条件都得到满足的情况下才会出现(没错,这两家现在或许已经在谈判桌上了),这些条件当中,除了解决当前的性能和稳定性问题(这个问题并非原则上的问题),最重要的是 Adobe 不要与苹果有商业利益上的冲突,苹果一定要得到某种承诺,而这,对于 Adobe 来说,也会是艰难的选择。
--EOF--
注:春节期间构思此文,一直没发出来,后来发现有不少人也持类似观点,澄清一下,并非拾人牙慧。
说起平台,国内 360 安全卫士尽管已经取得了惊人的装机量,进而推的浏览器和网址导航也都立竿见影,但是还难脱"工具" 的影子,还是不能形成技术生态环境,我相信不会有类似 "360 平台" 的产品出来的,不是不想,而是做不到。
Sun(Oracle)公布的 Java 在桌面机有 8 亿。
最近文章|Recent Articles
本站赞助商:豆瓣网
评论数(7)|添加评论 | 最近作者还说了什么? Follow Fenng@Twitter
本文网址:http://www.dbanotes.net/review/iphone_ipad_flash.html
DBA Notes 理念: 用简约的技术取得最大的收益...
One of the outputs that BIP does not do so well at is plain ol text output. We normally suggest looking at the eText template or learning XSL to build an XSL to TXT template. Came across a couple of blog posts from Kevin on XSL templates that would help get you started.
http://kwoodrow.blogspot.com/2008/07/bip-xsl-text-templates-part-1.html
http://kwoodrow.blogspot.com/2008/07/bip-xsl-text-templates-part-2.html
Thanks Kevin, apologies for not spotting them until now!
Based in Chicago ever since it was founded in 1928, Motorola is contemplating a move to California, according to co-CEO Sanjay Jha.
When Motorola splits in two next year, Jha said he may transplant the handset and set-top box units to Silicon Valley. "We'll go where that talent is, and right now, that looks like California," Jha said in an interview with the Wall Street Journal.
This makes a lot of sense: Software acts as the biggest differentiator for cell phones and other gadgets nowadays. And much of that developer talent resides in California. Nokia has established a research presence in Silicon Valley in recent years. So has smartphone software maker Symbian. Apple, Google and Palm are based in California. Last, but not least, Qualcomm, where Jha used to work before joining Motorola, is headquartered in San Diego.
But uprooting Motorola's existing engineering and marketing talent won't be easy. Motorola lost a lot of great employees over the past several years, as it struggled to turn the business around. And it could lose more staffers if Jha decides to go ahead with the move.
Previous step : Excel Dashboards – 2
Create Dashboard and Table portlet
Once connected, it will show you a list of action items to pick from

We will click on “New Blank Dashboard“
In the Dashboard Name, we type in “Order Management Analytics”

Click OK.
It will present you with a table browser showing all the available worksheets as tables

Expand the node to see all the worksheets.
In this example file, we just have one worksheet named “order_data”. Note how, it attaches a $ sign at the end, which indicates this is an Excel Worksheet.
So make sure you do not have any dollar sign when naming the Excel worksheet and no other special characters and no white or blank characters. Replace blank characters with “_” underscore character
Double Click on the “order_data$” node

Click on the “* alias=ord” item at the very top to select all the items

You may change the name of any column or any other property such as sort and group by.
We will leave it as it is and click on the “Create Table” button.
This action creates a Table Portlet (Qlet) in the Dashboard canvas

We will use this Qlet as our basic building block for the following exercise
Putting aside the scheduling posts, I have just one more. I got a good question this morning that I thought was simple but turned out to need, some probably long forgotten functionality.
How do I secure PDF output when bursting?
Just set the PDF security to 'on' and then set the security features you want in the report configuration page, right? Maybe, but the more detailed requirement is the password for the document needs to be the last four characters of the customer's account number. That requirement moves down to the burst output documents i.e. its more detailed than a password set at the report level. How can you achieve that?

A bit of thinking and I alighted upon the little used and almost forgotten since the advent of a nice and friendly user interface; ability to embed document properities into the RTF template. Using this method I can embed the properties at the right level ie document and I can pick up the password from the account number. Of course there will only be one account number to find because we are splitting by customer in our burst; if you are splitting by invoice then you will need to modify the data set to bring the password in as needed.
Adding the properties is straightforward enough in Word 200-2003 (File -> Properties.) Finding the property dialog in 2007 is a tougher. Hit the button, top left -> Prepare -> Properties -> Advanced Properties.
Now its case of getting to the Custom tab then entering:
Name - enter the XML Publisher property name prefixed with "xdo-"
Type - select "Text"
Value - enter the property value. To reference an element from the incoming
XML data, enter the path to the XML element enclosed by curly braces. For
example: {/root/password}
So to add the password to the PDF output document you will need the follwoing properties to be set:
Name:xdo-pdf-security - this enables the PDF security.
Value: true
Name: xdo-pdf-open-password
Value: {/root/password} - this will be 'looked up' at runtime
You can of course add anything else that you might like to use xdo-pdf-no-printing, xdo-pdf-no-changing-the-docment, encryption levels, etc.
You can now burst your documents to your customers, suppliers, staff, etc and provide various levels of security that you might need and they can use a password personal to them. Happy Bursting!
Previous Step: Excel Dashboards – Part 1
Launch Dashboard Software and Connect
Launch InfoCaptor Dashboard Software on your Desktop and click on the connect button on the toolbar

The connection wizard has items that simplify connecting to different data sources.
For Excel Files, Click on the Excel button

Once you click, it automatically selects the appropriate Driver for you

Click on the “Access/Excel File” button.
Select the order_raw.xls file. It populates the connect name for you. But you can change this name. Connect Name is for your reference
NOTE: Make sure that the order_raw.xls file is not open in MS Excel. The Excel file is locked once you connect to it. If the file is open in MS Excel, you may get connected but not able to query and may get unpredictable results.
Now, click on the Connect button
Upon successful connection, the connection wizard disappears and a new action wizard pops up.
Next : How to build Dashboards – 3
Databases are often under lock-n-key of the IT Department and not possible to connect directly due to security reasons. So if you plan to build a Dashboard prototype or a Dashboard Mockup it makes sense to export the data to Excel and build it.
Modular Dashboard Design
Lot of the online tutorials and Dashboard e-books teach you to build dashboard in Excel file. They provide you with templates, you fill in the information and build the dashboard using Excel charting techniques.
If you use Excel Templates for your real dashboarding needs then you may end up with any of the below problems.
” Big Bulky and bloated excel files
” Undocumented Macros
” Zero verification on the data authencity
” No way to refresh the dashboard (lost productivity)
“Best Practise for Dashboard Design”
Modular Design – Keep Data and Presentation Separate
How? – Use Excel only for storing your data. Nothing more.
Do not build any visualization in the same place where your Data resides.
Benefits of this approach
” Your dashboard or presenation layer is independent – Dashboard definition is stored separately
” Increased productivity – When you have fresh data just refresh the dashboard, no redevelopment needed
” No Messy Excel Macros or coding knowledge required – Just drag and drop tables and visually build Tables, Charts, Speedometer, Gauges, Dials, Thermometers and more charts
” Simplified Distribution and Presentation – You can Export the Dashboard to PDF or HTML and just send them as attachments
” Save Time – Just build the dashboard presentation layer only once and automate the refreshes.
Lets begin Building Dashboard
Data Preparation
Export your transaction data to Excel file by running a report or requesting your IT department.
There are certain rules to be followed when you get the data in Excel files.
Here is a sample Excel dump of Order Entry data.
The first row is always treated as the column names.

If you inherit an Excel file with pivots and charts all over the places then try to copy just the raw data in another worksheet in the same file or create another file. If it is not possible to keep the first row as the column names then you could define “named ranges”. In the dashboard designer it is possible to access the data using Cell ranges but then future updates to the Excel file could break the dashboard, for e.g if the data goes beyond the Cell range.
NOTE: Make sure column names do not have any funky characters. Just keep it to simple alpha-numeric column names.
在三亚的时候,Wendy同学在经历了从5星级到家庭旅馆的不同住宿以后,评论道:
酒店服务的作用,就是把房间里其他人住过的痕迹彻底抹掉,让下一个一点都察觉不出来,不留一根头发,或者被人动过的痕迹。
这次海南之行,自驾车1100公里,带着小逸凡,环岛一周,彻底的爱上海南这个大小正合适的岛。
记录如下:
- 东线高速比西线高速景色好是真的。东线从海口到三亚,经过文昌,琼海,万宁,每个地方都可以住下,都可以去看几个湾。西线高速,恩。。。,是一条高速。
- 西线高速比较搞笑,三亚出来到尖峰岭那一段的很多出口接着土路。土路延伸进一片椰林,就不见了。
- 海南的自然景观加上高速公路不收费,下一个出口兜一圈再上来很方便,和硅谷的开车体验很像。
- 海南汽油比上海贵1块多,但不收养路费了。所以海南几乎都是丰田,本田和尼桑等省油的日本车。
- 在所有的湾中,我的最爱:第一名:香水湾;第二名:石梅湾;第三名:海棠湾;第四名:亚龙湾;第五名:三亚湾;第六名:椰林湾。
- 最漂亮的山:第一名:终年云雾环绕的牛岭
- 对东环铁路很期待,海口到三亚90分钟,4分钟一班的规划,就好像地铁一样,把整个海南连成了一个大的城市。
图片如下:
香水湾:

雅力士远比我想象的好,很不错的小车:

三亚港还是很有港口的感觉的。

尖峰岭

更多照片:
本月第三个周日是2月21日,因春节因素,考虑到大部分公司正常上班,部分公司休假,所以本月UCD书友会暂停。(3月书友会正常进行)
虽然暂停,但各地或有活动,详情可联系各地负责人:
北京联系人:千鸟 13366219527
上海联系人:金凡 13774265933,兰思 13524425208
南京联系人:JunChen 13913833651
深圳联系人:Lytous 13723766365
广州联系人:胡晓 13560220908
杭州联系人:坏人 15068883444
厦门联系人:大象 13950064793
成都联系人:老妖 13550272317
祝大家虎年吉祥!
转载请注明出自UCDChina.com,谢谢。
相关文章
This post is for the standalone users out there, I'll explain why in a moment. I was with a customer in sunny, warm Nebraska last week, OK, OK it was sunny but 'warm' is a little of an exaggeration. It was freezing, somewhere around 3F without the windchill. As I drove into Omaha, I was wondering why it seemed deserted; upon opening the car door, it became all too clear, where was my pullover. I should have realized when picking up the car but that was under cover and they had pre-heated the car.
The customer was looking for a way to stop BIP's scheduling engine sending out report outputs on a public holiday, ideally stopping the job altogether and then re-scheduling it for the next non-holiday day. I was with a colleague, Joel from really sunny and really warm Texas. Putting our heads together we thought about using the scheduler in OBIEE, Delivers, to drive the process. For the uninitiated, Delivers, has a really neat feature. You can create a trigger request that gets executed first; if it returns a row then the main request is run. You can not directly run a BIP report from Delivers but there are ways to call the BIP scheduler using a java class and BIP's web services. Our plan was to set up the trigger request to check the current date against a table of excluded dates ie holidays. If there was a match then dont return a row and this would stop the whole process. If there was not a match then force a row to be returned and allow the process to continue. To get the BIP report to run we would employ the Advanced tab on the iBot definition. Here you can define a java class that can call the BIP web services.
When I got home to 32F Colorado (toasty!), I made a start on looking at the issue. I hit a few barriers with the Delivers/Web Services approach which I'll cover in another post. Not insurmountable, but quite a complex solution for the customer to implement. I took another look at the problem from the BIP side. BIP does not currently have a means of stopping a job run based using a trigger , would be a great feature. It also, does not support custom calendars, at least not yet. So, I have no way of stopping the job but I thought of a way to at least stop the delivery of the report.
Bursting Abuse
The bursting engine is normally used to split a set of batch data, then format and deliver the reports. With a little abuse we can use it to stop delivering its payload based on a single report data set rather than a batch of data. Create the report as you would normally, queries, parameters, templates, etc. You'll need to add an element in the top of the tree to act as a KEY column for the bursting query. Something like:
<ROOT>
<BURST_KEY>XXXX</BURST_KEY>
<DATA> ...
</DATA>
</ROOT>
Then add a bursting definition, you'll have to set a split and deliver by column but for this purpose we can just use BURST_KEY element in our data set ie we are not going to split it. Now comes the tricksy piece. Asume you have created a table in the db to hold the holiday dates that you want to avoid . you can then construct a CASE statement in the burtsing select statement to check the current date i.e. the date the report is running against the table of excluded dates.
select
case when (select count(1) from no_report_date e
where to_char(e.excluded_date,'YYYYMMDD') - to_char(sysdate,'YYYYMMDD') = 0)=0 then 'XXXX' else 'YYYY' end KEY,
'Certificate' TEMPLATE,
'RTF' TEMPLATE_FORMAT,
'en-US' LOCALE,
'PDF' OUTPUT_FORMAT,
'EMAIL' DEL_CHANNEL,
'tim.dexter@oracle.com' PARAMETER1,
'cc@nowhere.com' PARAMETER2,
'from@nowhere.com' PARAMETER3,
'SUBJECT: Enterprise Bursting Test' PARAMETER4,
'BODY: Test Report Body' PARAMETER5,
'true' PARAMETER6,
'replyto@nowhere.com' PARAMETER7
from
no_report_date d
where rownum=1
Rather than trying to match the dates I actually did a diff on them and tested for a zero value. If the 0 came back ie a match then it returns an invalid KEY value, then the busrting engine will not find a KEY match and will not deliver the document. The rownum statement ensures we only get a single row returned.
This approach has a some drawbacks:
If the report should not be delivered today then what should happen? For an answer to that, we get in to the gray and murky area of updating the scheduler tables and we are going way off the reservation ... I'll save that for next time.
Wireless call quality is getting worse, according to a new study. "....reported call quality problems have increased considerably in 2010," according to the Feb. 18 report from J.D. Power & Associates. Out of 100 calls placed, 13 experienced some problems, up from 11 six months ago. In particular, the number of reported dropped calls has increased to six per 100 calls, up from four six months ago.
The cause: Smartphone use is surging, putting strains on networks and resulting in static on lines and dropped calls.
Smartphone users, who pay carriers much more than regular phone subscribers, are actually getting poorer service. An average American pays $50 a month for wireless service, while most smartphone users' bills are 50% to 100% higher. Yet, smartphone users "are nearly three times more likely to experience dropped calls than are traditional mobile phone customers," according to the study.
These problems will plague an increasing number of Americans in the coming months, as wireless carriers have been implementing incentives for more customers to switch to smartphones.
But their networks are already groaning under the extra traffic. AT&T has admitted to network overload problems in New York and San Francisco. Smartphones can surf the Web and stream videos, and typically use up much more wireless network capacity than voice-centric phones.
MetroPCS has hired several advisors to explore a potential purchase of rival Leap. But can this combination work?
The two companies appear to fit well together. They operate in different markets, so a merger would vastly increase the combined company's coverage area (the two already have an agreement that lets one's customers place calls when they are in the rival's territory). They could shave costs by combining certain operations such as billing and customer care. "We believe PCS's board and large shareholders have likely pressured [management] to look at a deal," Jonathan Chaplin, an analyst at Credit Suisse, wrote in a Feb. 12 note. "We also believe the company will investigate both a potential sale and an acquisition."
Let's not forget that Metro and Leap have tried to merge before -- and failed. In 2007, Leap rejected an unsolicited takeover offer from MetroPCS, saying it undervalued the business. That followed a legal tussle over patents. In 2006, Leap had filed a lawsuit saying Metro violated its patents related to offering all-you-can-eat pricing plans. Metro counter-sued, alleging disclosure of trade secrets.
Yet, considering the accelerating competition in the already cutthroat U.S. wireless market, and any pressure the companies' boards and shareholders may be placing on the management for a merger, CEOs Doug Hutcheson and Roger Linquist may need to get past any lingering unresolved tension quickly to make a deal happen.
作者:Fenng 发布在 dbanotes.net.
给我的朋友们,还有这个网站的读者以及Twitter 上的推友:感谢过去一年对我的支持、帮助亦或是鼓励、信任。祝愿大家在虎年:
新年快乐!健康平安!
新的一年就要来临,在这新的一年会有哪些奇迹发生?一起来期待并见证吧...
一切高墙都会倒塌,只要我们坚持并坚信。
--EOF--
最近文章|Recent Articles
本站赞助商:豆瓣网
评论数(3)|添加评论 | 最近作者还说了什么? Follow Fenng@Twitter
本文网址:http://www.dbanotes.net/mylife/happy_tiger_year.html
DBA Notes 理念: 用简约的技术取得最大的收益...
Real Networks is cutting its Rhapsody music business free to pursue an IPO (just as Arik suggestedin this prescient story many months ago. How does he do it?).
The news of the IPO doesn't fill me with optimism--which is only interesting because I, unlike the vast majority of analysts and industry watchers, have long thought the business had great potential. The change of heart isn't based on any rethinking of the subscription model. One way or another, this will ultimately be the future of music. It's only a matter of time before people realize that there's no reason to buy songs a la carte or put up with annoying ads when you can have listen to whatever you want for a flat monthly fee. Once the price is right on these subscriptions--say, $3 or less per month, buried in your cellphone or broadband bill--hundreds of millions of people will jump on board.
But ultimately could be a long way off, and an independant Rhapsody will have less financial firepower at its disposal to stay in the fight long enough to secure victory. Especially if the quality of the service declines--which in my case, it has. For the last eight months or so, I've been running into a maddening Infinite Loop, so to speak, whereby a problem with the Helix DRM technology in Rhapsody causes it to crash every time I try to use the $140 Sandisk Sansa View portable MP3 player I bought to use with the service last May. I connect the device, and get an error message telling me I need a new version of Rhapsody--but once installed I'm told I need to update my license to play the music transferred to the device. Which leads to the error message requiring the new version of Rhapsody...and so on.
Am I alone in this? If you are a Rhapsody user, let us know whether the quality of your experience has held up. And whether you think news of the IPO was good news or bad news for fans of the service.
Android operating system for smartphones has more than doubled its market share in the U.S. between September and December, according to comScore's survey of more than 30,000 consumers aged 13 and up.
Android's market share rose from 2.5% in September to 5.2% in December, while BlackBerry maker Research In Motion, Microsoft and Palm lost ground in the U.S. smartphones market, according to comScore. Developed by a consortium of companies lead by Google, Android has gained traction thanks to the introduction of a slew of new handsets that run it, including Google Nexus One and the popular Motorola Droid.
But while Motorola's new smartphones enjoyed good traction this fall, that didn't prevent the company from losing more market share in the fourth quarter, as sales of its cheaper phones slowed down further. The world’s largest handset maker, Nokia, lost share as well. The company said recently that it has gained share worldwide, but it’s still having trouble cracking the U.S. market.
Research In Motion, on the other hand, actually gained cell phone market share, as more Americans switched to smartphones and picked up popular handsets like BlackBerry Pearl and Curve, according to comScore. LG gained share as well.
The biggest gainer in handsets, though? Samsung, whose market share expanded from 20.4% of the U.S. market in September to 21.2% in December, according to comScore’s Feb. 8 report. Samsung has continued to come out with highly capable yet inexpensive phones that have been a hit at AT&T, Sprint Nextel and Verizon Wireless. At Verizon, Samsung Omnia, a Windows Mobile-based smartphone, sells for only $10 after an online discount and with a two-year contract. The phone features a 5 Megapixel camera, a touch screen and full Web browser.
Google is taking steps to address customer support problems that cropped up soon after the release of its Nexus One, a phone that Google currently only sells online. On Feb. 8, Google began providing phone support in addition to existing efforts to solve problems through online forums.
Until recently, customers who had problems or questions -- and wanted to talk to a customer service representative -- had to call the phone’s maker, HTC, if their questions concerned the hardware. Or they had to call T-Mobile USA to inquire about service. Now, Google has begun also offering phone support for customers with questions on existing or pending orders, at 888-48-NEXUS (63987). It’s a small but important step toward making consumers comfortable with buying phones online vs. through carriers, as they normally do today.
Shock jock Howard Stern likely gave Sirius XM executives a shock on Feb. 8, when he told his radio listeners that he is considering leaving Sirius to become a judge on 'American Idol' when his lucrative Sirius contract expires at the end of the year.
A few weeks ago, Stern also said he'd been approached by terrestrial radio executives who want him to work for them. Radio giant Clear Channel recently told Bloomberg BusinessWeek it might be interested in hiring Stern.
By disclosing these negotiations, Stern may be trying to up the pressure on Sirius to offer him another lucrative deal. Sirius currently pays Stern, his agent and his staff $100 million a year to air Stern's radio show on Sirius exclusively. But in the years since that contract came into effect, Sirius's growth has slowed. And its renewed focus on financial performance may forbid writing another large check.
So, if he wants to make as much money in the future, Stern may, indeed, have to look elsewhere. 'American Idol' would certainly offer a lot of money -- and tons of exposure.
Being British, I of course love Indian food, its almost our national dish back in the UK. Roast beef and yorkshire pud is no longer the go to faire. Its a spicy hot chicken Pathia or Dal for me all the way. Thats sometimes hard to find here in Colorado, we have taken to making our own having found only a handful of Indian restaurants in Denver and Springs (suggestions welcome locals :0) Nan bread is now available in local supermarket so we have not built our own tandoori oven.
My tenuous bog post title is not referring to that delicious bread but to an XSL and therefore Publisher issue, well maybe be not an issue; more of something you may need to handle.
there is no native support to handle divide by zero errors or maybe mistakenly dividing a string into a number. Right now the only way around it is to check every value prior to using it in a calculation e.g.
<?if: XXXX >0?> <?XXXX div YYYY?><?end if?>
Not so bad, but if you have multiple calculations to handle in a template it can become a pain and of course is a bunch of code to write or at best copy and paste.
There was a questions on the forum this week asking if BIP had a safeDivide function like Actuate has? After a little digging to find out what the heck a safedivide function was, my initial thought was to create a template(function) for the template to call prior to any divide functions. I am from the school of 'why re-invent the wheel' so Google it took another hit. Lots of cool solutions out there; one of my favorite sites is from Dave Pawson of XSLT book fame - http://www.dpawson.co.uk/xsl/sect2/sect21.html. There is a mass of answers on Dave's site from a host of experts, well worth bookmarking.
Dave's site popped up this solution
Define a format name, like so:
<xsl:decimal-format name="MyFormat" NaN=" - " zero-digit="0"/>
And use it with your format statement:
<?format-number(@totalAmt,'#,###','MyFormat')?>
this is much simpler than building a function. The first statement needs to be placed at the top of your template. In this case if a divide by zero occurs i.e. a NaN then a '-' will be returned.
First thought, corrected and a solution found. My second thought, we need to provide something natively to handle this for folks. Some folks have differing requirements in separate parts of an output, maybe 'N/A' in sme cases and '0' for others. So, I logged an enhancement request to handle this. I logged 9355897, Template Meister Hok Min picked it up and implemented the enhancement within the day. Now waiting for a release vehicle but there's service for you, logged, coded and tested within the day. If you are desperate for it, you can get support to log a one off request on your behalf.
晒几张婚纱照。必须得说影楼的摄影师是二百五,不停要求我们做出扭曲的pose,还要我们俩眼睛不往一处看,就好像不知道镜头在哪里一般。实在忍受不了蹂躏之后努力反抗,才有那么几张看上去还顺眼的,幸好佟老师小朋友底子好,哥虽然不帅也还将就看,总体来说没有丢祖国人民的脸。
如果不能看到下面的照片,请移步到咱们伟大祖国管辖内的网站中观看,猛击Yupoo。
大东海的礁石上。
还是大东海,看上去沙滩挺大,其实就那么一小块。波澜壮阔的电影如果看到拍摄现场,也就那样。
十米长拖呢,二百五摄影师拍了个近景。
出乎意料的米奇玩偶,倒是有出乎意料的喜感,色彩也是最鲜艳的。
还是穿自己的休闲装舒服。气球的颜色和大海天空配合的也还不错。
由于新娘子劳累,提前结束了拍摄,原本计划的夕照并没有如愿,这张有PS过,太阳的高度在那个位置,实际并不会有如此浓烈的黄昏色彩。



















On Feb. 4, the Symbian Foundation will release the first completely open-sourced version of its mobile phone operating system, a move it hopes will make it easier for developers to improve the software and create applications for use on Symbian-based phones. Starting tomorrow, programmers will be able to download, modify and use the software at no charge. The organization made pieces of its code available earlier.
The release marks the conclusion of the huge effort to turn Symbian, the most commonly used smartphone software, from a proprietary operating system only available to developers at companies like Nokia into an open-sourced one, accessible to programmers around the world. Symbian engineered the move as rival Google made a splash with Android, a rival open-source mobile operating system that's gaining steam. By 2012, Android will surpass Windows Phone and the iPhone to become the world's No. 2 most popular mobile operating system behind Symbian, according to Gartner. As rival software gained market share, support for Symbian began to flag. Symbian hopes the new, open-sourced software will help reverse the slide. "We'll see proliferation of converged devices based on Symbian happen this year," says Larry Berkin, general manager for Symbian in the U.S.
Been a while I know, crazy busy, which is not a bad thing but the blog suffers. Last week was spent embedded in all things 11g BI including the new version of Publisher. There are some very cool and more importantly useful, features coming. My favorite is the new data builder tool; no more 'notepad' to build more complex data structures, oh no!
Its a great drag and drop interface that lets you pull in multiple sources, join them and then group the data to generate a hierarchical data set. You can then abstract the element names to friendly functional names for your layout template builders. There are also some new sources, such as LDAP and Excel - cant wait to share more on the new stuff. Before you ask, I can not tell you when its coming ... you know the drill.
Back to my numbers to words update. String of mails flying around over the toWordsAmt function; typically used in check printing.
<?xdoxslt:toWordsAmt(12345.98)?>
generates 'Twelve Thousand Three Hundred Fourty Five and paise Ninety Eight' It always appears to return the subunit in 'Paise'. Upon investigation the 'paise' is hardcoded; this function was written for some Crystal conversion routines that made it into core code.
A few mails later and it emerges that we would like you to use another function that it a bit more robust and has some more options.
<?xdoxslt:to_check_number(12345.98,2)?>
Typical use of this function is :
xdofx:to_check_number(12345.67, 2)
xdofx:to_check_number(12345.67, 'USD')--> Twelve thousand three hundred forty-five and 67/100 Note that the currency is only for precision. No currency word, e.g. dollar or cent, is included in output. All capital output is available with CASE_UPPER key word.
xdofx:to_check_number(12345, 'JPY', 'CASE_UPPER')--> TWELVE THOUSAND THREE HUNDRED FORTY-FIVE
CASE_INIT_CAP, CASE_UPPER, and CASE_LOWER are available.
The user also change the style of decimal area, if needed.
xdofx:to_check_number(12345.67, 'EUR', 'CASE_LOWER', 'DECIMAL_STYLE_WORDS')--> twelve thousand three hundred forty-five and sixty-seven
DECIMAL_STYLE_FRACTION1(default), DECIMAL_STYLE_FRACTION2, and DECIMAL_STYLE_WORDS are available.
Please note for EBS customers this is only available for R12. Its not currently presnt on 11i. You could log a backport request via support thou.
Have a play and you'll be printing words in no time.
Alas, reality TV has just jumped from the TV and onto your gaming console. On Feb. 2, Sony Computer Entertainment America (SCEA) announced it will debut an original competition reality series, The Tester, on PlayStation Network for free download starting February 18, 2010.
In the series, 11 gamers from across the country will compete "in grueling physical and mental challenges to win a position as a game tester at SCEA and a $5,000 signing bonus, all under the scrutiny of a panel of judges, including actor/comedian and diehard gamer Hal Sparks," according to Sony. The Tester, which was designed by some of the same people who gave us TV reality series Rock of Love and The Surreal Life, will be available for download on PlayStation 3 and PlayStation Portable.
"The Tester will follow contestants over eight episodes as emotions run high, alliances form and they battle with brain and brawn," according to Sony's press release. "While donning giant slingshots, paintball guns, and human hamster balls, contestants will be put to the test in a series of elimination challenges shaped around the skills necessary to be a game tester, including dexterity, communication skills and mental prowess." Cast members range in age from 22 to 36 years old and include a student, a paramedic and a used car salesman. Check out the trailer right here.
The move is a nod to the fact that many gamers play games rather than watch television nowadays. But, like the rest of us, they enjoy reality TV shows -- particularly when those series follow their fellow gamers.
Leap Wireless has hired Goldman Sachs and asked its board members to consider selling the company, according to The Wall Street Journal. Leap's shares jumped 13.1% today, to $14.92, amidst investor hopes of a quick deal.
Chances are, selling Leap won't be easy, however. As Michael Nelson, an analyst at Nelson Alpha Research, points out in his Feb. 1 note, "We believe an acquisition by AT&T or Verizon is unlikely, owing to significant regulatory hurdles associated with the companies' high market share at 30% and 32% respectively." A deal would mean major divestitures.
The most likely buyer, MetroPCS, has long resisted merging with Leap. The two companies' cultures differ, and its management had been known to exchange potshots during a prior merger attempt.
Moreover, the combination would basically bring together two companies that are struggling to grow and prosper. In the first nine months of 2009, Leap's losses mounted. Metro is in the black, and growing, but that may change. Amidst rising competition, both companies have been aggressive on pricing, and Metro's financials could suffer as a result. "We expect no free cash flow generation in 2010 and note that next year's free cash flow generation will be highly dependant on how far the company can cut capital spending," Pali Capital analyst Walter Piecyk wrote in a Jan. 14 note.
Leap has other options: A private-equity investor could take an interest in Leap, or facilitate a Leap-Metro merger. A foreign telco could buy Leap to gain a toehold in the U.S. market.
如何最大限度的提升中国的网站速度,今天发信给我信任的朋友们,老冒回复如下:我朝Internet南北不畅通的解决方案(老旧方案)(需要翻墙。可以在Google Reader里面订阅http://robertmao.com/feeds/latest/访问)。很多要点老冒几乎都提到了,我在此列出我的一些问题和思考,共有用样需求的各位讨论。
1. MySQL跨越广域网的复制(Replication of MySQL)是否稳定可靠
除了老冒写到的基于页面或者部分页面的缓存方案(Squid as cache),还有一种更加冒险,但是实时性更好的方案就是在异地的数据中心建立MySQL的slave节点,进行主数据中心和附属数据中心的Master-slave replication. 按说MySQL复制本身已经是一个非常健壮和成熟的解决方案,但是跨越广域网的效果如何,尚待验证。我觉得,只要延迟平均在秒级别,偶尔出现分钟级别的延迟也可以接受,毕竟整体已经好于缓存+通知过期。
如果通过VPN+SSH在两个机房建立稳定的链路连接,把两个机房可以当成一个网络延迟稍微长一点,稍微不稳定一点的局域网来用,至少比cache方案有一个优点:可以在大动态数据量的时候,获得更好的秒级别的实时性。
同理,基于这种链路的Solr (Lucene)复制,也是一个可以考虑的架构,但是一个未知数。具体情况如何,如小马过河,只有各家自己试过才知道。
如果实现,就可以在系统级别,而非在应用代码级别实现异地的数据的自动cache, validations, rebuild。看起来很美。
2. MySQL master-master复制
除了主从方案,还有一种多中心方案。数据中心A和数据中心B各自有自己的数据库,但为了避免命名冲突,一个中心的数据采用奇数编号,另外一个采用偶数(或者等中心数大于2的时候,对某一大于中心总数的数字取模)。如果从MySQL以及绝大多数的数据库角度,这个操作非常方便。简述如下:
假设A和B在初始时候的数据是一样的,最大编号(auto_increment的上一次给出值)是401。这个时候,只要简单的把两个数据库的auto_increment_increment设成2,
auto_increment_increment = 2
另外有一种直接使用GUID作为id的方案,个人觉得太重了。
这个方案做ID切分以后,就为master-master replication做好了准备。之后两个中心可以相互实时互相复制了。开起来也很美。
但问题是,在大型系统里面,就算有再成熟的技术,简单的永远胜过复杂的方案。对于master-master的复制,我现在依然心有余悸。我的心理障碍就是因为以前技术支持的时候做过一个case,就是因为Windows 2000里面的Domain Controller可以master-master的复制,原理上是一个有问题,其他的可以把好的信息传过来,但实际上,一个小bug或者一个不小心的配置,可以让一台主域控制器的错误拖垮其他的所有控制器。master-master的方案在多于2个节点的时候,也需要额外的设计。
3. 关于cache
基于文件静态化的方案的好处显而易见,但是过期永远是心头的痛。对于像带有翻页这样的操作,除了第一页,其他页面的cache几乎不可能,因为谁都不愿意因为一条信息的更新,让后面的无穷无尽的翻页页面的cache重建。
对于链路层的动态加速,觉得在现在的CND提供商无法获取真正优势网络资源的实际情况下,好似概念多于实际。
所以,如果需要实时,或者准实时的加速,权衡所有方案,我觉得在异地放置Smart CDN是一个比较可行的解决方案。Smart CDN(抱歉,是我新造的词),就是前端部署的不仅仅是页面缓存,而是包括MySQL,搜索,Memcached等等一系列的服务,然后通过第一条提到的方式进行同步。这。。。。。。不是100%确信,只是一种想法。不过我相信这么做的人应该不在少数。
我这里抛砖引玉,希望有过经验的同学分享你的好主意,尤其是成功的案例。在此谢过。
作者:Jacky 发布在 dbanotes.net.
自从 Oracle 和 HP 推出 Exadata 之后,我就很关注这个产品,之前也写了一篇Oracle Database Machine介绍它。去年,Oracle和SUN合并后,推出了Oracle Exadata V2,相比较上一代产品有几个变化:第一,使用 SUN 的硬件;第二,宣称支持 OLTP 应用;第三,Oracle 11g R2 提供了更多的新特性。
Exadata Smart Flash Cache
Exadata V2整体架构并没有太多改变,换用了 SUN 的硬件,除了采用 Intel 最新的 Nehalem CPU 以外,每台 Storage Cell 更是配置了 384GB 的 Flash,这也是为什么 V2 可以支持 OLTP 应用的关键。
Flash Cache 完全是自动管理,Oracle 会根据数据的访问情况,决定哪些数据放在 Flash Cache 中。所有的数据都是先被写到普通磁盘上,再根据访问情况读入 Flash Cache 的,所以如果 Flash Card 发生故障,数据不会丢失。当然,Oracle提供了方式,可以让用户手动将表或者索引 Pin 在 Flash Cache 中。
在自动管理的方式之外,Oracle还允许用户人工创建flash disks,和普通磁盘一样,这些 Flash Disks 通过 ASM 输出给数据库使用,用户可以把一些访问非常频繁的数据文件放在上面。这些 Flash Disks 不仅仅是 Cache 了,所以 ASM 会在Cell 和 Cell 之间做镜像。如果某块卡发生故障,那么整个 Storage Cell 上的 Flash Disks 会 offline,保证数据不会丢失。
Smart Scan
Smart Scan是 Exadata 最重要的一个功能,它的作用就是把 SQL 放在每个 Cell 上去运行,然后每个 Cell 只返回符合条件的数据给数据库,这样就极大的降低了数据库服务器的负载和网络流量,并充分利用了 Cell 的计算资源和 IO 资源。
传统方式:所有的数据都需要返回给数据库服务器,网络带宽要求高,所有的计算在数据库服务器上完成。
Smart scan:只返回符合条件的数据,减少网络带宽,并充分利用了 Cell 上的计算和 IO 资源。
这里有一点要注意,在使用 Smart Scan 时,每个 Cell 返回给 DB Server 的是结果集,而不再是传统的 Block, DB Server 完成结果集的处理,并返回给客户端。
Smart Scan 如何处理 Join ?
这是我一直想要搞清楚的问题。事实上, Smart Scan 只能处理 Join filtering,而真正 Join 的工作必须在 DB Server上完成,而且Smart Scan 仅适合于处理 DSS 环境的复杂 Join,对于 OLTP 类型的简单 Join,Smart Scan 并不能发挥其优势。设想下面的查询:
select e.ename,d.dname from emp e, dept d where and e.ename='Jacky' and e.deptno=d.deptno;
假设采用 nested loops join,Smart Scan 只能完成 e.ename='Jacky' 这个条件的过滤,然后将符合条件的 emp 表的数据返回到 DB server,然后由 DB Server 完成 join 的工作,逐条查询dept表 (e.deptno=d.deptno) 的数据。所以 Smart Scan 并不适合nested loop join(我认为 Smart Scan 只有在适合的条件下才会启用),只有 DSS 环境的大数据量复杂join才会发挥出优势。而且 Smart Scan 只能完成filtering的工作,而不能真正完成 Join 的工作,这个与 Greenplum 数据库是不同的(有兴趣可以看我的文章,Greenplum技术浅析)。设想下面的查询(emp和dept都是大表):
select e.ename,d.dname from emp e, dept d where e.deptno=d.deptno;
假设采用 Hash Join ,由于没有任何过滤条件, Smart Scan 只能把两个表的数据全部返回到 DB Server 上进行join操作,不过 Smart Scan 也不是一点用都没有,至少还可以进行 column 的过滤,只返回需要的字段就可以了。
Oracle 的文档中,曾经提到对于一个大表和小表join时, Smart Scan 会采用bloom filter来快速定位(可以看我以前的文章,有趣的 bloom filter )。方法是把小表build成为bloom filter,然后在每个storage cell上对大表做scan,利用bloom filter快速定位符合条件的结果,并返回给 DB Server 作 join。
Storage Index
存储索引,顾名思义是在存储级别建立的索引,简单的说就是为表中的每一列数据建立一个索引,每个index entry记录一段数据区间的最大值,最小值以及它们的物理位置,文档上说1MB数据对应一条index entry,见下图:
如果我们查询B<2,或者B>8的数据,根据存储索引,我们就可以跳过这些不在min和max之间的数据块,极大的提高了扫描的速度,这就是存储索引的意义。
Hybrid Columnar Compress
首先我们要搞清楚,什么是行压缩,什么叫列压缩。我们熟悉的数据库,如Oracle、MySQL等都是基于行的数据库,就是行的不同字段物理上存放在一起,还有一种是基于列的数据库,就是每个字段的不同行物理上存放在一起。他们的优缺点同样突出:
基于行的数据库,访问一行非常方便,但是由于同一列的数据是分开存放的,如果要针对某一列进行查询时,几乎要扫描整个表才能得到结果。基于行数据库的压缩,称为行压缩。
基于列的数据库,因为同一列的数据物理上放在一起,所以访问一列非常方便,也就是说如果针对某一列进行查询时,不需要扫描整个表,只需要扫描这一列的数据就可以了,但是访问一行的全部字段非常不方便(又是废话)。基于列数据库的压缩,称为列压缩。
Oracle 通常说的 compress 功能(包括11g R2的Advanced compress),都是行压缩,因为Oracle是个基于行的数据库。大概的方法就是在block头部存放一个symbol table,然后将相同的值放在那里,每行上相同的数据指向symbol table,以此来达到压缩的目的。行压缩的效果通常不好,因为我们知道行与行之间,其实相同的数据并不多。但是列压缩则不同,因为相同列的数据类型相同,很容易达到很好的压缩效果。
行压缩和列压缩都有其优缺点,而Oracle的混合列压缩技术,实际上是融合了列压缩的高压缩比和行数据库的访问特性,将两者的优点结合起来。Oracle提出了 CU 的概念(compress unit),在一个 CU 内,是一个基于列的存储方式,采用列压缩,但是一个 CU 内保存了行的所有字段信息,所以在CU与CU之间,Oracle还是一个基于行的数据库,访问某一行,总是只在一个 CU 内(一个CU总是在一个block内)。
所以说混合列压缩,结合了列压缩和行访问的特点,即可以提供非常高的压缩率,又很好的保证了基于行类型的访问。
Exadata的另一个重要功能是 IO resource management,如果我们在一个 Exadata 上部署了很多个数据库,可以用它来管理 IO 资源,这里就不作阐述了。
目前,我还没有了解到在国内有 Exadata 的应用,而且资料也是比较少的。希望有机会可以真实的测试一下它的性能,我不怀疑他在 DSS 环境下的表现,但是对于 OLTP 类型的应用,是否真的象 Oracle 说的那么强劲,还有待于验证。
-EOF-
稿件来源。
最近文章|Recent Articles
本站赞助商:豆瓣网
评论数(2)|添加评论 | 最近作者还说了什么? Follow Fenng@Twitter
本文网址:http://www.dbanotes.net/database/oracle_exadata.html
DBA Notes 理念: 用简约的技术取得最大的收益...