error 22 info
Chrome ĺ˘éäšçĽéčŞĺˇąćŻĺ ĺ大ćˇďźä¸čżčłĺ°äťäťŹčޤéçć庌čżčĄ
ćĺ¨ĺĺżçé漟é头ďźä˝çĺ¤Şäš ă
Three Goblin Art
Not today Justin
occasionally subtle

Origami Around
wallacepolsom

oozey mess
Xuebing Du

if i look back, i am lost
Show & Tell

romaâ

â
ojovivo

blake kathryn
Monterey Bay Aquarium
dirt enthusiast

Andulka
Sade Olutola
One Nice Bug Per Day
I'd rather be in outer space đ¸

@theartofmadeline

seen from Malaysia
seen from United States

seen from Hungary

seen from United Arab Emirates
seen from Singapore
seen from United States

seen from Malaysia
seen from China

seen from Malaysia

seen from United States

seen from United States
seen from United States

seen from Malaysia

seen from United States
seen from TĂźrkiye

seen from Malaysia

seen from Israel
seen from United States
seen from Malaysia
seen from TĂźrkiye
@1521349560
error 22 info
Chrome ĺ˘éäšçĽéčŞĺˇąćŻĺ ĺ大ćˇďźä¸čżčłĺ°äťäťŹčޤéçć庌čżčĄ
ćĺ¨ĺĺżçé漟é头ďźä˝çĺ¤Şäš ă

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch ⢠No registration required ⢠HD streaming
this is title
this is content
New Post has been published on ITESSAYS
New Post has been published on http://itessays.com/other/sungardasvoice-five-basic-things-you-should-know-about-cloud-computing-forbes.html
SungardASVoice: Five Basic Things You Should Know About Cloud Computing - Forbes
For those whoâve been stranded on a desert island, lost in the Amazon, or with their head in the clouds over the last few years, we have some breaking news: the adoption of cloud computing is rapidly picking up steam. Because cloud computing is kind of a big deal (like, change the face of IT big), we thought we would provide a brief cloud computing introduction. Here are some key points you need to know about cloud computing to help your organization reap its benefits and get you back into the 21st century.
1. There are two versions of cloud to know about
There are several varieties of cloud computing services. Depending on your companyâs IT needs, you might be able to use a cloud service instead of investing in new IT hardware. Two of the more popular versions of cloud offerings are Software-as-a-Service (SaaS) and Infrastructure-as-a-Service (IaaS). With SaaS, the cloud service provider hosts your enterprise applications and associated data on its servers and storage systems. Users gain access to SaaS applications using a Web browser. And your company would typically pay a fee per user per month. With IaaS, the provider offers virtual machines, physical servers, storage, switching, and connectivity resources to run your enterprise applications on a pay-as-you-go basis. You are responsible for installing and maintaining the operating system and application or virtual machine; the provider is responsible for managing the infrastructure hardware that the applications or virtual machines run on.
2. Cloud Computing Services offer greater flexibility in delivering IT services
Business today is very dynamic. Cloud services let companies quickly ramp capacity up AND down to match business needs.
In contrast to legacy hosting services, which often locked companies into contracts for multiple months or years, todayâs cloud computing services are offered by the month or based on the consumption of resources. This is a perfect match for some industries, such as retail and financial services, which are subject to boom times and quiet times in their normal business cycles. Maybe you have a new application and are unsure of the speed of growth. A cloud computing service lets you expand and contract IT resources in sync with those cycles.
Need more capacity to handle late summer back to school sales or to support a web site for a trendy service? You can throttle up capacity for several months to support the peak period and then scale back when activities return to normal. Similarly, you can match capacity to demands as business units grow and contract over time. This helps align IT spending with actual needs.
3. Cloud computing gives you the ability to refresh an aging infrastructure without incurring CAPEX costs.Â
This is critical especially for companies that are trying to accommodate new technologies. For instance, many companies today are virtualizing their mission-critical applications. To do so, they need the virtual machines associated with those applications to run on powerful and resilient servers. Cloud computing gives companies a way to do this without having to buy new servers.
4. Cloud is an economical way to support more users and new IT services.Â
Many data centers are running out of space. This is forcing some companies to build new data centers or pay a fortune to expand their existing centers. Here again, cloud computing allows companies to move their applications to a providerâs infrastructure and save the cost of a data center expansion.
5. Cloud frees up staff for other projects.Â
IT staff members spend most of their time keeping the proverbial âlights on.â A good portion of an IT staffâs time is dedicated to managing, maintaining, and troubleshooting equipment. Cloud computing providers often offer infrastructure as well as management services, allowing companies to offload those tasks to the provider, thus freeing up IT staff to work on other projects that are more critical to the success of a business.
As you can see, cloud computing can be many things to different companies. The great thing about cloud computing is that the services can help companies be more responsive to market conditions, all while reining in IT costs. This post was originally published on the SunGard Availability Services Blog.
Janel Ryan was the Director of Product Marketing for Cloud and Managed Services at SunGard Availability Services.
New Post has been published on ITESSAYS
New Post has been published on http://itessays.com/other/cloud-computing-a-simple-introduction.html
Cloud computing - A simple introduction
by Chris Woodford. Last updated: May 13, 2014.
History has a funny way of repeating itself, or so they say. But it may come as some surprise to find this old clichĂŠ applies just as much to the history of computers as to wars, revolutions, and kings and queens. For the last three decades, one trend in computing has been loud and clear: big, centralized, mainframe systems have been "out"; personalized, power-to-the-people, do-it-yourself PCs have been "in." Before personal computers took off in the early 1980s, if your company needed sales or payroll figures calculating in a hurry, you'd most likely have bought in "data-processing" services from another company, with its own expensive computer systems, that specialized in number crunching; these days, you can do the job just as easily on your desktop with off-the-shelf software. Or can you? In a striking throwback to the 1970s, many companies are finding, once again, that buying in computer services makes more business sense than do-it-yourself. This new trend is called cloud computing and, not surprisingly, it's linked to the Internet's inexorable rise. What is cloud computing? How does it work? Let's take a closer look!
Photo: Cloud computing: the hardware, software, and applications you're using may be anywhere up in the "cloud." As long as it all does what you want, you don't need to worry where it is or how it works. Composite photo by Explainthatstuff.com based on a picture of an IBM Blue Gene/P supercomputer, by courtesy of Argonne National Laboratory, published under a Creative Commons Licence, and clouds photographed somewhere over Dorset, England, in 2011.
What is cloud computing?
Cloud computing means that instead of all the computer hardware and software you're using sitting on your desktop, or somewhere inside your company's network, it's provided for you as a service by another company and accessed over the Internet, usually in a completely seamless way. Exactly where the hardware and software is located and how it all works doesn't matter to you, the userâit's just somewhere up in the nebulous "cloud" that the Internet represents.
Cloud computing is a buzzword that means different things to different people. For some, it's just another way of describing IT (information technology) "outsourcing"; others use it to mean any computing service provided over the Internet or a similar network; and some define it as any bought-in computer service you use that sits outside your firewall. However we define cloud computing, there's no doubt it makes most sense when we stop talking about abstract definitions and look at some simple, real examplesâso let's do just that.
Simple examples of cloud computing
Most of us use cloud computing all day long without realizing it. When you sit at your PC and type a query into Google, the computer on your desk isn't playing much part in finding the answers you need: it's no more than a messenger. The words you type are swiftly shuttled over the Net to one of Google's hundreds of thousands of clustered PCs, which dig out your results and send them promptly back to you. When you do a Google search, the real work in finding your answers might be done by a computer sitting in California, Dublin, Tokyo, or Beijing; you don't knowâand most likely you don't care!
The same applies to Web-based email. Once upon a time, email was something you could only send and receive using a program running on your PC (sometimes called a mail client). But then Web-based services such as Hotmail came along and carried email off into the cloud. Now we're all used to the idea that emails can be stored and processed through a server in some remote part of the world, easily accessible from a Web browser, wherever we happen to be. Pushing email off into the cloud makes it supremely convenient for busy people, constantly on the move.
Preparing documents over the Net is a newer example of cloud computing. Simply log on to a web-based service such as Google Documents and you can create a document, spreadsheet, presentation, or whatever you like using Web-based software. Instead of typing your words into a program like Microsoft Word or OpenOffice, running on your computer, you're using similar software running on a PC at one of Google's world-wide data centers. Like an email drafted on Hotmail, the document you produce is stored remotely, on a Web server, so you can access it from any Internet-connected computer, anywhere in the world, any time you like. Do you know where it's stored? No! Do you care where it's stored? Again, no! Using a Web-based service like this means you're "contracting out" or "outsourcing" some of your computing needs to a company such as Google: they pay the cost of developing the software and keeping it up-to-date and they earn back the money to do this through advertising and other paid-for services.
What makes cloud computing different?
It's managed
Most importantly, the service you use is provided by someone else and managed on your behalf. If you're using Google Documents, you don't have to worry about buying umpteen licenses for word-processing software or keeping them up-to-date. Nor do you have to worry about viruses that might affect your computer or about backing up the files you create. Google does all that for you. One basic principle of cloud computing is that you no longer need to worry how the service you're buying is provided: with Web-based services, you simply concentrate on whatever your job is and leave the problem of providing dependable computing to someone else.
It's "on-demand"
Cloud services are available on-demand and often bought on a "pay-as-you go" or subscription basis. So you typically buy cloud computing the same way you'd buy electricity, telephone services, or Internet access from a utility company. Sometimes cloud computing is free or paid-for in other ways (Hotmail is subsidized by advertising, for example). Just like electricity, you can buy as much or as little of a cloud computing service as you need from one day to the next. That's great if your needs vary unpredictably: it means you don't have to buy your own gigantic computer system and risk have it sitting there doing nothing.
It's public or private
Now we all have PCs on our desks, we're used to having complete control over our computer systemsâand complete responsibility for them as well. Cloud computing changes all that. It comes in two basic flavors, public and private, which are the cloud equivalents of the Internet and Intranets. Web-based email and free services like the ones Google provides are the most familiar examples of public clouds. The world's biggest online retailer, Amazon, became the world's largest provider of public cloud computing in early 2006. When it found it was using only a fraction of its huge, global, computing power, it started renting out its spare capacity over the Net through a new entity called Amazon Web Services. Private cloud computing works in much the same way but you access the resources you use through secure network connections, much like an Intranet. Companies such as Amazon also let you use their publicly accessible cloud to make your own secure private cloud, known as a Virtual Private Cloud (VPC), using virtual private network (VPN) connections.
Types of cloud computing
IT people talk about three different kinds of cloud computing, where different services are being provided for you. Note that there's a certain amount of vagueness about how these things are defined and some overlap between them.
Infrastructure as a Service (IaaS)
means you're buying access to raw computing hardware over the Net, such as servers or storage. Since you buy what you need and pay-as-you-go, this is often referred to as utility computing. Ordinary web hosting is a simple example of IaaS: you pay a monthly subscription or a per-megabyte/gigabyte fee to have a hosting company serve up files for your website from their servers.
Software as a Service (SaaS)
means you use a complete application running on someone else's system. Web-based email and Google Documents are perhaps the best-known examples. Zoho is another well-known SaaS provider offering a variety of office applications online.
Platform as a Service (PaaS)
means you develop applications using Web-based tools so they run on systems software and hardware provided by another company. So, for example, you might develop your own ecommerce website but have the whole thing, including the shopping cart, checkout, and payment mechanism running on a merchant's server. Force.com (from salesforce.com) and the Google App Engine are examples of PaaS.
Advantages and disadvantages of cloud computing
What's good and bad about cloud computing?
Advantages
The pros of cloud computing are obvious and compelling. If your business is selling books or repairing shoes, why get involved in the nitty gritty of buying and maintaining a complex computer system? If you run an insurance office, do you really want your sales agents wasting time running anti-virus software, upgrading word-processors, or worrying about hard-drive crashes? Do you really want them cluttering your expensive computers with their personal emails, illegally shared MP3 files, and naughty YouTube videosâwhen you could leave that responsibility to someone else? Cloud computing allows you to buy in only the services you want, when you want them, cutting the upfront capital costs of computers and peripherals. You avoid equipment going out of date and other familiar IT problems like ensuring system security and reliability. You can add extra services (or take them away) at a moment's notice as your business needs change. It's really quick and easy to add new applications or services to your business without waiting weeks or months for the new computer (and its software) to arrive.
Drawbacks
Instant convenience comes at a price. Instead of purchasing computers and software, cloud computing means you buy services, so one-off, upfront capital costs become ongoing operating costs instead. That might work out much more expensive in the long-term.
If you're using software as a service (for example, writing a report using an online word processor or sending emails through webmail), you need a reliable, high-speed, broadband Internet connection functioning the whole time you're working. That's something we take for granted in countries such as the United States, but it's much more of an issue in developing countries or rural areas where broadband is unavailable.
If you're buying in services, you can buy only what people are providing, so you may be restricted to off-the-peg solutions rather than ones that precisely meet your needs. Not only that, but you're completely at the mercy of your suppliers if they suddenly decide to stop supporting a product you've come to depend on. (Google, for example, upset many users when it announced in September 2012 that its cloud-based Google Docs would drop support for old but de facto standard Microsoft Office file formats such as .DOC, .XLS, and .PPT, giving a mere one week's notice of the changeâalthough, after public pressure, it later extended the deadline by three months.) Critics charge that cloud-computing is a return to the bad-old days of mainframes and proprietary systems, where businesses are locked into unsuitable, long-term arrangements with big, inflexible companies. Instead of using "generative" systems (ones that can be added to and extended in exciting ways the developers never envisaged), you're effectively using "dumb terminals" whose uses are severely limited by the supplier. Good for convenience and security, perhaps, but what will you lose in flexibility? And is such a restrained approach good for the future of the Internet as a whole? (To see why it may not be, take a look at Jonathan Zittrain's eloquent book The Future of the InternetâAnd How to Stop It.)
Think of cloud computing as renting a fully serviced flat instead of buying a home of your own. Clearly there are advantages in terms of convenience, but there are huge restrictions on how you can live and what you can alter. Will it automatically work out better and cheaper for you in the long term?
Photos: Cloud computing: forward to the future⌠or back to the past? In the 1970s, the Apple ][ became the world's first, bestselling small business computer thanks to a killer-application called VisiCalc, the first widely available computer spreadsheet. It revolutionized business computing, giving middle managers the power to crunch business data on their desktops, all by themselves, without relying on slow, centralized computer departments or bought-in data processing. Critics are concerned that cloud computing could be disempoweringâa throwback to the 1970s world of centralized, proprietary computing.
What is cloud hosting?
We've just had a quick and simple introduction to cloud computingâand if that's all you need, you can stop reading now. This section gives you a bit more detail about two very specific forms of cloud computing you might want to investigate if you run a website: cloud servers and cloud-based content delivery networks (CDNs). What are they, how do they work, and what benefits do they bring?
Cloud servers
Traditionally, web hosting came in two flavors: high-cost managed hosting, in which you have your own private server (an actual computer!) dedicated to running only your website and its applications, and low-cost shared hosting, where your site and apps run on a large server with a number of other sites run by other people. Now there's a third option, widely marketed as cloud hosting in which your site runs on a virtual server somewhere up in the cloud; depending on how it's set up, a cloud server might be an actual computer, but it's just as likely to be a chunk of a much bigger machineâas with other kinds of cloud computing, the point is that it shouldn't matter either way to you as an end user. Rackspace's Cloud Servers, Liquid Web's Storm on Demand, and Amazon's Elastic Compute Cloud (EC2) are three examples of this kind of cloud hostingâand there are many more.
An example cloud server
So what's a cloud server like in practice? It's relatively easy to sign up to cloud services and see for yourself. With Storm on Demand, one of the cloud services I've used, you simply create a billing account and then tick the kind of server you want from a list of common examples (running from 1GB memory and 1CPU up to 96GB memory and 32 CPUs). Then you tick the "server image" (essentially the software you want on the server at startup, including the operating system) and specify whether you want a managed server (where the Storm guys sort out operating system patches and so on) or a self-managed server (where you do these things yourself). Finally, you specify whether you want backups of your data and how you'll pay for bandwidth (either in large, specified blocks of GB or per GB used). When that's all done, you click to create the server and it's all "built" for you, on the fly, in a matter of minutes.
Once the server's created, you can configure it in the usual way (just like a physical server) with software like WHM and cPanelâor however you wish. If you decide you no longer want your server you can destroy it just as easily, and you simply pay for what you've used (an hourly rate for the server and a per GB rate for the bandwidth). It's extremely easy to use. Even with only previous experience of shared hosting and no experience at all of setting up standalone servers, I had this website up and running on a Storm cloud server in a couple of hours.
The brilliant thing about a cloud server like Storm on Demand is that you can scale it up or down at any time simply by revisiting the control panel and changing what you need to. Suddenly find you need more CPUs or more memory? No problem! Just tick the boxes and your server is automatically reconfigured and working at its new spec in a few minutes. That makes cloud servers a great choice for people who need supreme flexibility or whose computing needs are steadily changing. For example, if you're a fashion store, and you have a time of peak demand coming upâan end-of-season sale, perhapsâyou could double or triple the power of your machine for a week or two before scaling back down again when traffic returns to normal. You can increase the power of your server at the click of a mouse but, because you're billed on a pay-as-you-go basis, you'll only pay for the more powerful "machine" for the period when you actually use it. Compare that to dedicated hosting: to get the same results, you'd need to anticipate every increase in server power you might need, invest in a more powerful machine in advance, allow time to get it set up and tested, and keep that powerful new machine running (at considerably greater cost) even if your traffic returns to lower levels again in future.
What are the drawbacks? If you run a small-scale website that has very steady or totally predictable traffic, you might find a cloud server is too expensive and demanding. If you don't need the flexibility, you're not worried about sharing a server with other people's websites, and you don't want to waste time monitoring the performance of your server, shared hosting will probably be a better solution for you than cloud hosting. The important thing to remember is that "cloud server" is essentially a marketing term and not a technical description or explanation; well-managed, traditional shared hosting can give you many of the benefits of cloud hosting, though without the flexibility or independence.
Photos: Liquid Web's Storm on Demand allows you to set up a cloud server in a matter of minutes, simply by ticking a few boxes. Every aspect of the service is pay-as-you-go. It's easy to use even if you have little or no experience of setting up or managing dedicated servers.
Cloud servers or virtual servers?
How do cloud servers work? Hosting products described as "cloud servers" are generally virtual slices of large, physical servers running what's called virtualization software (the most common types being VMwareÂŽ and XenÂŽ hypervisor for Linux and MicrosoftÂŽ Hyper-V⢠for Windows). In other words, they are effectively "virtual servers" (entirely independent virtual machines) running on a real, physical server. How is that different from shared hosting? The virtual servers are essentially independent of one another (though they do use the same processors and memory), so you're not at risk from other people's applications or websites. You have full root access to your virtual server (unlike on shared hosting, where different users' files are simply subdirectories of a single server running a single operating system) and your own unique IP address (so, unlike with shared hosting, there is no risk to your site if other people host "dodgy" websites on the same machine), and you can reboot or reimage, as you wishâyou can even run entirely different operating systems on the same physical server. From the viewpoint of the hosting company, the main benefit of using virtualization is reducing the number of physical servers they have to buy and manage: it's a much more efficient use of resources. However, that doesn't necessarily translate into the cost savings you might expect because support costs may be higher and you may still need multiple software licenses for each virtual server.
Cloud-based content delivery networks (CDNs)
Your website can benefit hugely from cloud computing even if you don't want to migrate it to a cloud server. Information-rich sites like this one, with a lot of static content, typically use over 90 percent of their bandwidth serving up images (and other media) and CSS files that probably don't change from one month to the next. With traffic split equally between Europe, America, and Asia, there's no easy way to decide where to locate your main server: wherever you choose, some users will benefit and others will lose out. But putting the static content on a content delivery network (CDN), dispersed across the cloud, will benefit everyone. Simply speaking, a CDN makes multiple copies of your static files and stores them at many different places around the world (called edge locations) so that different users in different continents receive whichever files are nearest (and therefore quickest to download).
How do you set up a CDN in practice?
Suppose you want to speed up your website by moving all your images on to a CDN. You can sign up for a pay-as-go CDN in a matter of minutes (Amazon's Cloudfront and Rackspace Cloud Files are two popular, instant options, but there are plenty of others). Once you've sorted out the billing, you simply upload your files (in a similar way to using FTP) and you'll be allocated a web address (such as abcdefg123456789.cloudservice.whatever) that you can use to link to them. You can either use this address explicitly (referring to it directly in your IMG tags) or (more sensibly) refer to it through a CNAME (effectively a DNS alias) based on your own domain name. When people download your web pages, the images are no longer pulled from your main server but from one of the edge locations around the worldâideally one that's geographically close to where they happen to be.
How does it work behind the scenes? It's easy to see if you do a DNS lookup for whatever domain name you're using for your CDN. Instead of a single IP address, you'll find the name resolves to different IP addresses in different parts of the world. In other words, the files resolve to a different IP address depending on where the end user happens to be. So for a person on the West Coast of the United States, abcdefg123456789.cloudservice.whatever might resolve to a server in Mountain View, California, while for a user in Europe, the same domain might resolve to a server physically located in Paris, France or London, England.
Pros and cons? There is almost always a significant performance boost from moving to a CDN, but if you're paying a fixed-price for your web hosting (or server) bandwidth, using a CDN is going to work out as an extra cost. CDNs rely on your files being copied, periodically, from the central server where you upload them to the edge locations around the world where they're served to users and typically cached for anything from a few days to several weeks or more (you can generally specify the cache expiry time)âso file management and updating can sometimes be a problem. For example, suppose you set a 30-day cache on your main CSS file but suddenly want to change the way some aspect of your site is presented. You can either upload a new CSS file and wait up to 30 days for all the edge locations to reflect the change or rename your CSS file (and all the pages that reference it), then upload a completely new version of your entire website. Either way, you lose a certain amount of flexibility in file management and it's important to remember that different users in different locations may see different versions of the same file for a period of time. That's why CDNs work best for static (rarely changing) content.
Worth a go?
One of the best things about cloud services is that they're generally pay-as-you-goâso it's very easy to try them out, at relatively little cost, and see what difference they make.
Is cloud computing really better for the environment?
In theory, cloud computing is environmentally friendly because it uses fewer resources (servers, cooling systems, and all the rest) and less energy if 10 people share an efficiently run, centralized, cloud-based system than if each of them run their own inefficient local system. One hosting provider in the UK told me that his company has embraced cloud systems because it means they can handle more customers on far fewer physical servers, with big savings in equipment, maintenance, and energy costs. In theory, cloud computing should be a big win for the environment; in practice, it's not quite so simple.
Ironically, given the way we've defined cloud computing, it matters where your cloud servers are located and how they're powered. If they're in data centers powered by coal, instead of cleaner fuels such as natural gas or (better still) renewable energy, the overall environmental impact could be worse than your current setup. There's been a lot of debate about the energy use of huge data centers, partly thanks to Greenpeace highlighting the issue. In its 2011 report How Dirty is Your Data Center: A Look at the Energy Choices that Power Cloud Computing, Greenpeace ranked cloud computing providers like Akamai and Amazon on eco-friendliness, alongside companies like Facebook, Google, and Twitter whose services are underpinned by a massive global network of data centers. In the United States in particular, quite a few cloud (and web hosting) providers explicitly state whether their servers are powered by conventional or green energy, and it's relatively easy to find carbon-neutral service providers if that's an important factor for your business and its CSR (corporate social responsibility) objectives.
When it comes to overall impact on the planet, there's another issue to consider. If cloud services simply move things you would do in your own office or home to the cloud, that's one thing; the environmental impact merely transfers elsewhere. But a lot of cloud- and Internet-based services are encouraging us to use more computers and gadgets like iPads and iPhones for longer, spending more time online, and doing more things that we didn't previously do at all. In that sense, cloud computing is helping to increase global energy use and greenhouse gas emissions âso describing it as environmentally friendly is highly misleading. That's evident from a 2012 study by DatacenterDynamics (DCD) Intelligence, the British Computer Society, and partners (reported in Computer Weekly), which showed that global energy use from data centers grew from 12 gigawatts (GW) in 2007 to 24GW in 2011 and predicted it would reach 43GW some time in 2013; for the global environment, this bottomline trend is the one that really matters. It's no good congratulating yourself on switching to diet Cola if you're drinking four times more of it than you used to.
From Google searches to Facebook updates and super-convenient Hotmail, most of us value the benefits of cloud computing very highly, so the energy consumption of data centers is bound to increaseâand ensuring those big, power-hungry servers are fueled by green energy will become increasingly important in the years to come.
Chart: Growth in energy use in data centers from 2007 to 2013. Drawn by us using data from the 2012 study by DatacenterDynamics (DCD) Intelligence published in Computer Weekly, October 8, 2012.
New Post has been published on ITESSAYS
New Post has been published on http://itessays.com/other/thinking-in-c.html
thinking in c++
thinking in javaâŚ

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch ⢠No registration required ⢠HD streaming
New Post has been published on ITESSAYS
New Post has been published on http://itessays.com/hadoop/real-time-data-processinghadoop-with-apache-storm.html
Real-time data processing,Hadoop with Apache Storm
In this tutorial we will walk through the process of
Reviewing the pre-installed Apache Storm infrastructure
Run a sample use case end to end
What is Apache Storm?
Apache Storm is an open source engine which can process data in realtime using its distributed architecture. Storm is simple and flexible. It can be used with any programming language of your choice.
Letâs look at the various components of a Storm Cluster:
Nimbus node. The master node (Similar to JobTracker)
Supervisor nodes. Starts/stops workers & communicates with Nimbus through Zookeeper
ZooKeeper nodes. Coordinates the Storm cluster
Here are a few terminologies and concepts you should get familiar with before we go hands-on:
Tuples. An ordered list of elements. For example, a â4-tupleâ might be (7, 1, 3, 7)
Streams. An unbounded sequence of tuples.
Spouts. Sources of streams in a computation (e.g. a Twitter API)
Bolts. Process input streams and produce output streams. They can:
Run functions;
Filter, aggregate, or join data;
Talk to databases.
Topologies. The overall calculation, represented visually as a network of spouts and bolts
Prerequisites:
A working HDP cluster â the easiest way to get a HDP cluster is to download the HDP Sandbox
Installation and Setup Verification:
Step 1:
Letâs check if the sandbox has storm processes up and running by login into Ambari and look for Storm in the services listed:
Storm in the services listed of Ambari
Step 2 :
Now letâs look at a Streaming use case using Stormâs Spouts and Bolts processes. For this we will be using a simple use case, however it should give you the real life experience of running and operating on Hadoop Streaming data using this topology.
Letâs get the jar file which is available in the Storm Starter kit. This has other examples as well, but letâs use the WordCount operation and see how to turn it ON. We will also track this in Storm UI.
wget http://public-repo-1.hortonworks.com/HDP-LABS/Projects/Storm/0.9.0.1/storm-starter-0.0.1-storm-0.9.0.1.jar
Storm Starter kit jar
Step 3 :
In the Storm example Topology, we will be using three main parts or processes:
Sentence Generator Spout
Sentence Split Bolt
WordCount Bolt
You can check the classes available in the jar as follows:
jar -xvf storm-starter-0.0.1-storm-0.9.0.1.jar | grep Sentence jar -xvf storm-starter-0.0.1-storm-0.9.0.1.jar | grep Split jar -xvf storm-starter-0.0.1-storm-0.9.0.1.jar | grep WordCount
Storm example, check jar
Step 4 :
Letâs run the storm job. It has a Spout job to generate random sentences. There is a split Bolt Process along with the Wordcount Bolt Class.
Letâs run the Storm Jar file.
/usr/lib/storm/bin/storm jar storm-starter-0.0.1-storm-0.9.0.1.jar storm.starter.WordCountTopology WordCount -c storm.starter.WordCountTopology WordCount -c nimbus.host=sandbox.hortonworks.com
run the storm job
Step 5 :
Storm UI and graphically
Letâs use Storm UI and look at it graphically:
You should notice the Storm Topology, WordCount in the Topology summary.
Step 6 :
Storm UI and graphically
Please click on the WordCount Topology. You will see the following:
Step 7 :
In this page, please click on count in the Bolt Section.
Storm UI and graphically
Step 8 :
Now if click on any port in the executor section and you will be able to view the results.
Step 9 :
Lastly but most importantly, you can always look at the log files in the following folder. These logs are extremely useful for debugging or status finding.
You just processed streaming data using Apache Storm
New Post has been published on ITESSAYS
New Post has been published on http://itessays.com/hadoop/hadoop-sparks-big-data-analysis-evolution.html
Hadoop & sparks, big data analysis evolution
If 2014 was the year that Apache Hadoop sparked the big data revolution, 2015 may be the year that Apache Spark supplants Hadoop with its superior capabilities for richer and more timely analysis.
âThere is a strong industry consensus that Spark is the way to go,â said Curt Monash, head of the IT analyst firm Monash Research.
âNext year, you will see a lot of [Hadoop] use cases that transcend Hadoop,â said Ali Ghodsi, CEO and co-founder of Databricks, a company formed by a number of the creators of Spark that offers a hosted Spark service, as well as technical support for software distributors selling Spark packages.
Spark is an engine for analyzing data stored across a cluster of computers. Like Hadoop, Spark can be used to examine data sets that are too large to fit into a traditional data warehouse or a relational database. Also like Hadoop, Spark can work on unstructured data, such as event logs, that hasnât been formatted into database tables.
Spark, however, goes beyond what Hadoop can easily do, in that it can analyze streaming data as it is coming off the wire.
As such, it can serve as a faster replacement to the Hadoop MapReduce framework for data analysis. In the annual Daytona Gray Sort Challenge, which benchmarks the speed of data analysis systems, Spark easily trumped Hadoop MapReduce, and was able to sort through 100 terabytes of records within 23 minutes; It took Hadoop over three times as long to execute the same task, about 72 minutes.
Initially, real-time processing may not seem like a big distinction, however, such capabilities have been used to create entirely new lines of businesses.
âWeâve built our intellectual property around Spark,â explained ClearStory Data CEO and co-founder Sharmila Shahani-Mulligan. ClearStory Data offers a new business intelligence service that allows teams to assemble a series of data visualizations into a narrative, as if they were a PowerPoint presentation. The data can come from many sources and can be updated as new data comes in.
âPeople want fast response times. They donât want to wait a day for an answer,â Ghodsi said. For instance, Spark could be used to help digital advertisers decide what ad to serve to users based on their last few clicks, rather than on what sites they clicked on a few days or weeks prior. Sparkâs data processing speed is important, because while the amount of data we collect is growing rapidly, the advancement of computer processing power is tapering off.
Spark also offers a richer palate of ways to analyze data, Monash said. Hadoopâs default analysis engine, MapReduce, is chiefly capable of executing one kind of problem, involving the filtering and sorting of data across different servers (the âmapâ portion of the job) and the summarizing of the results (the âreduceâ side of the problem).
In contrast, Spark was designed to tackle more complex queries involving techniques of machine learning and predictive modeling, among others. âThings that Hadoop MapReduce was pretty good at, Spark is potentially better at,â Monash said.
Another early adopter of Spark has been music streaming service Spotify, which uses the technology to generate playlists of music based on the userâs specific tastes based on a set of machine learning algorithms.
Even Hadoop users are getting the message. Hadoop distributor Cloudera, which also includes Spark in its releases, has about 60 enterprise customers using Spark in some form or another, according to Monash. Other Hadoop distributors, notably Hortonworks and MapR, also offer Spark in their distributions.
The Spark project was started in 2008 at the University of California, Berkeleyâs AMPLab(the AMP stands for Algorithms, Machine and People). Now under the guidance of the Apache Software Foundation, the project gets more contributions than any other Apache software project. Core contributors include engineers and developers from companies such as Intel, Yahoo, Groupon, Alibaba and Mint.
Spark can be used in conjunction with Hadoop, to analyze data on the Hadoop File System (HDFS), or it can be run on its own. Developers build applications off of Spark using either Python, Java or the Scala programming languages.
âPart of the attraction of Spark is that it has a pretty nice API [application programming Interface] that makes it accessible to use for developers and engineers,â said Reynold Xin, a Databricks co-founder.
We will see many more products and services based on Spark next year, predicted Databricksâ Ghodsi. Programmers are often are asked about their Spark chops.
âWeâve had multiple [job] candidates out there say that they have seen multiple exciting Spark projects,â Ghodsi said.
New Post has been published on ITESSAYS
New Post has been published on http://itessays.com/other-lanuage-development-technology/c-lambda-expressions-referred-lb.html
C++ Lambda expressions (referred LB)
C++11  support LB , for those who like to Functional Programming, is undoubtedly a good news.
If users are not familiar with LB, you can see the MSDN article, http://msdn.microsoft.com/en-us/library/dd293608.aspx , in this article, I just simple analysis the VC++ of LB usage, implementation, and performance.
1. Nameless references
For a one-time, with parameters expression, use LB can save unnecessary class definition and maintenance, simplify the design â maintenance cost.
For example, the following vector processing code, clear and concise:
vector<int> v1(10, 1); int sum = 0; for_each (v1.begin(), v1.end(), [&](int i) sum += i; )ďź//Line1
Otherwise, we must define a function class, put such a simple thing complicated. With the LB, we define the function class, transferred to compile. In VC++, LB compiled achieve is to produce a stealth class:
class _lambda_a01 int &capture1_; public: _lambda_a01(int &x): capture1_(x) //Line2 operator void (int i) capture1_ += I; ;
When references (Line1), it becomes:
_lambda_a01 lbd1ďźsumďźďź forďźauto aďźv1ďź ldb1ďźaďźďź
Readers may wonder why C ++ not directly convert LB to inline expression, but to generate a stealth work? This is because the LB can do as a âtypeâ variable to use, which makes the LB and other classes have equal status. For example:
vector<int> v1(10, 1); int sum = 0; for_each (v1.begin(), v1.end(), [&](int i) sum += i; )ďź//Line1 vector<int> v2(10, 1); int sum2 = 0; for_each (v1.begin(), v1.end(), [&](int i) sum2 += i; )ďź//Line2
 2.
New Post has been published on ITESSAYS
New Post has been published on http://itessays.com/mobile-development-technology/real-time-fluid-dynamics-in-swift-for-ios.html
Real Time Fluid Dynamics in Swift for iOS
Looking at the amazing success Joseph Lord has had speeding up CPU based cellular automata, I thought it would be an interesting project to port some old ActionScript 3 fluid dynamics code to Swift. The original AS3 port was by Oaxoa and based on Jos Stamâs Real-Time Fluid Dynamics for Games. Iâve used it many times in AS3 projects over the years but have never really tweaked it.
My iteration is almost a direct copy of the original AS3 code, but Iâve spent some time optimising it a little further.
The CFD solver uses a handful of arrays for horizontal and vertical direction (u and v) and density (d). In some cases, the original code would invoke the same function, for example diffuse() and advect(), consecutively targeting the u and v arrays separately. So, at the expense of code reuse, I created near duplicate copies of those functions that target u and v simultaneously.
The original code made extensive use of a small function to get the index of a one dimensional array based on x and yparameters. Iâve essentially inlined a lot of uses of this and kept an eye on duplicate calculations â creating constants for re-used values.
As with my other recent Swift projects, both the solving and the rendering are done in separate threads. Iâm using Tobias Due MunkâsAsync library which abstract Grand Central Dispatch to handle threads and code based on Josephâs bitmap data generation code for rendering.
The user interface is pretty basic â thereâs a single UIImageView to hold the rendered fluid densities and a reset button to fire off the start âexplosionâ.
Inside the ViewController, Iâve overridden the touchesMoved() method. This allows me to pick up any touch events on the UIImageView like so:
override func touchesMoved(touches: NSSet!, withEvent event: UIEvent!) let touch = event.allTouches().anyObject().locationInView(uiImageView); let touchX = Int(touch.x / 3); let touchY = Int(touch.y / 3); [...]
 Iâm not entirely sure why I need to multiply the values by 3 â I suspect itâs related to the rumoured resolution of the new Apple iOS devices â but touchX and touchY are set to the coordinates in the CFD arrays so I can easily bump up the density where the user has touched.
I also keep a note of the previous touch coordinates so that I can use the delta to update the u and v arrays to make touch events change the direction of the fluid flow. Because the previous touch positions are optional, Iâve made use of optional binding inside the overridden touchesMoved():
[...] if let ptx = previousTouchX if let pty = previousTouchY u[targetIndex] = u[targetIndex] + Double((touchX - ptx) / 2) v[targetIndex] = v[targetIndex] + Double((touchY - pty) / 2) [...]
âŚand once the touch gesture has finished, I can null the previous values:
override func touchesEnded(touches: NSSet!, withEvent event: UIEvent!) previousTouchX = nil; previousTouchY = nil;
Thereâs a bit of a mixture between using and not using semi-colons. My job is ActionScript coding during the day and adding them is second nature, so please forgive the inconsistency.
The code is written in XCode 6 Beta 6 and in the iOS simulator on my iMac, each step takes around 0.04 of a second for a 200 x 200 grid. There is more optimisation to come, but if you have a chance to run it on a recent A7 based iPad, Iâd love to hear the results.
All the source code is available here at my GitHub repository.
New Post has been published on ITESSAYS
New Post has been published on http://itessays.com/other/using-tcmalloc-optimize-nginx-performance.html
Using TCMalloc optimize Nginx performance
library Malloc, TCMalloc library on memory allocation efficiency and speed is much higher, largely improves server performance under high concurrency, thereby reducing the load on the system.
tcmalloc-opspersec.vs.size.20.threads
1. install libunwind
download libunwind: http://download.savannah.gnu.org/releases/libunwind/
install step:
tar âzxvf libunwind-0.99.tar.gz cd libunwind-0.99 CFLAGS=-fPIC ./configure make CFLAGS=-fPIC make CFLAGS=-fPIC install echo "/usr/local/lib" >/etc/ld.so.conf.d/usr_local_lib.conf /sbin/ldconfig
 2. install google-preftools
download link:Â http://download.chinaunix.net/download.php?id=32582&ResourceID=12865
chmod 700 google-perftools-1.9.tar.gz tar -zxvf google-perftools-1.9.tar.gz cd google-perftools-1.9 ./configure make && make install echo "/usr/local/lib" >/etc/ld.so.conf.d/usr_local_lib.conf /sbin/ldconfig
 3. Recompile Nginx
cd nginx-1.5.8 ./configure --with-google_perftools_module --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module make && make install
 4. Add thread for google-perftools
mkdir âp /tmp/tcmalloc chmod 0777 /tmp/tcmalloc
 5. Modify Nginx main configuration file
vim /usr/local/nginx/conf/nginx.conf: #pid logs/nginx.pid; google_perftools_profiles /tmp/tcmalloc;
 6.  Verify google-perftools normal load, the command View:
lsof ân |grep tcmalloc [root@localhost conf]# lsof -n |greptcmalloc nginx 15017 www 10w REG 253,0 0 801420 /tmp/tcmalloc.15017 nginx 15018 www 12w REG 253,0 0 801417 /tmp/tcmalloc.15018 nginx 15019 www 14w REG 253,0 0 801415 /tmp/tcmalloc.15019 nginx 15020 www 16w REG 253,0 0 784898 /tmp/tcmalloc.15020 nginx 15021 www 18w REG 253,0 0 801274 /tmp/tcmalloc.15021 nginx 15022 www 20w REG 253,0 0 801414 /tmp/tcmalloc.15022 nginx 15023 www 22w REG 253,0 0 801418 /tmp/tcmalloc.15023 nginx 15024 www 24w REG 253,0 0 801419 /tmp/tcmalloc.15024
Set worker_processes value of 8 for Nginx main configuration file Nginx.conf, so opened eight Nginx threads, each thread has a row. Each thread file behind the numeric value is the pid of the Nginx.
Use TCMalloc optimization Nginx can improve server performance under high concurrency, reduce system load, so that the server stable and efficient operation.
    .CPlase_panel display:none;

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch ⢠No registration required ⢠HD streaming
New Post has been published on ITESSAYS
New Post has been published on http://itessays.com/linux-technology/scp-without-entering-a-password.html
SCP without entering a password
1.
Here are the steps to establish a secure trust relationship between the root of the client machine and root of the Server machine.
[root@Client root]# ssh-keygen -b 1024 -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): <-- Enter Enter same passphrase again: <-- Enter Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: 49:9c:8a:8f:bc:19:5e:8c:c0:10:d3:15:60:a3:32:1croot@Client [root@Client root]#
Note: When the program prompts, direct input Enter passphrase, means no certificate password.
The above command will generate a private key id_rsa and a public key id_rsa.pub, stored in the userâs home .ssh directory in a subdirectory.
 2.
Copy id_rsa.pub public key certificate to server machine of rootâs home .ssh directory of  subdirectory, and rename the file to authorized_keys.
[root@Client root]# scp -p .ssh/id_rsa.pub [email protected]:/root/.ssh/authorized_keys [email protected]'s password: <-- enter Server root password id_rsa.pub 100% |**************************| 218 00:00 [root@Client root]#
When executing the command, the security trust  has not been established  between the two machines, so the user needs to enter the root password for the server machine .
After the above two steps, on the establishment of security trust between  Clientâs root macine and Serverâs root machine.Here we look at the results:
[root@Client root]# scp -p [email protected]:/root text 100% |**************************| 19 00:00 ##########################################################################
Note:
If the public key of A to a B, then you can not enter a password SCP on A, and transmission data of B; But the SCP on B, still requires a password, if the parties do not need to enter a password, you can also make a public key of B to A;
If you want B, C SCP without entering a password, the transmission data of A;Â Should the B, C give the public key of A;
Steps:
Copy two machines id_rsa.pub files to the /root/.ssh/authorized_keys of A
Use scp -p .ssh/id_rsa.pub@[email protected]:/root/.ssh/authorized_keys, the first use remote copy, and then another manually copy.
The end:) .CPlase_panel display:none;
New Post has been published on ITESSAYS
New Post has been published on http://itessays.com/java-development-technology/generate-a-two-dimensional-code-which-can-change-the-size-and-color.html
Generate a two-dimensional code (which can change the size and color)
I want to be an offer to publishers can generate a different size and color of the two-dimensional code function.
Generated renderings
two-dimensional_can_change_the_size_and_color
The code:
package com.gzxtjy.resources.util; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.io.OutputStream; import java.util.Hashtable; import javax.imageio.ImageIO; import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.MultiFormatWriter; import com.google.zxing.client.j2se.MatrixToImageWriter; import com.google.zxing.common.BitMatrix; /** * */ public class TwoDimensionCodeUtil /*Background color, the default black*/ private static int foreColor = 0xFF000000; /*Foreground, the default white*/ private static int backColor = 0xFFFFFFFF; public static BufferedImage toBufferedImage(BitMatrix matrix) int width = matrix.getWidth(); int height = matrix.getHeight(); BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); for (int x = 0; x < width; x++) for (int y = 0; y < height; y++) image.setRGB(x, y, matrix.get(x, y) ? foreColor : backColor); TwoDimensionCodeUtil.foreColor = 0xFF000000; TwoDimensionCodeUtil.backColor = 0xFFFFFFFF; return image; public static void writeToFile(BitMatrix matrix, String format, File file) throws IOException BufferedImage image = toBufferedImage(matrix); if (!ImageIO.write(image, format, file)) throw new IOException("Could not write an image of format " + format + " to " + file); public static void writeToStream(BitMatrix matrix, String format, OutputStream stream) throws IOException BufferedImage image = toBufferedImage(matrix); if (!ImageIO.write(image, format, stream)) throw new IOException("Could not write an image of format " + format); /** * * @param content: content * @param desPath: Target image path * @param width * @param height * @return */ @SuppressWarnings("unchecked") public static boolean stringToImage(String content, String desPath, int width, int height) try MultiFormatWriter multiFormatWriter = new MultiFormatWriter(); @SuppressWarnings("rawtypes") Hashtable hints = new Hashtable(); hints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); BitMatrix bitMatrix = multiFormatWriter.encode(content, BarcodeFormat.QR_CODE, width, height, hints); System.out.println(desPath); File file1 = new File(desPath); if(!file1.exists()) File parent=file1.getParentFile(); parent.mkdirs(); file1.createNewFile(); MatrixToImageWriter.writeToFile(bitMatrix, "gif", file1); catch (Exception e) e.printStackTrace(); return false; return false; @SuppressWarnings("unchecked") public static boolean stringToImage(String content, String desPath, int width, int height,int backColor,int foreColor) TwoDimensionCodeUtil.backColor=backColor; TwoDimensionCodeUtil.foreColor=foreColor; try MultiFormatWriter multiFormatWriter = new MultiFormatWriter(); @SuppressWarnings("rawtypes") Hashtable hints = new Hashtable(); hints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); BitMatrix bitMatrix = multiFormatWriter.encode(content, BarcodeFormat.QR_CODE, width, height, hints); System.out.println(desPath); File file1 = new File(desPath); if(!file1.exists()) File parent=file1.getParentFile(); parent.mkdirs(); file1.createNewFile(); TwoDimensionCodeUtil.writeToFile(bitMatrix, "gif", file1); catch (Exception e) e.printStackTrace(); return false; return false; public static void main(String[] args) String content = "Test"; String path = "D:/book/AABB.jpg"; String b="ff"; int a=(int) Long.parseLong("FFFF0000", 16); TwoDimensionCodeUtil.stringToImage(content, path, 500, 500, a, 0xff7d7d7d); System.out.println(a); System.out.println(0xffe1e1e1);
  .CPlase_panel display:none;
