Data Center is our focus

We help to build, access and manage your datacenter and server rooms

Structure Cabling

We help structure your cabling, Fiber Optic, UTP, STP and Electrical.

Get ready to the #Cloud

Start your Hyper Converged Infrastructure.

Monitor your infrastructures

Monitor your hardware, software, network (ITOM), maintain your ITSM service .

Our Great People

Great team to support happy customers.

Friday, October 12, 2012

10 Highly Effective Habits of Indispensable IT Departments and the Benefits of IT Automation Solutions

Just how beneficial is IT automation, you might be asking yourself? Well, Kaseya has identified a number of "habits" that best-in-class IT departments consistently practice using IT automation. By adopting these habits you can improve the status of your department within your organization and simultaneously upgrade department activities from tactical to strategic.

Effective Habit #1: Understanding the Business Goals

The IT department is often seen as overhead. Business administrators may not understand the potential strategic value of IT, so it's up to the IT department to educate them – not by telling them, but by showing them. The best way to do that is to truly understand the strategic goals of your company or organization and align your efforts to support them.

Effective Habit #2: Focus on Projects that Drive Down Costs or Increase Revenues

You can't do everything, so evaluate all the projects in your queue and rank them according to how much business benefit each can deliver. Identify the subset of highly visible business systems that contribute the most to the bottom line. Then focus on making those systems run as quickly and efficiently as possible through IT automation. Empower users – make it easy for them to do their jobs.

Effective Habit #3: Make Cloud Computing Work for You

Don't worry that cloud computing will make your IT department obsolete. View the cloud as a tool that you can leverage to rid yourself of the day to day drudgery. Let the cloud do the daily necessary, but mundane tasks. That frees you up to successfully tackle the projects that improve the bottom line, making your IT department more visible as contributors to business success.

Effective Habit #4: Embrace New Industry Trends

Keep on top of new techniques and technologies. Evaluate them to determine which ones are a best fit for your organization and which ones can give you the best bang for your buck. Pay attention not only to buzz within the tech community, but with what is happening within your user/business community. Don't wait for users to come to you with requests for support of new IT automation technologies. Take ownership for being the technology experts and introduce trending topics such as mobile computing, social media, virtualization, etc. to the business side before they become aware of them.

Effective Habit #5: Leverage and Benefit from User Self-Service

Find your power users and enable them. Allow them to handle some of your lower level tasks. This can improve your relationship with your user community – you are acknowledging that some of them have a certain level of IT skills; while it also frees your people up to focus on more strategic activities that contribute to the bottom line.


Effective Habit #6: Replace Point Solutions with a Single, Integrated One

Multiple solutions for different facets of the environment create issues with productivity and training. Different solutions have different interfaces – each must be learned and IT staff must change gears when moving from one to another. There are also integration issues when one vendor's solution can't seamlessly pass information to another vendor's solution. A single, integrated IT automation solution to manage all facets of the environment saves time and money.

Effective Habit #7: Keep Your Organization's Data Safe – Automatically

Visibility into ALL devices connecting to the network is key. You must be able to see who is connecting to the network and what they're doing at all times. If you can't see it, you can't manage it. Automated audit reports and backups create a stable, secure environment.

Effective Habit #8: Proactively Identify Issues Before They Become Problems

Automated monitors and custom alerts can notify IT before users notice that there's a problem. It's much easier to maintain SLAs when issues are addressed before they become problems. Instead of putting out fires, you can resolve issues by identifying the root of a problem at a glance.

Effective Habit #9: IT Automation Solutions Work on Users' Devices without Interrupting Them

Remote monitoring and access of user devices allows you to perform maintenance activities without asking users to step away from their machines. Perform the necessary tasks while users remain productive and unaware of your activity.

Effective Habit #10: Robust Reporting Proves the Value of the IT Department

Provide performance/productivity/SLA information to business management to justify the cost of IT in a way they can understand. When no system problems disrupt their day, C-level execs often assume that IT investments are unnecessary. Sophisticated reporting from IT automation solutions makes the value of investments that enable uptime readily apparent.





Fanky Christian
Business Development Director
PT. DAYA CIPTA MANDIRI SOLUSI
IBEC Building 2nd Fl
Jl. KH Wahid Hasyim No.84-86
Jakarta Pusat, 10340, Indonesia
Telp: 62-21-3924716
Sales: 62-21-3907418
Fax: 62-21-3907417
mobile: 62-812-1057533 / 0881-8857333 / 081934102353
tw:@fankych
ym:dayaciptamandiri

Online Store: www.tokofc.com

visit:

[DataCenter]
GEADenco, MiraSaito, Goldbach, APC, PowerWare, FIKE, FirePro, CabloFil
[Structure Cabling]
AMP, R&M, LS, Netviel, Panduit
[Enterprise Management]
ManageEngine, PRTG, Nagios, Cimtrak
[Environment Monitoring]
AKCP
[SMS Gateway]
SendQuick, OZEKI NG
[Application Management]
finosSQM, finosMDS, finosHR, Globodox, FusionCharts, Navicat
[Network Solutions]
Draytek Vigor, WatchGuard, 3CX

Build-access-manage at dayaciptamandiri.com

Thursday, October 11, 2012

Tahapan Sederhana Mengimplementasikan Helpdesk

Dalam beberapa kali kesempatan, saya mempresentasikan solusi ITIL Helpdesk untuk prospek atau customer. Ada beberapa tantangan yang saya tangkap diantaranya:
1. Belum semua customer memiliki helpdesk
2. Belum semua customer memiliki single point of contact (SPOC)
3. Tidak semua customer memahami konsep ITIL

Adalah baik untuk mengimplementasi helpdesk berbasis ITIL, tetapi seperti konsep framework ideal lain pada umumnya, ITIL merupakan konsep best practices yang bagus tetapi tidak mudah diimplementasi secara langsung.

Mulailah dengan menginventarisasi dahulu seluruh permasalahan yang muncul di lingkungan IT kita. Buatlah kategori permasalahan yang ada, misalnya masalah terkait jaringan, server, komputer dll.

Setelah itu, buatlah prioritas permasalahan berdasarkan kategori, sehingga kita bisa menentukan mana masalah yang sangat penting dan harus segera diselesaikan.

Berikutnya adalah implementasikan dan kenalkan konsep Single Point of Contact, sehingga seluruh permasalahan yang terkait IT, tidak lagi langsung ke tiap orang support yang ada, melainkan dikumpulkan semua ke dalam satu atau dua orang atau tim.

Single point of contact ini bisa dievaluasi dalam waktu tertentu, dan perhatikan dengan kriteria permasalahan yang telah tadi kita tentukan, dengan mudah kita membuat klasifikasi dan pelaporan permasalahan yang terjadi.

Setelah itu, barulah memikirkan konsep implementasinya dengan menggunakan helpdesk tools. Banyak helpdesk tools tersedia di dunia IT, salah satunya yang menarik digunakan adalah ServiceDesk Plus. Bukan karena hanya kami menjadi reseller produk ini sejak 2005, tapi dibandingkan produk lainnya yang pernah kami / saya tangani, produk ini simple dan powerful, serta dengan mudah diupgrade / dikembangkan menjadi produk yang berbasis ITIL.

Versi paling sederhana dari software ini hanya akan mencatat permasalahan yang muncul, atau dikenal dengan Problem Management. Dengan mengimplementasikannya, seluruh permasalahan akan dicatat dengan baik, hingga penyelesaiannya. Dan hasil penyelesaiannya, bahkan bisa dipromosikan sebagai solusi, atau dikenal juga sebagai Solution dalam Knowledgebase mereka.
Nah, yang menarik dengan software ini adalah, semua permintaan dari user, tidak dianggap sebagai melulu masalah, melainkan request  / permintaan. Hal ini karena request tidak melulu terkait masalah, melainkan juga terkait permintaan penambahan hardware, instalasi software, bahkan permintaan lainnya.

