Sabtu, 16 November 2013

Beyond the Higgs Boson: Five Reasons Physics is Still Interesting (Op-Ed)

This article was originally published at The ConversationThe publication contributed the article to LiveScience's Expert Voices: Op-Ed & Insights.

Would physics be “far more interesting” if the Higgs boson had not been found? Stephen Hawking thinks so. He made this bold claim, possibly with his tongue slightly in his cheek, at the opening of a new exhibition at the Science Museum in London that celebrates particle physics.
With the boson in the can, the Nobel gongs handed out, and the particle collider where it was discovered offline for a two-year upgrade, why are we still doing physics? Here are five possible reasons:

1. Still in the dark

With the discovery of the Higgs, the crucial final piece of physicists’ cosmic jigsaw known as the Standard Model has been put in place. However, there is plenty still to play for in particle physics. For example, we cannot explain why we are here at all. The Standard Model, for all its mathematical elegance and incredible real-life precision, predicts that the universe should just be a sea of cold, lifeless light.
universe

But this exists.
Credit: The Hubble Heritage Team.
When the universe began, there should have been equal quantities of matter and antimatter. Matter and antimatter aren’t happy bedfellows and, on contact, tend to annihilate in a flash of light. Yet, somehow, a little bit of matter was left over, and some of it evolved into beings capable of conscious thought who are currently contemplating how their existence is even possible. What could be more interesting than a gloriously recursive existential crisis?

2. Magnets, how do they work?

The particle physicists may have nailed down the behaviour individual subatomic particles, but the collaborative shenanigans of trillions of particles together in a solid or a liquid still often elude explanation. From semiconductors to magnets, we do know how many materials work. However, there are some exotic substances that we still don’t understand, such as superconductors: how can these weird materials conduct electricity with no loss of energy whatsoever? Currently, superconductors only function when kept at a couple of hundred degrees below freezing. If we could get them working at room temperature, we could ride the wave of technological revolution.
Incidentally, the Higgs mechanism (which gives rise to the eponymous boson) was first postulated by theoretical physicists investigating superconductivity. The same mathematics describes electrons in super-cold lumps of superconducting metal, and the Higgs field which permeates the entire universe and gives all particles its mass.

3. The fastest mirror in the universe

Since physics probes the biggest, smallest, fastest, slowest, coldest and hottest things in the universe, it plays host to some jaw-dropping experiments.
Want to detect neutrinos, the tiniest particles in existence? Deploy a 50,000-tonne tank of ultra-pure water a mile underground in a Japanese zinc mine, surround it with 10,000 ultra-sensitive detectors, and watch for almost-invisible flashes of light. Simple.
Want to double-check Einstein’s theory of relativity? The man himself once devised a thought experiment where you reflect a beam of light off a mirror travelling at a significant fraction of the speed of light. It is a thought experiment no longer: physicists actually did it, bouncing light off a mirror made from electrons travelling at thousands of miles per second. (It worked, and Einstein still seems to be right.)

4. Nuclear fusion

What science other than physics could provide us with the possibility of a near-infinite source of clean energy? In nuclear fusion, the source of power which keeps the stars shining, hydrogen atoms heated to millions of degrees smash together and form helium, releasing vast quantities of delicious energy in the process. Physicists and engineers reckon that, for about the same amount of money budgeted to build Britain’s new high-speed rail project HS2, we could get from today’s experimental fusion reactors to industrial-scale machines delivering electricity to the grid. So, that’s almost unlimited, pollution-free energy, all for around £50 per person in the developed world. So not only is physics interesting, but it’s a bargain too.

5. Space

Saturn