New Post has been published on ITESSAYS
New Post has been published on http://itessays.com/the-front-end-development-technology/javascript-inheritance.html
JavaScript Inheritance
A lot of my friends are C# or C++ developers. They are used to use inheritance in their projects and when they want to learn or discover JavaScript, one of the first question they ask is: âBut how can I do inheritance with JavaScript?â.
Actually, JavaScript uses a different approach than C# or C++ to create an object oriented language. It is a prototype-based language. The concept of prototyping implies that behavior can be reused by cloning existing objects that serve as prototypes. Every object in JavaScript depends from a prototype which defines a set of functions and members that the object can use. There is no class. Just objects. Every object can then be used as prototype for another object.
This concept is extremely flexible and we can use it to simulate some concepts from OOP like inheritance.
Implementing inheritance
Letâs image we want to create this hierarchy using JavaScript:
hierarchy using JavaScript
First of all, we can create ClassA easily. Because there is no explicit classes, we can define a set of behavior (A class soâŚ) by just creating a function like this:
var ClassA = function() this.name = "class A";
This âclassâ can be instantiated using the new keyword:
var a = new ClassA();
 ClassA.prototype.print = function() console.log(this.name);
And to use it using our object:
a.print();
Fairly simple, right?
The complete sample is just 8 lines long:
var ClassA = function() this.name = "class A"; ClassA.prototype.print = function() console.log(this.name); var a = new ClassA(); a.print();
Now letâs add a tool to create âinheritanceâ between classes. This tool will just have to do one single thing:Â Cloning the prototype:
var inheritsFrom = function (child, parent) child.prototype = Object.create(parent.prototype); ;
This is exactly where the magic happens! By cloning the prototype, we transfer all members and functions to the new class.
So if we want to add a second class that will be child of the first one, we just have to use this code:
var ClassB = function() this.name = "class B"; this.surname = "I'm the child"; inheritsFrom(ClassB, ClassA);
Then because ClassB inherited the print function from ClassA, the following code is working:
var b = new ClassB(); b.print();
And produces the following output:
class B
We can even override the print function for ClassB:
ClassB.prototype.print = function() ClassA.prototype.print.call(this); console.log(this.surname);
In this case, the produced output will look lie this:
class B Iâm the child
The trick here is to call ClassA.prototype to get the base print function. Then thanks to call function we can call the base function on the current object (this).
Creating ClassC is now obvious:
var ClassC = function () this.name = "class C"; this.surname = "I'm the grandchild"; inheritsFrom(ClassC, ClassB); ClassC.prototype.foo = function() // Do some funky stuff here... ClassC.prototype.print = function () ClassB.prototype.print.call(this); console.log("Sounds like this is working!"); var c = new ClassC(); c.print();
And the output is:
class C Iâm the grandchild Sounds like this is working!
PhilosophyâŚ
To conclude, I just want to clearly state that JavaScript is not C# or C++. It has its own philosophy. If you are a C++ or C# developer and you really want to embrace the full power of JavaScript, the best tip I can give you is: Do not try to replicate your language into JavaScript. There is no best or worst language. Just different philosophies!
.CPlase_panel display:none;
New Post has been published on ITESSAYS
New Post has been published on http://itessays.com/java-development-technology/jvm-memory-structure-and-quickly-peeks-into-permgen.html
JVM memory structure and quickly peeks into PermGen
This post covers some basics of JVM memory structure and quickly peeks into PermGen to find out where it has disappeared since advent of Java SE 8
Bare Basics
The JVM is just another process running on your system and the magic begins with the java command. Like any OS process, it needs memory for its run time operations. Remember â the JVM itself is a software abstraction of a hardware on top of which Java programs run and boast of OS independence and WORA (write once run anywhere)
Quick coverage of the JVM memory structure
As per the spec, JVM is divided into 5Â virtual memory segments.
Heap
Method (non heap)
JVM Stack
Native Stack
PC Registers
jvm-memory-segments
Heap
Every object allocated in your Java program requires to be stored in the memory. The heap is the area where all the instantiated objects get stored. Yes â blame the new operator for filling up your Java heap ;-)
Shared by all threads
The JVM throws java.lang.OutOfMemoryError when itâs exhausted
Use the -Xms and -Xmx JVM options to tune the Heap size
out-of-memory-error
Sub-divided into
Eden (Young) â New object or the ones with short life expectancy exist in this area and it is regulated using the -XX:NewSize and -XX:MaxNewSize parameters. GC (garbage collector) minor sweeps this space
Survivor â The objects which are still being referenced manage to survive garbage collection in the Eden space end up in this area. This is regulated via the -XX:SurvivorRatio JVM option
Old (Tenured) â This is for objects which survive long garbage collections in both the Eden and Survivor space (due to lingering references of course). A special garbage collector takes care of this space. Object de-alloaction in the tenured space is taken care of by GC major
Method Area
Also called the non heap area (in HotSpot JVM implementation)
It is divided into 2 major sub spaces
Permanent Generation â This area stores class related data from class definitions, structures, methods, field, method (data and code) and constants. Can be regulated using -XX:PermSize and -XX:MaxPermSize. IT can cause java.lang.OutOfMemoryError: PermGen space if it runs out if space
Code Cache â The cache area is used to store compiled code. The compiled code is nothing but native code (hardware specific) and is taken care of by the JIT (Just In Time) compiler which is specific to the Oracle HotSpot JVM
JVM Stack
Has a lot to do with methods in the Java classes
Stores local variables and regulates method invocation, partial result and return values
Each thread in Java has its own (private) copy of the stack and is not accessible to other threads.
Tuned using -Xss JVM option
Native Stack
Used for native methods (non Java code)
Per thread allocation
PCÂ Registers
Program counter specific to a particular thread
Contains addresses for JVM instructions which are being exceuted (undefined in case of native methods)
So, thatâs about it for the JVM memory segment basics. Coming to back to the Permanent Generation.
So where is PermGen ???
Essentially, the PermGen has been completely removed and replaced by another memory area known as the Metaspace
Metaspace â quick facts
Itâs part of the native heap memory
Can be tuned using -XX:MetaspaceSize and -XX:MaxMetaspaceSize
Clean up initiation driven by XX:MetaspaceSize option i.e. when the MetaspaceSize is reached.
java.lang.OutOfMemoryError: Metadata space will be received if the native space is exhausted
The PermGen related JVM options i.e. -XX:PermSize and -XX:MaxPermSize will be ignored if present
This was obviously just the tip of the iceberg. For comprehensive coverage of the JVM, there is no reference better than the specification itself :-)
.CPlase_panel display:none;
New Post has been published on ITESSAYS
New Post has been published on http://itessays.com/java-development-technology/java-9-features.html
Java 9 Features
A series of Java Enhancement Proposals (JEPs) has been published on OpenJDK concerning the next major update (Java 9). Previous rumors about Java 9 features havenât had very much weight, nor particularly interesting new features, but this new feature list is packed with developer favorites that the community has been requesting for many years.
These features include:
AÂ light-weight JSON APIÂ â which is a source of great speculation right now about how truly useful this feature will be (as proposed by the community process).
A HTTP 2 Client â for HTTP 2.0 and websockets.
Process API Improvements â to improve the API for controlling and managing OS processes.
Improved contended locking âfor increasing performance between threads.
Segmented Code Cache â to improved execution time for complicated benchmarks.
Smart Java Compilation (Part 2) â Makes the sjavac tool available in the default JDK.
Modular Source Code â organizes JDK source code into modules.
Iâm sure plenty of you are looking pretty happy right about now. Many people have commented about how long the Java community has been waiting for a dedicated JSON API to clean up that whole messâand performance improvements are always welcome here. The HTTP 2 client was some expected, but the updated sjavac compiler seems very interesting.
Java 9 Features
Hearing anything substantive about Java 9 this soon after Java 8 is a pretty big dealâand maybe (just maybe) JDK 9 could be on time this time, right? Well⌠I donât know about that. Certainly thatâs a lot of speculation about if Oracle will be able to meet their 2016 goal for Java 9, considering the huge delays they had with JDK 8. Sticking by the 2016 goal could mean only two years of development time, and that leaves plenty of people with very reasonable doubts.
Also, not to be tricked into satisfaction just yet, plenty of developers have expressed disappointment at whatâs been announced so far. A user named ârefugeeâ on HackerNews said, ânothing pollutes java source more than getters and setters. I canât believe this still isnât being address. Wish theyâd move in the direction Groovy has in this regard.â His comment sparked a pretty involved discussion. Of course, comparisons to Groovy and Scala arenât entirely new criticisms.
We want to know what you think about the JDK 9 announcements! Are these features something youâve been waiting for, or are very interested in exploring further? Are you somewhat underwhelmed by the slow leak of feature announcements? Do some of these proposals seem to go against improvements that you want? Comment below about how this announcement looks to you. .CPlase_panel display:none;

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch ⢠No registration required ⢠HD streaming
New Post has been published on ITESSAYS
New Post has been published on http://itessays.com/linux-technology/installation-and-use-zlib-library.html
Installation and use Zlib library
In practical applications often encounter problems to compress the data, common compression format zip and rar, but under Linux it is more of, bz2, gz, xz and so on, decompression and compression commands only under Linux there is a lot of it. Check the information, zlib it should be relatively easy to use, and it is widely used, so ready to use this one.
Download Zlib library address: http://zlib.net/zlib128.zip .Use wget to download, unzip it and then use it, then as general software like ./configure && make && make install (Note to root privileges).
cp libz.a /usr/local/lib chmod 644 /usr/local/lib/libz.a cp libz.so.1.2.8 /usr/local/lib chmod 755 /usr/local/lib/libz.so.1.2.8 cp zlib.3 /usr/local/share/man/man3 chmod 644 /usr/local/share/man/man3/zlib.3 cp zlib.pc /usr/local/lib/pkgconfig chmod 644 /usr/local/lib/pkgconfig/zlib.pc cp zlib.h zconf.h /usr/local/include chmod 644 /usr/local/include/zlib.h /usr/local/include/zconf.h
Write a simple example to test, pay attention when compiling this library to join -lz
#include <stdio.h> #include <zlib.h> int main(int argc,char **args) /* source data */ unsigned char strsrc[]=" this is source data123456789 abcdefghigklmnopqrstuvwxyznt abcdefghijklmnopqrstuvwxyzn"; // include Character unsigned char buf[1024]=0; unsigned char strdst[1024]=0; unsigned long srclen=sizeof(strsrc); unsigned long buflen=sizeof(buf); unsigned long dstlen=sizeof(strdst); int i; FILE * fp; printf("souece str"); for(i=0;i<srclen;++i) printf("%c",strsrc[i]); printf("souece str:%ldn",srclen); printf("length:%ldn",compressBound(srclen)); //Compression compress(buf,&buflen,strsrc,srclen); printf("The actual length after compression:%ldn",buflen); //Unzip uncompress(strdst,&dstlen,buf,buflen); printf("target str:"); for(i=0;i<dstlen;++i) printf("%c",strdst[i]); return 0;
 API