Jangan salah sangka. Request ini malah bahkan digunakan di beberapa customer sebagai non IT request, seperti permintaan barang non IT, hingga permintaan layanan supir.

Uniknya lagi, software ini menghitung jumlah teknisi - orang yang akan menerima limpahan assignment, bukannya helpdesk agent. Apabila kita punya 5 teknisi, maka asumsikan 6 untuk termasuk dengan adminnya.

Setelah software ini stabil, seluruh pengguna dengan mudah mengirimkan permasalahan dan semua request nya melalui software ini, mungkin kita dapat bertindak lebih jauh dengan mengimplementasikan inventory asset management. Pemikirannya simple. Adalah bagaimana helpdesk tim kita dapat segera menyelesaikan masalah (Quick Kill) tanpa harus melakukan eskalasi ke technician. Karena seringkali penanganan masalahanya adalah umum dan dapat dengan mudah dilakukan dengan cepat dan tepat. Untuk versi ini, maka dapat menggunakan versi profesional.

Dengan versi profesional, maka penggantian password dapat dilakukan dengan cepat. Informasi hardware dan software terpasang dari tiap-tiap komputer, server dan perangkat lainnya yang dimonitor dapat dengan mudah di-track.

Apabila ini semua telah stabil, makan kita dapat melakukan ke tahap selanjutnya, yaitu helpdesk versi Enterprise, dimana telah mengadoptasi konsep ITIL. Jangan berpikir rumit dahulu, tahapan ITIL yang akan digunakan adalah hanya Incident Management, Change Management - Release Management, termasuk Post Implementation Review serta powerfull CMDB (Configuration Management Database).

Jadi tentukan siapa saja yang akan termasuk sebagai Change Advisory Board, orang-orang yang akan dilibatkan untuk pengambilan keputusan atas perubahan yang akan dilakukan di lingkungan IT kita. Kemudian kumpulkan sebanyak mungkin informasi dan relasi dari Configuration Items, yaitu informasi server, komputer, user dll dan relasinya satu dengan yang lain.

Setelah selesai, barulah kita coba implementasi dijalankan.

Lakukan review dalam periode tertentu, misalnya 1 - 2 bulan untuk melihat efektifitas penggunaan software. Gunakan report-report yang ada yang telah disediakan akan sangat melengkapi kita untuk melakukan analisa.

OK, simplenya seperti semua hal di atas. Silahkan kontak kami untuk implementasi helpdesk Anda.

www.servicedeskplus.com

10 tools untuk membuat Infographics


10 Free Tools To Create Visually Appealing Infographics

Don't Forget to participate in a contest where you can win the world's biggest UI elements pack "Impressionist User Interface Elements Pack" for 3 winners (1 developer license and 2 personal license) to design your project more creatively. 

  

advertise here
Infographics is the graphical representation of information or data. The information presented through Infographics is visually appealing and can be scanned easily. Furthermore, you can effectively represent relatively large amount of data in a very small space. Infographics are used to represent straight-forward and interesting data and /or the relation between two entities.
In this round up, we are presenting some free tools that you can use to create visually appealing and effective Infographics. With these tools, you can easily draw users’ attention to a particular trend and let them understand the whole Infographics in a very short period of time. So, without any further ado, here is the complete list. Enjoy!
Visual.ly Create is the fastest, smartest and most beautiful approach to data visualization yet. Simply connect and click to produce an infographic in seconds.
Create fully customizable interactive and animated bar charts, time series and scatter plots. Free download.
It is a free vector graphic tool. with this tool you can create your overall infographic free. An Open Source vector graphics editor, with capabilities similar to Illustrator, CorelDraw, or Xara X, using the W3C standard Scalable Vector Graphics (SVG) file format.
With this tool you can create your own interactive map.
One click styling, pretty shapes, curvy connectors and more helps you create beautiful diagrams and infographics.
Wordle is a toy for generating “word clouds” from text that you provide. The clouds give greater prominence to words that appear more frequently in the source text. You can tweak your clouds with different fonts, layouts, and color schemes. The images you create with Wordle are yours to use however you like. You can print them out, or save them to the Wordle gallery to share with your friends.


Read more: http://www.smashingapps.com/2012/06/12/10-free-tools-to-create-visually-appealing-infographics.html#ixzz28wDYFSxH

Kondisi Social Media di tempat kerja


The State of Social Media at Work In One Quick Infographic

After surveying over 300 professionals, technology service provider Appiriodetermined that most people are far more social personally than they are at work.
Interestingly, 41% believe their company should be doing more to become a social enterprise, and twice as many managers are using social media compared to their employees they manage. So the takeaway here seems to be that employees either are not allowed to engage in social networking activities at work, or don’t see the value in it.
Most importantly, as the survey suggests, enterprise workers now understand that culture and ownership of the social business transformation are key factors to the success of a social enterprise. That’s a welcome shift from past surveys I have seen.
Social at Work Infographic

Hati-hati dengan BYOD


Achtung! Your end-users have grave misperceptions about bring your own device (BYOD). In a recent survey of 2,243 enterprise workers, there was a resounding chorus of concerns that BYOD would transform IT from helpful business partner into an Orwellian Big Brother keeping round-the-clock tabs on all device activity.
We took it upon ourselves to do a bit of detective work on the topic to test our hypothesis on the privacy breaching backlash of BYOD. Scroll down to view the whole infographic, which breaks down how workers feel about employers having control over their personal smartphones and tablets. Lo and behold, the survey results were on par with expectations—the overwhelming majority concerned about moderation of on-device activity and the privacy of data contained thereon.
Fortunately, BYOD Privacy Settings can be enabled to eliminate the collection of personally identifiable information (PII), such as physical location or personal app inventory. Click to learn more, or scroll to the bottom to view our most recent webinar on the topic: Separation of Corporate and Personal: Best Practices for Securing Data on Mobile Devices.

Using Six Sigma to End Bad Customer Service

Imagine if you only had 3.4 bad customer experiences per million customer service interactions. That’s the idea behind the Six Sigma in customer service.
Six Sigma is a quality management theory that gives businesses the blueprint to improve processes and decrease ineffective practices that contribute to bad customer service.
Six Sigma in Customer ServiceUsing Six Sigma to End Bad Customer Service
If there’s one question I’m asked constantly it’s “how can I stop bad customer service?” My answer is to look to six sigma as a blueprint to eliminating factors that create a bad customer experience.
The Six Sigma model is a highly disciplined approach that can help companies to focus on developing and delivering near-perfect products and services.
Six Sigma for customer service includes identifying factors which are critical for the quality of the service required customers. Focus is placed on improving efficiencies, capabilities, and stability of service and the customer service system to support six sigma.
The higher your sigma rating, the closer to process, product, or service perfection. One sigma is just starting; six sigma is reaching only 3.4 defects per million units processed or serviced. The key to six sigma is identifying and measuring defects in order to re-work processes to eliminate them.

Five Steps to Use Six Sigma in Customer Service

The five steps of six sigma apply in customer service just as it does in production.

Define Customer Service

In the first sigma we determine what the problem is and what we want to achieve.
In order to fix the problem, you have to understand the problem. Can you clearly describe the problem that takes place? Can you define it? What is happening? Why is it happening? The first step to six sigma is to clarify and understand the customer service problem. Once this is done, we’re ready to move one towards fixing the problem.

Measure Customer Service

In the second sigma we measure the data and effect of problems taking place.
Once we understand what is going on, we can outline variables and details associated with our problem we’re attempting to resolve. Seek out every piece of evidence associated with our customer service actions so that we can accurately plan to perfect the service offering.

Analyze Customer Service