Credit: NASA/JPL-Caltech/SSI.
This image was taken by Cassini, a robotic probe orbiting Saturn. If the backlit splendour of Saturn’s intricate, sparkling ring system isn’t enough for you, the pale blue dot in the bottom right of the image is none other than us: planet Earth, staring back.
There is so much of our Universe left to explore, whether by spaceship or telescope, whether lakes of liquid methane on moons within our solar system, or planets orbiting distant stars in solar systems of their own.
Indeed, in Hawking’s own words:
Remember to look up at the stars and not down at your feet. Try to make sense of what you see and hold on to that child-like wonder about what makes the universe exist.
Maybe he is not so cross about the yawn-inducing Higgs disappointment after all?
Andrew Steele does not work for, consult to, own shares in or receive funding from any company or organisation that would benefit from this article, and has no relevant affiliations.
This article was originally published at The Conversation. Read theoriginal article. The views expressed are those of the author and do not necessarily reflect the views of the publisher. This version of the article was originally published on LiveScience.

Sabtu, 09 November 2013

Learn to code for begginer's

Our first lesson is going to be very simple and consist of learning about basic variables and data types. For the lessons in this series, we're going to use JavaScript as a model because it's a syntax that's pretty easy to understand and it's something that anyone with a text editor and a web browser can use. Because it's an ECMA-based language, it makes understanding other ECMA-based languages (like ActionScript) much easier to learn. Even better, you'll find that knowing how to write JavaScript will make the transition to other object-oriented programming languages much easier. Basically, JavaScript is readily available to practically anyone with a computer and a browser, so we think it's a really good starting point. Once you have the basics down it should be easy to begin learning other languages.

What Are Variables?P