// Compressed into the source buffer to a destination buffer
int compress (Bytef * dest, uLongf * destLen, const Bytef * source, uLong sourceLen);
// Function as the same with compress function, one more parameter to specify the compression quality and compression relationship (0-9). To obtain a high compression ratio to spend time
int compress2 (Bytef * dest, uLongf * destLen, const Bytef * source, uLong sourceLen, int level);
// Calculate the required buffer length. Suppose you wanted to know before compression length sourcelen after you how much data compression, you can call this function calculation, this function does not get accurate results, but it can ensure that the actual output length it is certainly less than the length calculated
uLong compressBound (uLong sourceLen);
// Decompression
int uncompress (Bytef * dest, uLongf * destLen, const Bytef * source, uLong sourceLen);
Handle gz suffix compressed files.
Compressed string to test.gz
#include <stdio.h> #include <zlib.h> int main(int argc,char **args) gzFile file; char str[]="testtest"; file=gzopen("test.gz","wb"); if(NULL==file) perror("Can't open file"); gzsetparams(file,2,0); gzwrite(file,str,sizeof(str)); gzclose(file); return 0;
Unzip test.gz
#include <stdio.h> #include <zlib.h> int main(int argc,char **args) gzFile file; char str[64]=0; file=gzopen("test.gz","rb"); if(NULL==file) perror("Can't open file"); gzread(file,str,10); printf("To read characters from a file:%s.n",str); gzclose(file); return 0;
Generally, all multiple files using tar first pressed into a bag, then in gzip. This is why the downloaded software source package mostly .tar.gz format.
API to handle gz files.
//The following describes the functions, with the general file handler is similar, the effect is the same. typedef voidp gzFile; //Open a gzip file to read/write, mode and fopen ("rb" or "wb"), as the compression level can also be included, such as:"Wb9", or with a policy "f" as the filter data "wb6f", "h" is to "huffman" compression, such as:"wb1h". Giopen use for reading a file without no gzip format .gzread read data directly from no unzipped file. If the file can not be opened or not enough memory, gzopen will return NULL. gzFile gzopen(const char *path,const char *mode); //Open a gz file based on the file description gzFile gzdopen (int fd, const char *mode); //Dynamically update the compression level and compression format, successful return Z_OK, otherwise Z_STREAM_ERROR int gzsetparams (gzFile file, int level, int strategy); //Reads the given number of uncompressed bytes from the compressed file.If the input file was not in gzip format, gzread copies the given number of bytes into the buffer. int gzread (gzFile file,voidp buf, unsigned int len); //Given the length of the buf write characters to the file, successfully returns the number of characters, 0 indicates write failure int gzwrite(gzFile file, voidp buf,unsigned int len); //Here you can see all the functions related to the handling of our ordinary files, replaced the gz to f, is not to be familiar with? int gzprintf(gzFile file,const char *format, ...); int gzputs(gzFile file,const char *s); char * gzgets(gzFile file, char *buf,int len); int gzputc(gzFile file,int c); int gzgetc(gzFile file); int gzungetc(int c,gzFile file); int gzflush (gzFile file,int flush); int gzseek (gzFile file,z_off_t offset, int whence); int gzrewind(gzFile file); z_off_t gztell(gzFile file); int gzeof(gzFile file); int gzdirect(gzFile file); int gzclose(gzFile file); const char * gzerror(gzFile file, int *errnum); void gzclearerr(gzFile file);
Calculate checksum
uLong adler32 (uLong adler,const Bytef *buf, uInt len); //use method: uLong adler=adler32(0L,Z_NULL,0); while(read_buffer(buffer, length) !=EOF) adler=adler32(adler,buffer,length); if(adler != original_adler) error(); uLong crc32 (uLong crc,const Bytef *buf,uInt len); //use method: uLong crc = crc32(0L,Z_NULL,0); while(read_buffer(buffer,length)!=EOF) crc=crc32(crc,buffer,length); if(crc != original_crc) error();
 Finally, the structure of z_stream