The third sigma is where analysis of root causes takes place.
Once we’ve identified the problem, measured the effect and outlined the details of the problem, we can analyze the action taking place and what contributes to problems. Under what circumstances does the problem arise? What are the root causes that bring about problems? Are there certain groups or people typically associated with the problem? Is it related to one specific action? Is it limited to any particular segment of our business or offering? In short, where and when exactly is the failure taking place?

Improve Customer Service

In the fourth sigma we finally address the typical solutions.
What are the steps commonly taken to resolve the problem? What recommendations can be make to keep the problem from happening? What changes need to be made to our process to apply these recommendations? Who is the final decision maker of these process changes? Who is going to institute change? How is the change going to be communicated?

Control Customer Service

Finally, the fifth sigma is where we create the controls to keep the correct process going.
In order to maintain efficiency and productivity in our service offering we must maintain correct process. Controls need to be created to ensure that quality work is being performed and that triggers are in place to prevent defects. In service, a trigger could be maintaining employee morale. Ensuring adequate breaks, autonomy of work, optimal equipment, or anything that will contribute to the sustained near-perfect performance from those who participate in the system.

Six sigma matters in customer service

The sixth sigma is the pinacle of service. It’s where we offer exceptional service at near perfection levels, only 3.4 poor experiences per 1 million customer service interactions.
Six Sigma in Customer Service
Can you imagine the level of goodwill with customers if all organizations operated at this level? Imagine the customer loyalty rates if an exceptional customer experience took place 99.999% of the time customer service was required.
Following Six Sigma in customer service can increase profits, improve customer service employee engagement, and increase the quality of the customer experience creating customer loyalty.

Tuesday, October 09, 2012

10 things you can do to improve network and PC security

By Jack Wallen | October 8, 2012, 6:41 AM PDT

Security. It's that which drives some administrators to early retirement, gray hair, or a permanent room in a padded cell. Okay, that's an exaggeration… but you get the idea. Security is tops on most every administrator's list. And with good reason. Incomplete or poor security can bring down a company's network and/or computer resources. That equates to lost work, which affects bottom line.

Administrators must do all they can to ensure the security of their networks. But for some (especially those without the financial resources), just knowing where to start and what to use is the biggest challenge. With that in mind, I thought I'd lay down 10 tools and methods to help you arrive at better network/PC security.

1: Use Linux

I can already hear the groans from the gallery, but the truth of the matter is, you will cut down on PC security issues if you begin migrating at least some of your desktops to Linux. The best way to do this is to migrate users who don't require the use of proprietary, Windows-only applications. If you use Exchange, just make sure you set up OWA so that the Linux users can access Web mail. Migrate a quarter of your desktops to Linux and that's a quarter fewer security risks you'll have to deal with.

2: Block users from installing software

I've had to deal with companies that do this. Yes, it can be a pain when users actually need a piece of software installed (you'll have to visit their offices just to enter the administrator credentials), but the dividends it pays off are significant. You'll have far fewer viruses and less malware to deal with than you would if the users were allowed to install at will. The give and take is certainly worth it here.

3: Upgrade your antivirus

I'm always shocked when I see antivirus tools that are out of date. This goes for applications and virus definitions. When dealing with the Windows platform, it's crucial to keep everything as current as you possibly can. Keeping antivirus up to date is the only way to help protect vulnerable machines from malicious software and files.

4: Switch your browser

Not to stir up the mud, but the truth of the matter is simple: Internet Explorer is still an incredibly insecure browser. One of the best things you can do is migrate your users from IE to Firefox. Yes, Firefox may be getting a bit bloated, but it's still far more secure than the Windows counterpart.

5: Disable add-ons

Browsers and email clients make use of add-ons. Some are necessary for work — some are not. Those that aren't needed should not be used. Although some add-ons offer some handy features, it's not always possible to ensure the validity or security of an add-on. And even when you can, it's not always a given that the add-on won't affect the performance of the machine. I've seen plenty of Outlook, IE, and Firefox add-ons drag a machine to a screeching halt.

6: Deploy a hardware-based firewall

Let's face it: The built-in Windows firewall is simply not sufficient. If you want real security, you need a dedicated firewall on your network. This firewall will be a single point of entry that will stop many more attempted breaches than the standard software-based firewall will. Besides, the hardware-based fire will be far more flexible and customizable. Look at a Cisco, Sonicwall, or Fortinet hardware firewall as your primary protection.

7: Enforce strict password policies

For the love of all things digital, don't let your end users control their password destiny. If you do this, you'll wind up with accounts and systems protected with "password", "1," or worse — nothing at all. Make sure all passwords require a combination of upper/lowercase, numbers and letters, and special characters. While you're working on password policies, be sure you enforce a rule that passwords must be changed every 30 days. It's an inconvenience, but it's worth the security it brings.

8: Do not share networked folders with "Everyone"

Although it's tempting (especially when you can't figure out why a user can't access a folder), do NOT give the Everyone group access to a folder. This just opens up that folder to possible security issues. If this becomes an absolute necessity, only do it temporarily. For security's sake, spend the extra time troubleshooting why that user can't access the folder, instead of just giving Everyone full access.

9: Use network access control, like PacketFence

PacketFence is one of the most powerful NAC tools you will find. With this tool, you can manage captive-portal for registration and remediation, and you have centralized wired and wireless management, powerful guest management options, 802.1X support, layer-2 isolation of problematic devices, and much more. With this system on your network, you can rest assured that rogue devices will have a much smaller chance of connecting.

10: Use content filtering to protect from malware

I'm not a big fan of posing as Big Brother, so I don't advocate too much content filtering. I do, however, believe it's valid to use content filtering to prevent malware. There are obviously certain phrases, keywords, and URLs that can and should be filtered, based on their history of causing malware. I won't post the best keywords to filter for malware, as those words might land me in trouble. Just do a simple search for keywords associated with malware.

Other tips?

Securing your network and PCs is a constant battle. But with the right tools and strategies, your network can be a much safer arena for productivity. Give a few of these options a look and see if they offer the missing pieces needed to further secure your environment.

What security measures do you take to safeguard your organization? Share your ideas with fellow TechRepublic members.
build-access-manage at dayaciptamandiri.com

Structuring your mobile strategy

By Dean Vella | October 8, 2012, 1:02 AM PDT

According to Google's CEO, Eric Schmidt, the upcoming year will be all about going mobile. Google intends to improve the speed of wireless networks, develop mobile payments and increase the number of inexpensive smartphones used globally. In addition, Google has taken an even more competitive stance by announcing that advertisers who have mobile optimized sites will rank higher in ad quality.

Google is not alone. According to MobileSquared, a research firm based in the UK, Facebook could generate $1.2 billion through its mobile advertising strategy in one year alone.

With smartphones and tablets gaining prominence, business owners are realizing the need to develop a mobile strategy. The question is: how to do it? Creating apps can be expensive, and, obviously, the mobile advertising method needs to more than compensate for the effort required to create it. Here are some suggestions on the various options available and their potential cost ratios as well news on the latest mobile trends from Google and Facebook. If 2012 does not prove to be the year when all businesses, large and small, go mobile, it will at least be the year when most businesses prepare.

Elements of a mobile strategy

The main questions to ask yourself in developing your strategy are these:

Does my business need an app or a mobile-optimized website?

Will my mobile strategy aim for marketing or directly creating income?

In deciding between an app or a mobile-optimized site, you want to consider the cost and your competition. Generally an app creates a much better user experience, but the downside is that you have to create different apps for the major devices, the iPhone, Android and Blackberry. Developing an app can easily cost $30,000 or more per device, and as companies compete, the ratio of users can change.

There are also great differences in the market when you compare the U.S. to the global scene. While Blackberry has fallen behind in the U.S., the phone has retained popularity on the global level. These numbers may aid you in deciding on the second question. If your mobile strategy is not about directly generating income, the high price of creating apps may not be worth your while. On the other hand, however, if your major competition has already gone the app-route, you may need to research which device is most likely used by your clientele and get started designing your effective app.