You can think of variables as labeled jars that store different types of data. While there are several kinds of variables, today we're only going to look at three:P
  • String - A string variable is a string of alphanumeric characters and allowed symbols that are contained within quotation marks. For example, "Hello world, I'm 102 years old today!" is an example of a string. Strings can also be contained within single quotes, which is useful if you want to have a string with a quotation like this: '"I hate the snow," Laurel said.' Strings are basically used for storing text.P
  • Number - A number variable couldn't be more straightforward because all number variables store are numbers. You don't store them within quotes like strings. Instead, numbers can just be written as they are. If you want to store the number 9 in a variable, you just write 9.P
  • Boolean - A boolean variable is one of two things: true or false. This data type is kind of like an on and off switch, so you can ask true or false questions in your code. For example, you might ask "is the video currently playing?" The response you'd get would be a boolean variable. True would mean the video is currently playing and false would mean it is not.
  • So how do you putt a variable to your code (or declare a variable, as it's more traditionally called)? In JavaScript, all you need to do is this:
  • myVariable = "Hello world!";

    To Var or Not to Var away

    In JavaScript, you can define a variable asmyVariable = "something"; or var myVariable = "something";, the difference being the wordvar preceding the statement. When you're declaring variables in a script outside of a function, this distinction is pretty much irrelevant. When you're declaring a variable inside a function and do not use var this creates a global variable. Global variables can be accessed from anywhere in your code, whereas local variables (such as the ones defined in functions) can only be accessed within their own scope (e.g. if a variable is local to a function, only that function can use it). This is not an important distinction right this minute, but when we learn about functions later it'll be good to know.
    There are a few of things to notice here. First, the name myVariable. All programming languages have something called reserved words, which means you can't use them as variable names. What they varies, but if the name is sufficiently generic, there's a chance it could be a reserved word. To avoid using reserved words and screwing up your code, just decide on a naming scheme for your variables. I've put "my" in front of my example variable, but you'll probably want to come up with something else. Second, you'll notice a semicolon at the end of the line. A semicolon is like a period at the end of a sentence in many programming languages, and that is definitely the case in JavaScript. In nearly every situation, you need to end your code sentences with a semicolon so your computer doesn't get confused when reading it. The semicolon tells the computer, "Okay I'm all done with this statement." (Note: JavaScript is forgiving, and sometimes you can get away without the semicolon, but it's good practice.)P
    One more thing to note is that JavaScript is a loosely-typed language. There are (basically) two kinds of languages: loosely-typed and strictly-typed. An example of a strictly-typed language is ActionScript (the language Flash apps are written in), and the same variable declaration we just wrote would look like this in ActionScript 3:var myVariable:String = "Hello world!";
    The additions you're seeing are the word var and the word String (with a colon in front of it). The word var tells the computer we're about to declare a variable. The :String attached to the variable's name tells the computer what type of variable it is and to not accept any other type. This is the reason for the term strictly-typed. A loosely-typed language like JavaScript is more flexible and doesn't require any of that. This makes your code more flexible, but some will argue it will also make it more error-prone. We're not going to get into the pros and cons of strictly- and loosely-typed languages here, but it's good to be aware of the basic differences now as you will most likely encounter them in your programming endeavors.P
    Now that you understand what variables are and how they work, we can try using them in some actual JavaScript code.

    Creating Variables and Using the JavaScript Alert( ) FunctionP

    Let's create a simple HTML document that we can use to test our variables:
    Learn How to Code Part I: Variables and Basic Data Types

    (Right click this link and choose to save the document to download a copy of this skeleton HTML file.)P
    You're going to want to have a better-defined HTML document when you're actually writing code, but for our purposes this will work just fine. Save the code above as a file called myscript.html (or anything you want that ends in .html and doesn't contain spaces or special characters) and open it up in your web browser. You'll see absolutely nothing other than "My Script" in the title bar. We still have more work to do. First, let's declare a variable inside of the script tag:P
    myVariable = 5;
    Here we've just declared a number. Let's look at other variable types we can declareP
    myNumber = 5;
    myString = "Hello world!";
    myBoolean = true;
    That gives us a number, a string, and a boolean. Now let's take that myString variable and actually do something with it:P
    myNumber = 5;
    myString = "Hello world!";
    myBoolean = true;
    alert(myString);
    You'll notice I've added the line alert(myString);. This calls a built-in JavaScript function (we'll learn more about these later) called alert() which creates a pop-up dialogue box for users to interact with.P

    What is "Hello world!" all about?

    Writing a simple program that says "Hello world!" is generally the first thing every programmer does when they're learning how to code. It's not necessary, but it's sort of a tradition and an initiation into the club.
    You never really want to use these in practice because—as any internet user likely knows—alert boxes are very annoying, but they make for a good way to test your code, to make sure it works, while you're writing. The parenthesis following alert allow you to provide alert with data it might need. Not all functions will require that you give it information, but alert needs to know what to alert the user. In this case, we gave it myString, so the user will receive a popup notification that says "Hello world!" Try this with your other variables to get popups with a number and a boolean value.P
    Why give alert() a variable and and not just give it the contents of the variable? Well, if you said alert("Hello world!") you'd get the same result in this example, but variables are called variables because they vary. The idea is that the contents, or values, of these variables will change as users interact with the programs you write.

    if you want some practice or more please visited:
    Code AcademyCode Avanger -for some practice
    Life Hacker -for learn more about coding
    thanks for your attention :)

How to fix bugs, step by step

Step 1: Enter the bug in your case tracking system

 At the end of all these steps is a phase where you are tearing your hair out and still haven't gone home, yet. Then you will realize one of two things:
  1. you've forgotten some crucial detail about the bug, such as what it was, or
  2. you could assign this to someone who knows more than you.
 A case tracking system will prevent you from losing track of both your current task and any that have been put on the backburner. And if you're part of a team it'll also make it easy to delegate tasks to others and keep all discussion related to a bug in one place.

 You should record these three things in each bug report:
  1. What the user was doing
  2. What they were expecting
  3. What happened instead
These will tell you how to recreate the bug. If you can't re-create the bug on demand, then your chances of fixing it will be nil.

Step 2: Google the error message

 If there is an error message then you're in luck. It might be descriptive enough to tell you exactly what went wrong, or else give you a search query to find the solution on the web somewhere. No luck yet? Then continue to the next step.

Step 3: Identify the immediate line of code where the bug occurs

 If it's a crashing bug then try running the program in the IDE with the debugger active and see what line of code it stops on. This isn't necessarily the line that contains the bug (see the next step), but it will tell you more about the nature of it.

 If you can't attach a debugger to the running process, the next technique is to use "tracer bullets", which are just print() statements sprinkled around the code that tell you how far a program's execution has got up to. Print to the console (eg: Console.WriteLine("Reached stage 1"), or printf("Reached stage 1")) or log to a file, starting very granular (one print per method, or major operation), then refining it until you've found the one single operation that the crash or malfunction occurs on.

Step 4: Identify the line of code where the bug actually occurs

 Once you know the immediate line, you can step backwards to find where the actual bug occurs. Only sometimes will you discover that they're both one and the same line of code. Just as often, you'll discover that the crashing line is innocent and that it has been passed bad data from earlier in the stack.

 If you were following program execution in a debugger then look at the Stack Trace to find out what the history of the operation was. If it's deep within a function called by another function called by another function, then the stack trace will list each function going all the way back to the origin of program execution (your main()). If the malfunction happened somewhere within the vendor's framework or a third-party library, then for the moment assume the bug is somewhere in your program--for it is far more likely. Look down the stack for the most recent line of code that you wrote, and go there.

Step 5: Identify the species of bug

 A bug can manifest in many bright and colorful forms, but most are actually all members of a short list of species. Compare your problem to the usual suspects below.
  1. Off-By-One
    You began a for-loop at 1 instead of 0, or vice-versa. Or you thought .Count or .Length was the same as the index of the last element. Check the language documentation to see if arrays are 0-based or 1-based. This bug sometimes manifests as an "Index out of range" exception, too
  2. Race condition
    Your process or thread is expecting a result moments before it's actually ready. Look for the use of "Sleep" statements that pause a program or thread while it waits for something else to get done. Or perhaps it doesn't sleep because on your overpowered and underutilized development machine every query was satisfied in the milliseconds before your next statement executed. In the real world things get delayed and your code needs a way to wait properly for things it depends on to get done. Look into using mutexes, semaphores, or even a completely different way of handling threads and processes
  3. Configuration or constants are wrong
    Look at configuration files and any constants you have defined. I once spent a 16-hour day in hell trying to figure out why a web site's shopping cart froze at the "Submit Order" stage. It was traced back to a bad value in an /etc/hosts file that prevented the application from resolving the IP address of the mail server, and the app was churning through to a timeout on the code that was trying to email a receipt to the customer
  4. Unexpected null
    Betcha you got "Value is not initialized to an instance of an object" a few times, right? Make sure you're checking for null references, especially if you're chaining property references together to reach a deeply nested method. Also check for "DbNull" in frameworks that treat a database Null as a special type
  5. Bad input
    Are you validating input? Did you just try to perform arithmetic when the user gave you a character value?
  6. Assignments instead of comparisons
    Especially in C-family languages, make sure you didn't do = when you meant to do ==
  7. Wrong precision
    Using integers instead of decimals, using floats for money values, not having a big-enough integer (are you trying to store values bigger than 2,147,483,647 in a 32-bit integer?). Can also be subtle bugs that occur because your decimal values are getting rounded and a deviation is growing over time (talk to Edward Lorenz about that one)
  8. Buffer overflow & Index Out-of-range
    The number-one cause of security holes. Are you allocating memory and then trying to insert data larger than the space you've allocated? Likewise, are you trying to address an element that's past the end of an array?
  9. Programmer can't do math
    You're using a formula that's incorrect. Also check to make sure you didn't use div instead of mod, that you know how to convert a fraction to a decimal, etc.
  10. Concatenating numbers and strings
    You are expecting to concatenate two strings, but one of the values is a number and the interpreter tries to do arithmetic. Try explicitly casting every value to a string
  11. 33 chars in a varchar(32)
    On SQL INSERT operations, check the data you're inserting against the types of each column. Some databases throw exceptions (like they're supposed to), and some just truncate and pretend nothing is wrong (like MySQL). A bug that I fixed recently was the result of switching from INSERT statements prepared by concatenating strings to parameterized commands: the programmer forgot to remove the quoting on a string value and it put it two characters over the column size limit. It took ages to spot that bug because we had become blind to those two little quote marks
  12. Invalid state
    Examples: you tried to perform a query on a closed connection, or you tried to insert a row before its foreign-key dependencies had been inserted
  13. Coincidences in the development environment didn't carry over to production
    For example: in the contrived data of the development database there was a 1:1 correlation between address ID and order ID and you coded to that assumption, but now the program is in production there are a zillion orders shipping to the same address ID, giving you 1:many matches
 If your bug doesn't resemble any of the above, or you aren't able to isolate it to a line of code, you'll have more work to do. Continue to the next step.

Step 6: Use the process of elimination

 If you can't isolate the bug to any particular line of code, either begin to disable blocks of code (comment them out) until the crash stops happening, or use a unit-testing framework to isolate methods and feed them the same parameters they'd see when you recreate the bug.

 If the bug is manifesting in a system of components then begin disabling those components one-by-one, paring down the system to minimal functionality until it begins working again. Now start bringing the components back online, one by one, until the bug manifests itself again. You might now be able to go try going back to Step 3. Otherwise, it's on to the hard stuff.

Step 7: Log everything and analyze the logs

 Go through each module or component and add more logging statements. Begin slowly, one module at a time, and analyze the logs until the malfunction occurs again. If the logs don't tell you where or what, then proceed to add more logging statements to more modules. 

 Your goal is to somehow get back to Step 3 with a better idea of where the malfunction is occurring, and it is also the point where you should be considering third-party tools to help you log better.

Step 8: Eliminate the hardware or platform as a cause

 Replace RAM, replace hard drives, replace entire servers and workstations. Install the service pack, or uninstall the service pack. If the bug goes away then it was either the hardware, operating system or runtime. You might even try this step earlier in the process--per your judgement--as hardware failures frequently masquerade as software dysfunction.

 If your program does network I/O then check switches, replace cables, and try the software on a different network. 

 For shits and giggles, try plugging the hardware into a different power outlet, particularly one on a different breaker or UPS. Sound crazy? Maybe when you're desperate.

 Do you get the same bug no matter where you run it? Then it's in the software and the odds are that it's still in your code.

Step 9: Look at the correlations

  1. Does the bug always happen at the same time of day? Check scheduled tasks/cron-jobs that happen at that time
  2. Does it always coincide with something else, no matter how absurd a connection might seem between the two? Pay attention to everything, and I mean everything: does the bug occur when an air-conditioner flips on, for example? Then it might be a power surge doing something funny in the hardware
  3. Do the users or machines it affects all have something in common, even if it's a parameter that you otherwise wouldn't think affects the software, like where they're located? (This is how the legendary "500-mile email" bug was discovered)
  4. Does the bug occur when another process on the machine eats up a lot of memory or cycles? (I once found a problem with SQL-Server and an annoying "no trusted connection" exception this way)

Step 10: Bring-in outside help

 Your final step will be to reach out to people who know more than you. By now you should have a vague idea of where the bug is occurring--like in your DBM, or your hardware, or maybe even the compiler. Try posing a question on a relevant support forum before contacting the vendors of these components and paying for a service call. 

 Operating systems, compilers, frameworks and libraries all have bugs and your software could be innocent, but your chances of getting the vendor to pay attention to you are slim if you can't provide steps to reproduce the problem. A friendly vendor will try to work with you, but bigger or understaffed vendors will ignore your case if you don't make it easy for them. Unfortunately that will mean a lot of work to submit a quality report.

Read more : click here

How to Check a Website for a JavaScript Bug

Instructions

  1. Use the Firefox Error Console

    • 1
      In Mozilla Firefox, open the Error Console. You can do this either by pressing "ctrl+shift+J," or by selecting it in the Tools menu. Close any pages that you don't want to check for errors and clear the console.
    • 2
      Load the page you want to check for errors. All of the JavaScript that runs on the page load will run, and any errors that these parts of your scripts generate will show in the error console. If you have any event driven scripts that you want to test, such as those triggered by a button press, do whatever causes them to execute.
    • 3
      Any errors that occurred during this process will be listed in the console. You can click the link provided in the list to have Firefox open a window containing the script source.

    Use the Firebug Plug-in for Firefox

    • 4
      Download and install the Firebug plug-in for Firefox. Firebug is a web development utility that has become a standard debugging tool among web developers. Its offers a much more powerful set of features than the standard Error Console included with Firefox.
    • 5
      Click the bug icon in the bottom right hand corner of your browser. This opens Firebug. There are several tabs at the top of Firebug--the two most useful for JavaScript debugging are the "Script" and "Console" tabs. Make sure these are both enabled by selecting "enable" in the drop-down menu of that tab.
    • 6
      Visit the website you wish to debug. A list of errors will appear in the "Console" tab. Double clicking an item in this list will take you to the point in the script that caused the error.
    • 7
      Use the tools in the "script" tab to test and examine the code more thoroughly. One of these tools is the "watch" area, in which you can type JavaScript statements and they will execute on the page, which is very useful for quick tests. Another useful part of the script tab is the ability to set a breakpoint. To do this, find the area of the script where you wish it to stop (or break), and click in the gray area to the left of it. A red circle will appear there indicating that this is where the debugger will start.


Read more: click here

3D-Printed Bacteria May Unlock Disease Secrets


Minggu, 13 Oktober 2013

Timnas U-19, Angin segar ditengah krisis persepak-bolaan indonesia

JAKARTA, Kompas.com — Lupakan sejenak hiruk-pikuk kasus korupsi dan berbagai krisis yang sedang melanda Tanah Air. Marilah sesaat kita larut dalam euforia keberhasilan tim nasional U-19, yang baru saja menumpas raksasa sepak bola Asia, Korea Selatan, dengan skor 3-2 pada laga terakhir penyisihan Grup G Kualifikasi Piala Asia U-19 di Stadion Gelora Bung Karno, Jakarta, Sabtu (12/10/2013), dan memastikan tiket menuju putaran final.

Hattrick Evan Dimas membawa Indonesia menjadi juara grup dengan nilai sempurna sehingga meraih tiket putaran final Piala Asia U-19 yang akan berlangsung di Myanmar tahun 2014. Indonesia menyapu bersih tiga partai yang dilakoni, mulai dengan kemenangan 4-0 atas Laos disusul kemenangan 2-0 atas Filipina, sebelum melumat Korea yang berstatus juara bertahan dan peraih 12 gelar turnamen ini.

Kemenangan Garuda Muda atas Taeguk Warriors bukan sebuah kebetulan. Permainan tiki-taka ala Spanyol dipadu skill individu yang mumpuni serta stamina memadai, membuat permainan tim besutan pelatih Indra Sjafri ini sulit dibendung.

Tengok saja bagaimana kocar-kacirnya pertahanan Korea sehingga Evan Dimas bisa mencetak tiga gol. Aksi individu Maldini di sayap kanan serta Ilham Udin di sayap kiri pun memperlihatkan bagaimana daya gedor tim Merah Putih, yang beberapa waktu lalu menjadi penguasa Asia Tenggara dengan menjadi juara Piala AFF U-19.

"Mari kita rayakan bersama keberhasilan para pemain. Ini dipersembahkan untuk seluruh rakyat Indonesia," demikian pernyataan Indra seusai kemenangan timnya.

Melewati fase kualifikasi, pekerjaan berat sudah menanti Garuda Jaya yang akan bertarung di eventsesungguhnya, yakni putaran final di Myanmar tahun depan. Di sana, Evan Dimas dan kawan-kawan akan bertemu lawan-lawan yang dipastikan akan sangat berat.

Sejauh ini, sudah 12 tim yang memastikan diri lolos (termasuk tuan rumah). Australia, China, Iran, Irak, Oman, Jepang, Korea Utara, dan Uni Emirat Arab sudah menunggu. Vietnam, yang dikalahkan Indonesia di final Piala AFF, juga telah meraih tiket menuju Myanmar, di samping Korea Selatan yang lolos dengan status satu dari enam runner-up terbaik.

Melihat gaya bermain dan agresivitas yang diperlihatkan sejak Piala AFF lalu hingga tiga laga kualifikasi ini, harapan tinggi bisa disematkan kepada para Garuda Muda. Bahkan pelatih dengan gamblang menyebut saat ini Indonesia sudah menjelma jadi raksasa Asia.

"Kalian lihat sendiri, ini membuktikan kalau siapa pun bisa kita lawan. Tadi, kita tidak hanya menang. Mereka juga kita main-mainin. Mulai saat ini, kita harus berpikir bahwa Indonesia adalah raksasa Asia," ujar Indra seusai kemenangan atas Korea.JAKARTA, Kompas.com — Lupakan sejenak hiruk-pikuk kasus korupsi dan berbagai krisis yang sedang melanda Tanah Air. Marilah sesaat kita larut dalam euforia keberhasilan tim nasional U-19, yang baru saja menumpas raksasa sepak bola Asia, Korea Selatan, dengan skor 3-2 pada laga terakhir penyisihan Grup G Kualifikasi Piala Asia U-19 di Stadion Gelora Bung Karno, Jakarta, Sabtu (12/10/2013), dan memastikan tiket menuju putaran final.

Hattrick Evan Dimas membawa Indonesia menjadi juara grup dengan nilai sempurna sehingga meraih tiket putaran final Piala Asia U-19 yang akan berlangsung di Myanmar tahun 2014. Indonesia menyapu bersih tiga partai yang dilakoni, mulai dengan kemenangan 4-0 atas Laos disusul kemenangan 2-0 atas Filipina, sebelum melumat Korea yang berstatus juara bertahan dan peraih 12 gelar turnamen ini.

Kemenangan Garuda Muda atas Taeguk Warriors bukan sebuah kebetulan. Permainan tiki-taka ala Spanyol dipadu skill individu yang mumpuni serta stamina memadai, membuat permainan tim besutan pelatih Indra Sjafri ini sulit dibendung.

Tengok saja bagaimana kocar-kacirnya pertahanan Korea sehingga Evan Dimas bisa mencetak tiga gol. Aksi individu Maldini di sayap kanan serta Ilham Udin di sayap kiri pun memperlihatkan bagaimana daya gedor tim Merah Putih, yang beberapa waktu lalu menjadi penguasa Asia Tenggara dengan menjadi juara Piala AFF U-19.

"Mari kita rayakan bersama keberhasilan para pemain. Ini dipersembahkan untuk seluruh rakyat Indonesia," demikian pernyataan Indra seusai kemenangan timnya.

Melewati fase kualifikasi, pekerjaan berat sudah menanti Garuda Jaya yang akan bertarung di eventsesungguhnya, yakni putaran final di Myanmar tahun depan. Di sana, Evan Dimas dan kawan-kawan akan bertemu lawan-lawan yang dipastikan akan sangat berat.

Sejauh ini, sudah 12 tim yang memastikan diri lolos (termasuk tuan rumah). Australia, China, Iran, Irak, Oman, Jepang, Korea Utara, dan Uni Emirat Arab sudah menunggu. Vietnam, yang dikalahkan Indonesia di final Piala AFF, juga telah meraih tiket menuju Myanmar, di samping Korea Selatan yang lolos dengan status satu dari enam runner-up terbaik.

Melihat gaya bermain dan agresivitas yang diperlihatkan sejak Piala AFF lalu hingga tiga laga kualifikasi ini, harapan tinggi bisa disematkan kepada para Garuda Muda. Bahkan pelatih dengan gamblang menyebut saat ini Indonesia sudah menjelma jadi raksasa Asia.

"Kalian lihat sendiri, ini membuktikan kalau siapa pun bisa kita lawan. Tadi, kita tidak hanya menang. Mereka juga kita main-mainin. Mulai saat ini, kita harus berpikir bahwa Indonesia adalah raksasa Asia," ujar Indra seusai kemenangan atas Korea.