typedef struct z_stream_s Bytef *next_in; /* next input byte */ uInt avail_in; /* number of bytes available at next_in */ uLong total_in; /* total nb of input bytes read so far */ Bytef *next_out; /* next output byte should be put there */ uInt avail_out; /* remaining free space at next_out */ uLong total_out; /* total nb of bytes output so far */ char *msg; /* last error message, NULL if no error */ struct internal_state FAR *state; /* not visible by applications */ alloc_func zalloc; /* used to allocate the internal state */ free_func zfree; /* used to free the internal state */ voidpf opaque; /* private data object passed to zalloc and zfree */ int data_type; /* best guess about the data type: binary or text */ uLong adler; /* adler32 value of the uncompressed data */ uLong reserved; /* reserved for future use */ z_stream;
 deflateInit() + deflate() + deflateEnd() //3 function in combination with the completion of the compression function, specific usage see example.c of test_deflate() function. Actually compress() function is used inside these three functions to achieve inflateInit() + inflate() + inflateEnd() //Complete decompression functions.
Hereâs an example, to understand the usage function, but in general the application can use the above function.
/* zpipe.c: example of proper use of zlib's inflate() and deflate() Not copyrighted -- provided to the public domain Version 1.4 11 December 2005 Mark Adler */ /* Version history: 1.0 30 Oct 2004 First version 1.1 8 Nov 2004 Add void casting for unused return values Use switch statement for inflate() return values 1.2 9 Nov 2004 Add assertions to document zlib guarantees 1.3 6 Apr 2005 Remove incorrect assertion in inf() 1.4 11 Dec 2005 Add hack to avoid MSDOS end-of-line conversions Avoid some compiler warnings for input and output buffers */ #include <stdio.h> #include <string.h> #include <assert.h> #include "zlib.h" #if defined(MSDOS) || defined(OS2) || defined(WIN32) || defined(__CYGWIN__) # include <fcntl.h> # include <io.h> # define SET_BINARY_MODE(file) setmode(fileno(file), O_BINARY) #else # define SET_BINARY_MODE(file) #endif #define CHUNK 16384 /* Compress from file source to file dest until EOF on source. def() returns Z_OK on success, Z_MEM_ERROR if memory could not be allocated for processing, Z_STREAM_ERROR if an invalid compression level is supplied, Z_VERSION_ERROR if the version of zlib.h and the version of the library linked do not match, or Z_ERRNO if there is an error reading or writing the files. */ int def(FILE *source, FILE *dest, int level) int ret, flush; unsigned have; z_stream strm; unsigned char in[CHUNK]; unsigned char out[CHUNK]; /* allocate deflate state */ strm.zalloc = Z_NULL; strm.zfree = Z_NULL; strm.opaque = Z_NULL; ret = deflateInit(&strm, level); if (ret != Z_OK) return ret; /* compress until end of file */ do strm.avail_in = fread(in, 1, CHUNK, source); if (ferror(source)) (void)deflateEnd(&strm); return Z_ERRNO; flush = feof(source) ? Z_FINISH : Z_NO_FLUSH; strm.next_in = in; /* run deflate() on input until output buffer not full, finish compression if all of source has been read in */ do ferror(dest)) (void)deflateEnd(&strm); return Z_ERRNO; while (strm.avail_out == 0); assert(strm.avail_in == 0); /* all input will be used */ /* done when last data in file processed */ while (flush != Z_FINISH); assert(ret == Z_STREAM_END); /* stream will be complete */ /* clean up and return */ (void)deflateEnd(&strm); return Z_OK; /* Decompress from file source to file dest until stream ends or EOF. inf() returns Z_OK on success, Z_MEM_ERROR if memory could not be allocated for processing, Z_DATA_ERROR if the deflate data is invalid or incomplete, Z_VERSION_ERROR if the version of zlib.h and the version of the library linked do not match, or Z_ERRNO if there is an error reading or writing the files. */ int inf(FILE *source, FILE *dest) int ret; unsigned have; z_stream strm; unsigned char in[CHUNK]; unsigned char out[CHUNK]; /* allocate inflate state */ strm.zalloc = Z_NULL; strm.zfree = Z_NULL; strm.opaque = Z_NULL; strm.avail_in = 0; strm.next_in = Z_NULL; ret = inflateInit(&strm); if (ret != Z_OK) return ret; /* decompress until deflate stream ends or end of file */ do strm.avail_in = fread(in, 1, CHUNK, source); if (ferror(source)) (void)inflateEnd(&strm); return Z_ERRNO; if (strm.avail_in == 0) break; strm.next_in = in; /* run inflate() on input until output buffer not full */ do while (strm.avail_out == 0); /* done when inflate() says it's done */ while (ret != Z_STREAM_END); /* clean up and return */ (void)inflateEnd(&strm); return ret == Z_STREAM_END ? Z_OK : Z_DATA_ERROR; /* report a zlib or i/o error */ void zerr(int ret) fputs("zpipe: ", stderr); switch (ret) case Z_ERRNO: if (ferror(stdin)) fputs("error reading stdinn", stderr); if (ferror(stdout)) fputs("error writing stdoutn", stderr); break; case Z_STREAM_ERROR: fputs("invalid compression leveln", stderr); break; case Z_DATA_ERROR: fputs("invalid or incomplete deflate datan", stderr); break; case Z_MEM_ERROR: fputs("out of memoryn", stderr); break; case Z_VERSION_ERROR: fputs("zlib version mismatch!n", stderr); /* compress or decompress from stdin to stdout */ int main(int argc, char **argv) int ret; /* avoid end-of-line conversions */ SET_BINARY_MODE(stdin); SET_BINARY_MODE(stdout); /* do compression if no arguments */ if (argc == 1) ret = def(stdin, stdout, Z_DEFAULT_COMPRESSION); if (ret != Z_OK) zerr(ret); return ret; /* do decompression if -d specified */ else if (argc == 2 && strcmp(argv[1], "-d") == 0) ret = inf(stdin, stdout); if (ret != Z_OK) zerr(ret); return ret; /* otherwise, report usage */ else fputs("zpipe usage: zpipe [-d] < source > destn", stderr); return 1;
 Web server for sending gzip compression