Mobile trends and how businesses benefit

Clearly, mobile advertising is on the rise and businesses will need to develop marketing strategies accordingly. If your business has an online clientele with a majority owning smartphones or tablets, now could be the time to get ahead of your competition and make your mobile strategy a reality. With the big guns like Facebook and Google demonstrating the reality of mobile trends, the time of guesses and uncertain predictions has passed. It is best to reassess the customer base, do the cost ratio analysis and create or improve your mobile presence. There is a great opportunity here to seize some new clients before everyone has made the leap to mobile.

Dean Vella writes about mobile media and topics pertaining to social media training for University Alliance.
build-access-manage at dayaciptamandiri.com

Adjust your worldview to serve internal and external customers

By Toni Bowers | October 8, 2012, 5:32 AM PDT

Patrick Gray presented an article here recently dissecting Apple's mapping gaffe. He suggests that as IT becomes further engrained in a company's core functions, IT professionals must ask the question, "Who is my customer?" He points out that many IT teams now have two sets of customers: internal and external, and that teams need to learn how to serve both.

But learning to do this isn't an overnight task. It will take time to develop and implement strategies that allow you to do this well. I'm not suggesting a major overhaul of your IT team, but I am suggesting some basic strategies you can implement to serve both groups better.

Adjust how you view your job (and communicate it with your team). This is by far the most important strategy. Since it's not just your job anymore to keep the company's technology working you must openly recognize that your customers extend outside of the organization. The best way I know to do this is to talk about it. Bring it up as a talking point during a team meeting. Discuss with your team what this means in relation to your product, your organization and its customers. This important thing here isn't to make a checklist or to develop a new process. This is simply about adjusting the team's worldview about who it serves.

Implement software that accomplishes certain tasks quickly or automatically. Since you're adding a new concept to your workday, you need to find a way to lessen your workload a bit. This might require a conversation with your manager or the CFO to get you the technology you need. For example, the right database monitoring software can save you a lot of time finding and/or preventing problems.

Also, keep abreast of technologies. The fact that you're reading this shows that you probably already do this. Just be sure to focus on technology that matters to your job. Don't just read about the "cool new tech." Read about some "boring but useful" stuff, too.

Think about your tasks from both points of view and find where they intersect. Serving internal customers is not dichotomous to serving external ones. For example, let's say people from your company often attend trade shows. The company representative will use some type of technology to track leads.

In one aspect, you're serving your internal customers by making sure that technology works the way it's supposed to, but you also serve external customers by making sure their information is saved correctly in the database so they don't receive spam. In this way, serving your internal customer helps you serve the external, and vice-versa.

Keep a list of objectives present. You need two columns. The first column tells you what it looks like to serve your internal customers. The second column tells you what it looks like to serve external customers. Keep this list on the whiteboard or on the top page of a legal pad. This is a great reference and reminder of how to think through serving both sets of customers. It will also help you find places where they intersect.

You might call this process "soft work." Learning to serve both sets of customers isn't about processes. It's about thinking in a new way. That takes time, so don't be discouraged if this doesn't happen all at once. Keep at it and soon enough you'll look back and different milestones and realize how many problems you avoided simply by adjusting your team worldview.

Vanessa James is a business technology consultant and blogger. She enjoys reading about new technologies, especially while listening to The Rat Pack.
build-access-manage at dayaciptamandiri.com

Social media: From monitoring staff to fake pages - five tips to protect brands

By Damian Herrington | October 8, 2012, 2:28 AM PDT

The use or misuse of social media by staff creates a series of challenges for employers in monitoring their activities. Photo: Shutterstock

Social media is now ubiquitous and has fundamentally changed how businesses engage with customers.

A recent study by global law firm DLA Piper, for which I work, revealed that 76 per cent of large employers have some form of social-media presence with 86 per cent on Facebook, 78 per cent on Linkedln and 62 per cent on Twitter.

The potential benefits of social media for businesses are clear: an ability to market and advertise in a direct, interactive and usually free way to a potentially massive global audience. But as social-media use increases, businesses are becoming aware of the risks.

The ability of users to post comments and opinions on social media networks provides a platform for criticism, whether or not justified, and the misuse of a business's brand and content.

Further, the use or misuse of social media by employees brings a series of challenges for employers in monitoring staff activities. Key risks include loss of confidential information, harassment and reputational damage.

Companies need to consider how to minimise these risks before they arise and plan how to deal with them if they do. Here are five steps for businesses to take in connection with their use of social media.

1. Develop a social-media policy and train staff

Most employers should be considering implementing a policy to set guidelines on acceptable use of social media. The policy should cover employee use of social media - for example, employees' own Facebook or Twitter accounts - and use by the business.

Clearly, risks and priorities will vary from business to business, so it is important to tailor policies. Also, policies need to be able to adapt to the broad and fast-changing nature of social media, which is not just Facebook and Twitter, and can include blogs and sites such as YouTube.

Once finalised, the social-media policy should be communicated to staff. There is certainly a case for training all staff in the use of social media, but brand managers and social-media page administrators in particular need skills in dealing with users on social networks.

2. Monitor user-generated content

A recent landmark ruling by Australia's advertising watchdog has confirmed that companies could be liable for comments made on their Facebook pages by users.

While the ruling is applicable to Australia only, it has alerted regulators and brandowners around the world to the importance of monitoring user-generated content on social-media sites, and whether they need to be doing more on this front.

Under the ruling, no differentiation was made between comments posted by the company and those made by users, leaving the company liable under advertising laws for all comments made on its page.

In the UK, the current indication is that the Advertising Standards Authority (ASA), which has had an online advertising remit since March 2011, will not be making changes to its current position. Essentially, it will only intervene on user-generated content if an advertiser takes a user post and highlights it as a testimonial.

However, the Committee of Advertising Practice (CAP) is presently conducting a two-year review of the ASA's online remit, so it remains to be seen whether this position will ultimately change.

In the meantime, brandowners are taking a risk in having completely unmonitored social-media pages - for brand-reputation reasons, if not because of advertising law.

3. Deal with customer complaints carefully

Administrators of company's social-media pages should be vigilant about content posted by users, but they should also be careful when interacting with them.

A number of brands use social media to interact direct with fans and users - for example, dealing with commonly-asked questions and customer complaints.

However, some companies have made situations worse by simply deleting negative posts or tweets. This practice raises potential advertising-law concerns. Others have engaged in online arguments with users on social networks, unwittingly creating bad publicity.

An aggressive reaction, however justified, to a complaint is usually best avoided. Instead, it's better to have a measured response, informing the user what is being done to address his or her concerns.

If the issue is complex, your social-media presence may not be the best place to conduct a conversation with a disgruntled customer.

4. Review social-media sites' terms of use

Before using Facebook, Twitter and other social networks, you should carefully check their terms and conditions. This measure is particularly important in the context of running promotions and competitions. Not complying with their rules risks your page being removed.

For example, you cannot use Facebook's Like button functionality as a voting mechanism for a promotion, nor can you notify winners through Facebook, such as through messages, chat or posts on profiles.

You must acknowledge that the promotion is in no way associated with Facebook. With Twitter promotions, a key rule is that you must discourage users from creating multiple accounts - to dissuade them from entering a contest more than once.

5. Monitor use of your brand and fake user names and pages

Brandowners should also be vigilant about the generic use of their brands by social-media users and should look to prevent their trademarks losing distinctiveness and therefore legal protection.

Brandowners should also keep a careful eye on infringers on social networks, in particular the use of fake pages and usernames. On the one hand, fan pages may not necessarily cause harm to a brand: Coca-Cola's Facebook page was originally started by two fans.