#include <string.h> #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> #include <signal.h> #include <zlib.h> #include <zconf.h> void app_exit(); int socket_listen(u_short port); void send_http_head(int clifd); void put_long (unsigned char *string, unsigned long x); int gzip_http_buffer(int clifd,char *msg,int len); int sockfd; int main(int argc,char **args) struct sockaddr_in cli_sin; socklen_t cli_len=sizeof(cli_sin); int clifd; char buf[4096]; char msg[4096]="<br><br><h1>Reage Web Server gzip support text!</h1><br/><h1><a href = "http://wunaozai.cnblogs.com">Reage blog</a>"; signal(SIGINT,app_exit); sockfd=socket_listen(8080); while(1) clifd=accept(sockfd,(struct sockaddr *)&cli_sin,&cli_len); printf("From IP:%s:%un",inet_ntoa(cli_sin.sin_addr),ntohs(cli_sin.sin_port)); read(clifd,buf,4096); printf("%sn",buf); send_http_head(clifd); gzip_http_buffer(clifd,msg,strlen(msg)); close(clifd); close(sockfd); return 0; void put_long (unsigned char *string, unsigned long x) string[0] = (x & 0xff); string[1] = ((x >> 8) & 0xff) ; string[2] = ((x >> 16) & 0xff) ; string[3] = ((x >> 24) & 0xff); /* * Sending compressed characters * * */ static const char gzip_header[10]=0x1f,0x8b,0x08,0,0,0,0,0,0,0x03; int gzip_http_buffer(int clifd,char *msg,int len) z_stream stream; int ret,flush; char in[4096];//Data stored in the input char send[4096+18];//Stored after the data is compressed unsigned int have; int tmp; memcpy(send,gzip_header,10); memset(in,0,len); stream.zalloc=Z_NULL; stream.zfree=Z_NULL; stream.opaque=Z_NULL; stream.avail_in=0; stream.next_in=Z_NULL; memcpy(in,msg,len); //Compression initialization tmp=deflateInit2(&stream, Z_DEFAULT_COMPRESSION,//Compression level, from 0-9 Z_DEFLATED,//Compression Type -MAX_WBITS, 8, Z_DEFAULT_STRATEGY); if(Z_OK!=tmp) perror("deflateInit2 Error"); return 0; stream.avail_in = len; //Length of the data to be compressed stream.next_in = in; //First address to the compressed data stream.avail_out = 4096; //The maximum length can be stored in the output. Is the maximum length of the compressed data stream.next_out = send + 10; //Store compressed data starting position, send the first ten bytes used to put the head ret = deflate (&stream,Z_FINISH); //Compression switch(ret) case Z_NEED_DICT: ret=Z_DATA_ERROR; case Z_DATA_ERROR: case Z_MEM_ERROR: (void)inflateEnd(&stream); return ret; have = 4096 - stream.avail_out; unsigned crc = crc32(0L, in, len); char * tail = send + 10 + have; put_long (tail, crc); put_long (tail + 4, len); write (clifd, send, have + 18); deflateEnd (&stream); return 1; void app_exit() signal(SIGINT,SIG_DFL); close(sockfd); exit(0); /* * Send a HTTP Header * */ void send_http_head(int clifd) char buf[4096]; memset(buf,0,sizeof(buf)); sprintf(buf,"HTTP/1.1 200 OKrn"); sprintf(buf,"%sServer:wunaozai.cnblogs.comrn",buf); sprintf(buf,"%sContent-Encoding: gziprn",buf);//Tell the browser, the data is compressed by gzip sprintf(buf,"%sContent-Type: text/htmlrnrn",buf); write(clifd,buf,strlen(buf)); /* * */ int socket_listen(u_short port) struct sockaddr_in sin; int on; int httpd=socket(PF_INET,SOCK_STREAM,0); if(httpd==-1) perror("Fail to Socket"); //init sockaddr_in sin.sin_family=AF_INET; sin.sin_port=htons(port); sin.sin_addr.s_addr=htonl(INADDR_ANY); bzero(&(sin.sin_zero),8); setsockopt(httpd,SOL_SOCKET,SO_REUSEADDR,&on,sizeof(on)); if(bind(httpd,(struct sockaddr *)&sin,sizeof(struct sockaddr))==-1) perror("Fail to bind"); if(port==0) socklen_t len=sizeof(sin); if(getsockname(httpd,(struct sockaddr *)&sin,&len)==-1) perror("Fail to getsockname"); port=ntohs(sin.sin_port); if(listen(httpd,100)<0) perror("Fail to listen"); printf("open port:%un",port); return httpd;
  .CPlase_panel display:none;