But the potential for, in particular, infringement of intellectual- property rights and defamation is clear. Facebook and Twitter will take down infringing content, but at the moment, there is no equivalent process for social-media usernames to the uniform dispute- resolution policy used for domain-name disputes.

So a brandowner may need to consider court action if a social network refused to take down a fake page or username.
build-access-manage at dayaciptamandiri.com

The Enterprise: I’m Not Sexy And I Know It

Editor's note: Rodney Rogers is chairman and CEO of Virtustream. He is also chairman of Teliris and lead director of Greensmith Energy Management Systems. Follow him on Twitter.

I am a large enterprise. I employ many people and make a good deal of money.

I am a large enterprise. A vast array of technologies – with varying degrees of purpose and tenure – are required to run me. I have a complex, heterogeneous technology landscape. I have hundreds of millions of dollars of technology assets deployed on laddered refresh cycles through a variety of delivery models, all supporting highly differing divisional requirements across a number of development platforms. I employ thousands of developers, architects, and technical managers. I own just about every form of software known to man.

I am a large enterprise. I am not sexy. I am complicated. This will not change.

Cloud Idealists, Generalists And Extenders All Bore The Crap Out Of Me

I hear my legacy hardware providers oversell the cloud capabilities of their latest gold-plated appliances. I hear them fear-monger over my security and performance vulnerabilities.

I also hear those "cloud purists" that condemn me for being lethargic to adopt "real" scalable cloud technologies. They tell me that if my applications are not smart enough to use the public cloud efficiently, then I simply need to rewrite them.

I hear those that vigorously espouse the virtues of open source technology. The obvious benefits of accessible source code often carry support and extension technology costs with them. I'll use open source all day if a) the software works, b) its capabilities align with my use-case requirements, and c) the math makes sense.

If you unnaturally extend or generalize cloud solutions to me, or if you pontificate cloud idealisms without providing tangible platforms that can service what I am , then you waste my time. When you waste my time, I discard you.

Please don't misdiagnose this as me being slow to adopt your solutions.

Which Cloud Delivery Model? Um, Yes.

I believe my cloud IQ has come a long way over the past year or so. I feel like I can now defend myself from the incessant white noise of the cloud washers:

I need public cloud for scalability and savings. I'll ignore anyone that tells me otherwise. Anyone pitching me on the cost-efficient scalability of V-blocks, ESXi, SAN, etc. just loses credibility. My online retail applications alone generate half the revenue that Netflix does as a company. They drive massive instantaneous volume and go quiet just as fast. They need distributed hypervisor architectures, not hierarchal ones. They need direct attached storage, not block storage, etc. My mobile apps are largely in the early innings of their development, but it will be the same thing there as well.

I need private cloud for security and performance. I'll ignore anyone that tells me otherwise. I have millions of dollars of sunken technology assets well within their useful life. IaaS (public or private) for some of my divisions may just not economically work (yet). I do have the need for data isolation in certain areas. This is as much driven by my customer's requirements as my own. Compliance certification is another area that tends to drive private cloud for the same reason. Oh and yes, the latency requirements of my global commodity trading desk? Come on. It goes without saying that true automation and self-service are required, otherwise private or not, it's not a cloud.

Hybrid cloud: It's not a buzzword for me, but rather a requirement. Further, my public and private clouds will need to communicate and rely on each other.

SaaS? Yes! From big SaaS (Salesforce, Workday) to emerging SaaS (Box, Zoho), I love them. We'll migrate (or rewrite) applications to leverage the advantages of public cloud and/or SaaS as much as we can, as fast as we can.

ERP? Well, now that's, uh, difficult.

The Death Of ERP Has Been (Unfortunately) Grossly Exaggerated

I need to make billions of dollars worth of product across thousands of SKUs every year, then store them, pick them, ship them, and invoice them. My products require complex recipe formulation, and in some cases, hundreds of bill-of-material subassemblies. I have a vast fleet of moving stock and so on. I need heavyweight functional systems to transact this.

This means that right in the middle of my cloud strategy sits a very large, highly integrated, very functionally intelligent, and very expensive "dumb app" (as you may refer to it from a "cloud-aware" perspective). I'm a very large SAP customer, and I spend more on this application and its supporting infrastructure than on any other one technology I own. It's for this reason that it amazes me that most cloud providers simply punt when in comes to large-scale integrated ERP in the cloud.

Will large-co ERP and its legacy deployment model give way to big SaaS? Probably. Will that happen anytime soon? Not likely. Salesforce and Workday are not replacements for SAP and Oracle. They can enhance them, or replace some of their applications, but not wholly replace them. They just do not have the integrated business application breadth. Period. Have you ever tried to capacity-plan a packaging floor on Salesforce? Have you ever tried to run MRP, pick a pallet, and then run the resulting transactions through inventory accounting on Workday? Didn't think so.

Can cloud really benefit ERP? It can, and to be clear, I'm not talking about running SAP on a virtualized appliance. That is so mid-last-decade.

As Freddie Mercury once sang:

Gotta find me a future, move out of my way
I want it all, I want it all, I want it all, and I want it now

To run SAP in the cloud, here is what I need:

Application-level SLAs without giving up the economics of multi-tenant: If you deploy an architecture that can control my compute and storage IOPS within your multi-tenant stack, you can give me application-level latency guarantees. With this I can then trust production instances of SAP, and thus my revenue generating systems, on your cloud.

Cloud sauce: Make this dumb app smarter by way of reverse engineering away (and thus limiting) how inefficient it can be. Use your cloud provisioning scripts to intelligently and dynamically downsize the application server landscape running my SAP instances, and then spin them up only when I need them.

Mainframe solutions: Some of my SAP database systems are running on Unix ;. Multiple hypervisor options, including things like PowerVM, are critical. If we are going to transition mainframe to an x86-based cloud, I'll also need help with the migration.

Automated and embedded data replication features: I need to reduce my RTO from days to hours. I'm not even sure where Iron Mountain's mountain is. I want instantaneous modernized DR for everything including ERP baked into your cloud service.

Landscape leverage: I, like many, have not kept up with precise serial iterations of SAP release upgrades. Utilize SAP golden images within your cloud service so I can test my "current version" data with "future version" system images. This will save me a huge amount of time and money on SAP release upgrades. Get me on-demand copies of entire landscapes for training or testing purposes.

Infrastructure cost savings over basic virtualization: You won't get there via provisioning cloud in large, medium and small VMs. You'll need to do better than that by way of pooling and utilizing the resource attributes of those VMs in a manner that essentially eliminates the inefficiency of sizing VMs to peak application workload requirements. And meter it so I only pay for what I actually consumed, not based on the size of the VMs you allocated to me.

You want adoption? Give me this and web scale, and I'll adopt your face off
build-access-manage at dayaciptamandiri.com

Coming clean on ITSM

October 8, 2012 | By BarefootITSM

 | In ServiceDesk Plus

12 steps to…5 principles of…7 methods of…

Most of us prefer life to be placed in neatly categorised boxes. It gives us a sense of control over things we don't necessarily have control over. The same rings true for IT Service Management. We want a process or a tool for everything. We generally don't like grey areas (well, most of us anyway). We prefer to live with a false sense of security instead of facing the reality of a situation. If it's not neatly packed by the end of the show we grapple around for that elusive piece of the puzzle, which will complete the picture so we can sit back and marvel at our handiwork.

Playing rugby as a little boy, I never wanted to come from the field with clean clothes – I wanted mud or grass stains all over me – it made me feel like I played well, got tackled, got up and tried again.

Well, IT Service Management is messy – you have to get your hands dirty. In fact, if you play at all, you will get dirty. Incident Management by its very nature is messy – especially for the customer – but that is why it exists. The aim of Incident Management is just that – to make the customer's outage or issue less of a mess so they can continue their business operations.