New Post has been published on ITESSAYS
New Post has been published on http://itessays.com/linux-technology/hortonworks-lays-out-a-future-for-hive-that-includes-transactions-spark-and-sub-second-queries.html
Hortonworks lays out a future for Hive that includes transactions, Spark and sub-second queries
Hortonworks is working on a new initiative called Stinger.next, which it hopes will remake Apache Hive into a much more-capable SQL engine within the next year and a half. A greatly improved Hive could put other vendors on the defensive explainging why their products are better.
Hive
 Conventional wisdom says that Hive isnât fast enough for true interactive queries, but Hortonworks is promising a next-generation Hive that can handle read-write transactions, support the full set of SQL semantics rather than a subset of them and deliver query results in less than a second. Itâs also getting on board with the push to integrate Hive and Apache Spark so the former can handle usersâ machine-learning jobs. Hortonworks is calling this strategy Stinger.next, and the resulting set of new capabilities âenterprise SQL at Hadoop scale.â
Stinger.next is the second large effort Hortonworks has spearheaded in order to improve the performance of Hive. The company recently completed its goals for the initial Stinger project, on which it began work in 2012 and which the company claims improved the performance of Hive by 100 times while also improving its functionality.
The company explains the details of how it, along with the Hadoop community, plans to pull this off in a blog post on Wednesday. It also gives a rough timeline of when the three-phase plan will be complete: ACID transactions by the end of this year; sub-second queries and Spark integration in the first half of next year; and full SQL queries along with geographically distributed queries by the end of 2015. There are a few other deliverables tied to each of those timeframes, as well.
 Source: Hortonworks