Sometimes we get it wrong – do we stop to consider that getting it wrong is not necessarily a sign of failure? It's Problem Management! It creates an opportunity for growth – we try, we fail, we get up, we improve, we gain new insights and grow in experience – as long as our focus is always the customer.

In the end ITIL will never 'solve' ITSM – nor does it claim to – but it can help us improve. But, isn't that sometimes what we want it to do, or do we accept that it is a framework – and yes, sometimes it is ok when a piece of the frame is skew – maybe for a reason: to adapt to that part of your business that doesn't fit in a neat little box

build-access-manage at dayaciptamandiri.com

Monday, October 08, 2012

Akses AKCP Anda dari iPhone

Dengan menggunakan AKCP AKCess Pro Server, kita dapat mengakses informasi dan video yang ada di AKCP.


Don’t hesitate to tune in live to any event using our State of the Art iPhone Application. Once installed the AKCess Pro Server has an additional client that can be installed on an Apple iPhone device. This connects to your server giving you 24/7 remote access to your workplace.
AKCess Pro iPhone application keeps you up to date even when you are on the go.  The snapshots below illustrate a sensor event notification, live video feeds, followed by our playback feature allowing you to access previously recorded footage from anywhere in the world.  AKCP gives you instant access to your facility anytime regardless of where you are or what you are doing.
iPhone Application
The Sensors and cameras are integrated allowing easy review of events with such items as door openings, motion detection, loud noises and environmental factors in both graphical and video formats. This makes it easy to monitor video cameras and devices wherever you are in the world and is perfect for remote Access Control applications.
View who and when someone is trying to enter a secure room and check on the environmental aspects like temperature or humidity. You get the same comprehensive access to AKCess Pro devices and cameras but in an easy to use Apple iPhone interface.

Membuat Dashboard Interaktif Drill-Down dgn PHP dan FusionCharts


Learn to Create Interactive Drill-Down Dashboards with PHP and FusionCharts

Tutorial Details
  • Topic: PHP, mySQL
  • Difficulty: Beginner
  • Estimated Completion Time: 60 minutes
This tutorial will teach you how to easily create drill-down charts in PHP using the LinkedCharts feature of FusionCharts.

Introduction

Presenting data in a graphical format always helps a lot in parsing the data efficiently. If the charts are interactive and linked, that’s even better.
Drill-down charts allow you to convert individual data plots (columns in column chart, pie slices in pie chart etc) of a chart into hotspots (or links).
These items, when clicked, can open new charts and you can navigate between these charts easily.

What are Linked Charts

Linked charts are a new and smart drill-down feature introduced in FusionCharts v3.2
Untiil now, these charts had individual data streams and were not completely tied together. What if all this data could be in one data stream and we could browse through these charts back and forth? Well, that’s exactly what LinkedCharts does. It’s a new and smart drill-down feature introduced in FusionCharts v3.2, that allows you to create unlimited levels of drill-down charts using a single data source. All the links originate from a parent chart and its respective data.
In this tutorial, we are going to take a practical look at integrating a chart with a sample application. The MySQL database will contain the data — a little PHP will work as an intermediary to fetch and process the data — and FusionCharts will handle the process of displaying the charts
Data flow
To learn more about LinkedCharts and drill-down charts, take a look here. To briefly sum it up:
  • Drill-down charts display data with the same settings as the parent chart by default.
  • Additional configuration can also be done per drill-down level. You can change chart type and settings at each level of drill-down.
  • Open links in a separate HTML container, jQuey dialog, lightbox, extJS window and more.
  • Extensive events support using Javascript.

What are We Building?

Often times, we come across a situation where we want to monitor the growth of new users on our website. With that in mind, let’s make a small application that will show the number of registered users monthly / daily / hourly. Or, in simpler terms: how many users signed up in a given period of time?
We’ll make a simple bar chart, which is linked in such a way so that, initially, a monthly chart is shown. When someone clicks on one of the monthly bars, it changes to the daily chart, and again, subsequently, to the daily chart.

Requirements

  • Any web server running PHP.
  • MySQL database server, though, you can use any database of your choice.
  • FusionCharts. If you do not have it, you can download an evaluation copy or buy it.

Step 0: Initial Setup

  • Create an empty database, named fctutorial. You can also use an existing database, but be careful of overwriting tables.
  • Create an empty folder fcdemo in your web-server’s root directory (usually www).

Step 1: Preparing the Database