A successful Stinger.next initiative could be a major annoyance, to say the least, for the slew of companies that have already committed untold man-hours and financial resources building out their own SQL-on-Hadoop engines based on the premise that Hive â even running on Spark â would never be fast enough. Commercially available products include Cloudera Impala, IBM Big SQL, Pivotal Greenplum and startup Splice Machineâs eponymous database technology. Open source projects and others still under development include the Facebook-built Presto, the Salesforce.com-built Apache Phoenix and the MapR-led Apache Drill.
The Apache Spark community is also working on its own interactive SQL engines called Spark SQL and BlinkDB.
Explaining his companyâs decision to build Impala and bet the future on it with regard to interactive SQL, Cloudera Co-founder and Chief Strategy Officer Mike Olson recently told me, âImpala is flat-out faster than the fastest thing Hortonworks or anyone else has ever done with Hive.â
That might continue to be true, and it might be true that every technology mentioned will continue to be better than a new-and-improved Hive in one way or another. But itâs also true that a more-capable Hive is going to look very appealing to a lot of users that have been using Hive for years and donât want to incorporate an entirely new technology (although Stinger.next does involve some major architectural changes), or that prefer their Hadoop components to be as open as possible.
Iâm not sure running SQL jobs on Hadoop is the ultimate use case for what many claim will be a revolutionary data platform, but given the size of the database market, itâs potentially a lucrative one and itâs helping highlight some big differences between each vendorâs approach to selling Hadoop.
  .CPlase_panel display:none;