To keep it simple, we will use one table, users, which will contain the user information. We are only interested in the signup time of the users (the time they registered). So, we will create a table with only that information. Use the following SQL query to do so.
  1. CREATE TABLE `users`  
  2. (  
  3.   `ID` int(10) unsigned NOT NULL AUTO_INCREMENT,  
  4.   `Timetimestamp NOT NULL DEFAULT '0000-00-00 00:00:00',  
  5.   PRIMARY KEY (`ID`),  
  6.   KEY `Time` (`Time`)  
  7. )  
We have created a table with two fields: ID and time. This time field contains the signup time of the users. Note that we have applied an INDEX on the time field, because we will be doing a lot of WHERE clause operations on it. Indexing helps performance in these situations.

Connect to the Database

Let’s write a quick and small script that will help us to connect to database.
  1. <?php  
  2. $db_host     = 'localhost';  
  3. $db_database = 'fctutorial';  
  4. $db_username = 'root';  
  5. $db_password = '';  
  6. if ( ! mysql_connect($db_host$db_username$db_password))  
  7.     die ("Could not connect to the database server.");  
  8. if ( ! mysql_select_db($db_database))  
  9.     die ("Could not select the database.");  
  10. ?>  
Change the database credentials according to your own settings. Next, save this file as connect-to-database.php in the fcdemo folder we created.

Inserting Sample Data

In a real world application, the users table will be populated over time. But, for demonstration purpose, we need to have some data in it. Let’s use a simple script to insert some random data into the table. Don’t worry if you don’t understand the following code; it’s not essential to this tutorial.
  1. <?php  
  2. //Connect to database  
  3. require 'connect-to-database.php';  
  4. //Set variables  
  5. $MinTime = strtotime('2010-01-01');  
  6. $MaxTime = strtotime('2010-12-12');  
  7. $RecordsToInsert = 10000;  
  8. //Generate random time and insert records  
  9. for($i = 0; $i < $RecordsToInsert$i++)  
  10. {  
  11.     $RandomTime = rand($MinTime$MaxTime);  
  12.     mysql_query("INSERT INTO `users` (Time) VALUES (FROM_UNIXTIME({$RandomTime}))"or die(mysql_error());  
  13. }  
  14. //Completed  
  15. echo "Inserted {$RecordsToInsert} records.";  
  16. ?>  
Save this file as generate-random-data.php in the fcdemo folder.
First, we connect to the database using the small script we wrote, then we set the minimum and maximum time from which randomly a time will be picked and inserted into the users table. Also, you can change the number of records to insert by changing $RecordsToInsert.
Next, we run this script to insert the data into the database. To do so, open your web browser and go to this URL :http://localhost/fcdemo/generate-random-data.php.
You should see Inserted 10000 records as the output.

Step 2: Preparing the Skeleton HTML

Now, the actual process begins. We will create a basic HTML page that will hold the area where the chart will be shown. Here’s the basic HTML markup we will be using:
  1. <html>  
  2.   <head>  
  3.     <title>FusionCharts v3.2 - LinkedCharts with PHP Demo</title  
  4.     <script type="text/javascript" src="Charts/FusionCharts.js"></script>  
  5.   </head>  
  6.   <body>  
  7.     <div id="chartContainer">FusionCharts will load here</div>  
  8.     <script type="text/javascript"><!--  
  9.       var myChart = new FusionCharts( "Charts/Column3D.swf", "myChartId", "800", "400");  
  10.       myChart.setXMLUrl( "get-data.php?year=2010" );  
  11.       myChart.render( "chartContainer" );  
  12.       // -->  
  13.     </script>  
  14.   </body>  
  15. </html>  
  16.     
Save this file as demo.html. What we have done is:
  • In <head>, we have imported the JavaScript file that is supplied with FusionCharts asFusionCharts.js. You can find it in the Charts folder in the FusionCharts zip file.
  • In the <body>, we have created a <div> element which will hold the chart.
  • Finally, we have written a small JavaScript snippet that essentially creates a FusionChart object with the following parameters:
    a) Charts/Column3D.swf specifies the FusionCharts chart SWF file to be used. For this demo, we are using the Column3D chart.
    b) myChartId tells the internal ID of the chart. This is helpful if we are creating more than one chart and need to reference them later.
    c) The next two parameters, 800 and 400, are the width and height of the chart.
  • The myChart.setXMLUrl( "get-data.php?year=2010" ); bit defines the data source. Here, we tell it that the chart data will be XML and the URL of the data is get-data.php?year=2010. The get-data.php is the script we will be writing in the next section.
So, we have used two files from the FusionCharts package. You need to copy and past them in thefcdemo/Charts folder to make our app work.

Step 3: Writing the Backend

FusionCharts requires a source data in XML or JSON format. Let’s use the well-known XML data format, for this particular demo. The data file can contain both data for plotting, and cosmetic/functional configuration for the chart. Our objective is to create PHP code that can read the data from the database and generate an XML file like so:
  1. <chart caption="Monthly New Users for the Year: 2010" xAxisName="Months" yAxisName="Users" showNames="1" bgColor="E6E6E6,F0F0F0" bgAlpha="100,50" bgRatio="50,100" bgAngle="270" showBorder="1" borderColor="AAAAAA" baseFontSize="12">  
  2.     <set value="486" name="1"/>  
  3.     <set value="443" name="2"/>  
  4.     <set value="553" name="3"/>  
  5.     <set value="550" name="4"/>  
  6.     <set value="634" name="5"/>  
  7.     <set value="622" name="6"/>  
  8.     <set value="710" name="7"/>  
  9.     <set value="772" name="8"/>  
  10.     <set value="850" name="9"/>  
  11.     <set value="1044" name="10"/>  
  12.     <set value="1175" name="11"/>  
  13.     <set value="761" name="12"/>  
  14. </chart>  
The XML is simply an XMLized version of data as normally shown in tabular format. The chart tag encapsulates all the data. The attributes in the opening tag here specify a few of the many possible disaply options, which instructs the underlying SWF file how to show the data. Here, we have specified the X and Y axis names, background colors, etc.
So, we will create the get-data.php file that will query the database for users, parse the results and create the XML file.
  1. <?php  
  2. //Sanitizing the input  
  3. $Year   = intval($_GET['year']);  
  4. //Query to get users count for the give year.  
  5. $Query = "SELECT MONTH(Time) AS Value, COUNT(*) AS Total FROM `users` WHERE YEAR(Time)={$Year} GROUP BY Value";  
  6. // fill the Result array with 0 values for each month  
  7. $ResultArray = array_fill(1, 12, 0);  
  8. // Prepare Chart Heading and X-AXIS label.  
  9. $ChartHeading = 'Monthly New Users for the Year: '.$Year;  
  10. $XaxisName = 'Months';  
  11. //Connect to database  
  12. require 'connect-to-database.php';  
  13. //Query the database  
  14. $QueryResult = mysql_query($Query);  
  15. //Fetch results in the Result Array  
  16. while($Row = mysql_fetch_assoc($QueryResult))  
  17.     $ResultArray[$Row['Value']]=$Row['Total'];  
  18. //Generate Chart XML: Head Part  
  19. $Output = '<chart caption="'.$ChartHeading.'" xAxisName="'.$XaxisName.'" yAxisName="Users" showNames="1" bgColor="E6E6E6,F0F0F0" bgAlpha="100,50" bgRatio="50,100" bgAngle="270" showBorder="1" borderColor="AAAAAA" baseFontSize="12">';  
  20. //Generate Chart XML: Main Body  
  21. foreach($ResultArray as $key => $val)  // key is month number (1-12)  
  22.     $Output .= '<set value="'.$val.'" name="'.$key.'"/>';  
  23. //Generate Chart XML: Last Part  
  24. $Output .= '</chart>';  
  25. //Set the output header to XML  
  26. header('Content-type: text/xml');  
  27. //Send output  
  28. echo $Output;  
  29. ?>  
Save this file as get-data.php. Let’s go over the code, bit by bit:
  • We sanitize and pass the value of $_GET['year'] in the $Year variable.
  • The query we are using is a simple query that counts the number of users registered, filtered by theWHERE clause to only users that were registered in the year passed by $Year. The result is GROUP BY- the value which is numeric.
  • Next, we prepare $ResultArray by filling it with 0 values for 1 to 12 keys. You’ll learn shortly why we do this.
  • We store the heading of the chart and the X-Axis label in appropriate variables.
  • We call our database script and perform the actual query on the database.
  • Next, we fetch the results, row by row, and insert the data into an array. As the SQL query does not return rows which have no number of users, we want 0 to appear here. That’s why we pre-filled$ResultArray with zeroes. This also assists us when automatically pre-sorting the array.
  • The next line of code deals with the process of creating the head section of the XML. The caption is set as $ChartHeading, which will serve as the heading of the chart. X and Y axis label are also set along with some color and formatting attributes.
  • Now, the main body of the XML file is prepared and stored in the $Output variable. It’s nothing but the simple name and value attributes in the <code><set> tag .
  • To complete the XML output, we close the <chart> tag.
  • As our output is XML, we set the content-type header as XML and echo the contents of our output variable.
Let's see what XML is generated by this code. Open your web browser and visit
http://localhost/fcdemo/get-data.php?year=2010.
You should see XML data, with contents similar to what was shown at the beginning of this step.

Test it Out

Now that everything has been created, let's test out what we've created. Open your web browser and go tohttp://localhost/fcdemo/demo.html.
If you have followed everything correctly, you will see a working column3D chart with the monthly data.
Monthly Data

Step 4: Converting it to a Drill-Down Chart with LinkedCharts

Our real objective today is to make our chart clickable, so that when someone clicks on any of the bars within the graph, the chart transitions, accordingly, to the daily chart.
There are two required methods to embed the child charts data into parent charts. We can append either the whole data string or just the data URL for all the child charts within the parent data source. If data string is used, the data for each descendant chart is embedded within the parent data source and linked using unique data identifiers. However, as in our case, there are many possible child charts (12 months x 30 days x 24 hours). In our case, we will use the data URL method. This way, we only need to link the data URL to the hotspots (the points which can be clicked, e.g. the bars in our chart).

Modifying the PHP Code:

As we need the PHP code to fetch and generate XML for three kinds of chart: monthly, daily and hourly, we need to modify our existing code. Let's see the code first, and then we will dissect it piece by piece:
  1. <?php  
  2. //Sanitizing the input  
  3. $Type  = $_GET['type'];  
  4. $Year  = intval($_GET['year']);  
  5. $Month = intval($_GET['month']);  
  6. $Day   = intval($_GET['day']);  
  7. //Months Names  
  8. $MonthsNames = array(null, 'Jan''Feb''Mar''Apr''May''Jun''Jul''Aug''Sep''Oct''Nov''Dec');  
  9. //Prepare variables according to type-of-chart  
  10. switch($Type)  
  11. {  
  12.     default:  
  13.     case 'monthly':  
  14.         $Query = "SELECT MONTH(Time) AS Value, COUNT(*) AS Total FROM `users` WHERE YEAR(Time)={$Year} GROUP BY Value";  
  15.         $ResultArray = array_fill(1, 12, 0); // fill the Result array with 0 values for each month  
  16.         $ChartHeading = 'Monthly New Users for the Year: '.$Year;  
  17.         $XaxisName = 'Months';  
  18.         break;  
  19.     case 'daily':  
  20.         $Query = "SELECT DAY(Time) AS Value, count(*) AS Total FROM `users` WHERE YEAR(Time)={$Year} AND MONTH(Time)={$Month} GROUP BY Value";  
  21.         $ResultArray = array_fill(1, 31, 0);  // fill the Result array with 0 values for each day  
  22.         $ChartHeading = 'Daily New Users for the Month: '.$MonthsNames[$Month].'/'.$Year;  
  23.         $XaxisName = 'Days';  
  24.         break;  
  25.     case 'hourly':  
  26.         $Query = "select HOUR(Time) AS Value, count(*) AS Total FROM `users` WHERE YEAR(Time)={$Year} AND MONTH(Time)={$Month} AND DAY(Time)={$Day} GROUP BY Value";  
  27.         $ResultArray = array_fill(0, 24, 0);   // fill the Result array with 0 values for each hour  
  28.         $ChartHeading = 'Hourly New Users for the Date: '.$Day.'/'.$MonthsNames[$Month].'/'.$Year;  
  29.         $XaxisName = 'Hours';  
  30.         break;  
  31. }  
  32. //Connect to database  
  33. require 'connect-to-database.php';  
  34. //Query the database  
  35. $QueryResult = mysql_query($Query);  
  36. //Fetch results in the Result Array  
  37. while($Row = mysql_fetch_assoc($QueryResult))  
  38.     $ResultArray[$Row['Value']]=$Row['Total'];  
  39. //Generate Chart XML: Head Part  
  40. $Output = '<chart caption="'.$ChartHeading.'" xAxisName="'.$XaxisName.'" yAxisName="Users" showNames="1" bgColor="E6E6E6,F0F0F0" bgAlpha="100,50" bgRatio="50,100" bgAngle="270" showBorder="1" borderColor="AAAAAA" baseFontSize="12">';  
  41. //Generate Chart XML: Main Body  
  42. switch($Type)  
  43. {  
  44.     default:  
  45.     case 'monthly':  
  46.         foreach($ResultArray as $MonthNumber => $value)  // MonthNumber is month number (1-12)  
  47.             $Output .= '<set value="'.$value.'" name="'.$MonthsNames[$MonthNumber].'" link="newchart-xmlurl-get-data.php?type=daily&year='.$Year.'&month='.$MonthNumber.'"/>';  
  48.         break;  
  49.     case 'daily':  
  50.         foreach($ResultArray as $DayNumber => $value)  // DayNumber is day (1-31)  
  51.             $Output .= '<set value="'.$value.'" name="'.$DayNumber.'" link="newchart-xmlurl-get-data.php?type=hourly&year='.$Year.'&month='.$Month.'&day='.$DayNumber.'"/>';  
  52.         break;  
  53.     case 'hourly':  
  54.         foreach($ResultArray as $HourNumber => $value)  // HourNumber is hour (0-23)  
  55.             $Output .= '<set value="'.$value.'" name="'.$HourNumber.'"/>';  
  56.         break;  
  57. }  
  58. //Generate Chart XML: Last Part  
  59. $Output .= '</chart>';  
  60. //Set the output header to XML  
  61. header('Content-type: text/xml');  
  62. //Send output  
  63. echo $Output;  
  64. ?>  
Now, to understand the changes:
  • As earlier, we are sanitizing the input. Now, we have three kinds of charts, so the GET variable will tell us the kind of chart requested. It can be either monthly, daily or hourly. Similarly, we have $Monthand $Hour, in addition to $Year.
  • Next, we create an array of $MonthNames that will help us when converting the month number to its respective name easily. As an array is zero-based, and a month starts with 1, we set the first array item to null.
  • Now, depending on the type, the value of the $Query, $ResultArray, $ChartHeading and$XAsixName variables are set, using the switch statement. If $Type is undefined, the default case selects the monthly chart.
  • Next, we connect to the database, execute the query, fetch the results in the $ResultArray, and generate the first part of the XML file.
  • The main body of the XML is generated next. However, as it depends on the chart type, we have another switch statement. The real difference lies here:
    • Monthly: Everything is the same, except for the link attribute. The link has the structure:newchart-xmlurl-get-data.php. Here, newchart denotes that a new chart will be created.xmlurl denotes that the data for the new chart is to be fetched from a URL (called the data URL). Whatever comes next becomes the part of this URL. The full link for the January bar becomes: newchart-xmlurl-get-data.php?type=hourly&Year=2010&Month=1
    • Daily: It follows the same structure as the monthly part above. The link attribute now has a URL that has a variable for the day along with others.
    • Hourly: As we do not want hourly chart to be clickable, the link attribute is not used here.
  • Finally, the <chart> tag is closed and the XML header is sent.
Save the file as get-data.php. Now, open your web-browser and check if everything is working correctly. Go to http://localhost/fcdemo/get-data.php?year=2010.
You should see XML data similar to this:
  1. <chart caption="Monthly New Users for the Year: 2010" xAxisName="Months" yAxisName="Users" showNames="1" bgColor="E6E6E6,F0F0F0" bgAlpha="100,50" bgRatio="50,100" bgAngle="270" showBorder="1" borderColor="AAAAAA" baseFontSize="12">  
  2.     <set value="486" name="Jan" link="newchart-xmlurl-get-data.php?type=daily&year=2010&month=1"/>  
  3.     <set value="443" name="Feb" link="newchart-xmlurl-get-data.php?type=daily&year=2010&month=2"/>  
  4.     <set value="553" name="Mar" link="newchart-xmlurl-get-data.php?type=daily&year=2010&month=3"/>  
  5.     <set value="550" name="Apr" link="newchart-xmlurl-get-data.php?type=daily&year=2010&month=4"/>  
  6.     <set value="634" name="May" link="newchart-xmlurl-get-data.php?type=daily&year=2010&month=5"/>  
  7.     <set value="622" name="Jun" link="newchart-xmlurl-get-data.php?type=daily&year=2010&month=6"/>  
  8.     <set value="710" name="Jul" link="newchart-xmlurl-get-data.php?type=daily&year=2010&month=7"/>  
  9.     <set value="772" name="Aug" link="newchart-xmlurl-get-data.php?type=daily&year=2010&month=8"/>  
  10.     <set value="850" name="Sep" link="newchart-xmlurl-get-data.php?type=daily&year=2010&month=9"/>  
  11.     <set value="1044" name="Oct" link="newchart-xmlurl-get-data.php?type=daily&year=2010&month=10"/>  
  12.     <set value="1175" name="Nov" link="newchart-xmlurl-get-data.php?type=daily&year=2010&month=11"/>  
  13.     <set value="761" name="Dec" link="newchart-xmlurl-get-data.php?type=daily&year=2010&month=12"/>  
  14. </chart>  

Test it out

Now that we have modified it, let's test out what we have created. Open your web browser and go tohttp://localhost/fcdemo/demo.html.
If you have followed the steps above correctly, you will see a working Column3D chart. When any of the monthly bars is clicked, the chart will transition to a daily chart for selected month. Subsequently, the same applies to the days as well.
A nifty added feature is that you can use the back button of your browser to return to the previous chart.
Daily Chart Output

The Result

Here is a video which details how our completed application should look:

Conclusion: Extend & Experminent

If you followed this tutorial all the way through, you should now have a decent understanding of what it takes to create a simple LinkedCharts web application with PHP/MySQL. Similar charts and dashboards can be made for:
  • How many products sold over a period of time?
  • How many times your website went down?
  • How many times a particular web page was accessed?
The basic structure is the same for each of these scenarious: have a Time field in your table, and use that data to build the XML. Finally, fetch this XML to the chart.
Take a look at some of these stunning dashboard demos for more inspiration. Thank you for reading, and, if you have any questions or comments about this tutorial, please post!