Latest Post

Nokia's MeeGo device will be called N950, will be out this year

Written By Unknown on Monday, 28 February 2011 | 20:36

Despite the shift towards Windows Phone 7, Nokia will still ship a MeeGo device this year. It's going to be the successor to the Nokia N900 and will be called the N950. We don't have a photo of the device yet, but Nokia gave reassurances that they are committed to MeeGo, Symbian, Qt and S40 too.
At Nokia's Developer Day, Nokia's CTO Rich Green gave an extensive talk about the future of current Nokia platforms, MeeGo included. He said that they're working hard on the N950 and have come up with some "very elegant" hardware and interesting UI.
That's all we have on the Nokia N950 - the Nokia N9 (which was rumored as the coming MeeGo device) might have been canceled and Nokia showed absolutely no new devices at the MWC.
Anyway, here's a video of the talk. It starts off with N950:

Green assured the attending developers that the Nokia N950 is well-stocked as a developer platform and says "we'll see how that goes". It sounds like the N950 is aimed more towards devs than the mass market user (not surprising since MeeGo was re-targeted towards long-term market exploration).
Nokia's strategy still relies on Qt development for both Symbian and MeeGo and pushing forward with Java on Series 40, so work on those platforms continues. S40 will be getting a new Ovi Browser that aims to bring mobile Internet connectivity to hundreds of millions of people.

Solved! Ubuntu 10.04 Lucid Lynx Shutdown Trouble

Written By Unknown on Sunday, 27 February 2011 | 00:19



In so many cases, we always desire to make everything we had worked in perfect. But, we often make mistakes as the 'side-effect' of our desire for making everything perfect. We sacrifice quality in order to pursue radical change. We leave stability in order to pursue radical development. It is not wrong thinking but I think we should consider the most moderate value between revolution and stability -and quality.



I'm talking this issue in order to show my review about the recent developments of many major Linux distributions. My central point is Ubuntu Linux. For many years ago, this distribution was well known as a high quality developed desktop distribution, and well known as one of best Linux distributions for desktop computing. But, since Ubuntu 10.04 LTS, there left many disturbing bugs. Yes I can successfully solved many of those bugs in the further days, but maybe it is good and wise for us to not too desire to pursue revolution but forgetting quality (in the complete context). Integrity not viewed just by the aggressive appearance, but also viewed completely alongside stability, quality and -the most important- effectiveness.



My central point for the Ubuntu new invention is Indicator Applet Session. This is a great applet which we can update our status of our Internet social networking accounts, and also, we can get some main functions to turn on, off, and restart our computer. But what was the great news of? That applet is badly not working! We can't shut the computer down by using that applet and so what next? So we can do that by typing sudo halt in terminal, but what the hell is it? Is this the revolution? Oh God!



Enough for my complain about. Anyway, I have successfully solved that bug (horey!). The very simple way to solve that bug is by installing apmd package. This is a critical package to manage power management. In the previous versions (Ubuntu 9.04 and below), this package is presented built-in. But I didn't know the reason why, in the Ubuntu 10.04, this package was removed. Now, I can logout, turn off, and restart my computer by accessing shutdown button in the Indicator Applet Session, with comfortable :D



Bravo Linux!

Mengatur Window Layout GIMP 2.6 Agar Seperti GIMP 2.4



GIMP adalah image editing dan manipulating program yang honorable di dunia Linux dan juga di platform lain. Satu yang saya suka dari GIMP adalah jendelanya dibagi menjadi tiga, dimana hal ini sangat berguna bila kita memakai monitor yang tidak terlalu lebar (dibawah 17 inchi). Kita bisa membuat main window sebagai window yang diatas dan bisa menjelajahi image yang sedang kita edit dengan lebih leluasa.



Namun sayang seribu sayang, di GIMP versi 2.6, pengaturan itu justru dihilangkan. Main window tempat kita mengedit image justru dibuat hanya bisa berada dibawah dan tidak bisa diatas window Toolbox dan window Layer. Ini adalah keputusan yang kurang bijak menurut saya, karena sangat mengganggu bila kita memakai monitor yang ukuran sedang-sedang saja.



Tapi ternyata, pengaturan ini bisa dikembalikan seperti pada pengaturan GIMP versi 2.4 ke bawah. Caranya sangat simpel. Pergi ke main window, dan pergi ke menu Edit>Preferences>Window Management. Di jendela Window Management, ubah kedua opsi pada Window Manager Hints dari Utility Window ke Normal Window. Setelah itu OK, dan kita di minta restart GIMP.



Sekarang, interface GIMP kita sudah seperti GIMP 2.4 ke bawah. Kita bisa berpindah antar window dengan nyaman, dan sangat berguna bagi kita yang bekerja di monitor ukuran sedang-sedang saja :D

Wi-Fi Hot Spots: 6 Ways To Use public Wi-Fi hot spots safely

Written By Unknown on Tuesday, 22 February 2011 | 07:24

Wi-Fi
Places like Starbucks, neighborhood cafes, Airports, and universities are all jumping on the "free Wi-Fi" bandwagon--hey, it's trendy. As a result, more of us are connecting to these networks without realizing the security risks.

But did you read the fine print? Wi-Fi hot spots are unsecured networks that hackers like to take advantage of. Everything--including your data, account information and passwords, Google searches, and finances--can become available to the hacker who wants it badly enough.

So before you pay your bills or write your genius business plan at the local cafe, get to know these six useful practices:

1. Be aware that you're never secure. 

Wi-Fi hot spots are always unsecured connections, so you and potential hackers are hanging out in the same network bubble. It's not difficult for one to tap into your activity and sniff out your personal information. So, even if a hot spot requires a password or guides you through a log-in screen, you're still at risk.

2. Harness built-in security tools. 

Mac OS X and Windows have built-in security features that you should take advantage of. Enable your firewall (through security settings) and check off "Block all incoming traffic." This setting will keep most of the bad guys out. Disabling file sharing (shown in the video above) is also an important security measure.

3. Protect your passwords. 

Hackers can retrieve saved passwords from your Registry or install keyloggers, which make your keyboard activity available to them (including passwords you type in). Install something like LastPass, a browser add-on that stores your passwords in the cloud--you'll never have to type a thing and passwords won't be saved on your computer.

4. Look for the padlock. 

Web sites that use HTTPS encrypt your activity, so anything you do on that site is confidential. Look for a padlock in the address bar, or simply check the URL for "https://..." Not all Web sites do this, but you can download HTTPS Everywhere, an add-on that will force an encrypted connection on many popular sites.

5. Check the network name. 

In an attempt to lure you in, hackers might set up fake networks like "FREE Public Wi-Fi", or "Starbucks FREE." Check with the venue's employees to confirm the name of their network.

6. Use common sense. 

You should treat all open networks as a security risk. Don't do any banking, online shopping, or other activities that would expose your private information. If you wouldn't be willing to share it with the public, it can wait until you get home.

Do you have best practices for using Wi-Fi hot spots? Share with us in the comments below!

You Can't Be A Better Programmer in 21 Days

Written By Unknown on Saturday, 19 February 2011 | 08:39


People take a first programming course and they think they’re done - they’re programmers! Well not so fast. There is more to it than that just as there was more to learning and even reading when I finished the first grade. Others come to me and tell me they want to learn enough programming to create a specific application (rarely one that is that easy) or the next Halo 3 (never that easy) or something. There is this cram school mentality that seems to overtake so many people. Unfortunately, programming like so many things takes a while to really, deeply learn.

I ran across the article Teach Yourself Programming in Ten Years by Peter Norvig recently and it does a good job of addressing this very issue.

Why is everyone in such a rush?

Walk into any bookstore, and you'll see how to Teach Yourself Java in 7 Days alongside endless variations offering to teach Visual Basic, Windows, the Internet, and so on in a few days or hours. I did the following power search at Amazon.com:

     pubdate: after 1992 and title: days and
      (title: learn or title: teach yourself)

and got back 248 hits. The first 78 were computer books (number 79 was Learn Bengali in 30 days). I replaced "days" with "hours" and got remarkably similar results: 253 more books, with 77 computer books followed by Teach Yourself Grammar and Style in 24 Hours at number 78. Out of the top 200 total, 96% were computer books.

The conclusion is that either people are in a big rush to learn about computers, or that computers are somehow fabulously easier to learn than anything else. There are no books on how to learn Beethoven, or Quantum Physics, or even Dog Grooming in a few days. Felleisen et al. give a nod to this trend in their book How to Design Programs, when they say "Bad programming is easy. Idiots can learn it in 21 days, even if they are dummies.

Let's analyze what a title like Learn C++ in Three Days could mean:

  • Learn: In 3 days you won't have time to write several significant programs, and learn from your successes and failures with them. You won't have time to work with an experienced programmer and understand what it is like to live in a C++ environment. In short, you won't have time to learn much. So the book can only be talking about a superficial familiarity, not a deep understanding. As Alexander Pope said, a little learning is a dangerous thing.

  • C++: In 3 days you might be able to learn some of the syntax of C++ (if you already know another language), but you couldn't learn much about how to use the language. In short, if you were, say, a Basic programmer, you could learn to write programs in the style of Basic using C++ syntax, but you couldn't learn what C++ is actually good (and bad) for. So what's the point? Alan Perlis once said: "A language that doesn't affect the way you think about programming, is not worth knowing". One possible point is that you have to learn a tiny bit of C++ (or more likely, something like JavaScript or Flash's Flex) because you need to interface with an existing tool to accomplish a specific task. But then you're not learning how to program; you're learning to accomplish that task.

  • in Three Days: Unfortunately, this is not enough, as the next section shows.

Teach Yourself Programming in Ten Years

Researchers (Bloom (1985), Bryan & Harter (1899), Hayes (1989), Simmon & Chase (1973)) have shown it takes about ten years to develop expertise in any of a wide variety of areas, including chess playing, music composition, telegraph operation, painting, piano playing, swimming, tennis, and research in neuropsychology and topology. The key is deliberative practice: not just doing it again and again, but challenging yourself with a task that is just beyond your current ability, trying it, analyzing your performance while and after doing it, and correcting any mistakes. Then repeat. And repeat again.

There appear to be no real shortcuts: even Mozart, who was a musical prodigy at age 4, took 13 more years before he began to produce world-class music. In another genre, the Beatles seemed to burst onto the scene with a string of #1 hits and an appearance on the Ed Sullivan show in 1964. But they had been playing small clubs in Liverpool and Hamburg since 1957, and while they had mass appeal early on, their first great critical success, Sgt. Peppers, was released in 1967. Malcolm Gladwell reports that a study of students at the Berlin Academy of Music compared the top, middle, and bottom third of the class and asked them how much they had practiced:

Everyone, from all three groups, started playing at roughly the same time - around the age of five. In those first few years, everyone practised roughly the same amount - about two or three hours a week. But around the age of eight real differences started to emerge. The students who would end up as the best in their class began to practise more than everyone else: six hours a week by age nine, eight by age 12, 16 a week by age 14, and up and up, until by the age of 20 they were practising well over 30 hours a week. By the age of 20, the elite performers had all totalled 10,000 hours of practice over the course of their lives. The merely good students had totalled, by contrast, 8,000 hours, and the future music teachers just over 4,000 hours.

So it may be that 10,000 hours, not 10 years, is the magic number. Samuel Johnson (1709-1784) thought it took longer: "Excellence in any department can be attained only by the labor of a lifetime; it is not to be purchased at a lesser price." And Chaucer (1340-1400) complained "the lyf so short, the craft so long to lerne." Hippocrates (c. 400BC) is known for the excerpt "ars longa, vita brevis", which is part of the longer quotation "Ars longa, vita brevis, occasio praeceps, experimentum periculosum, iudicium difficile", which in English renders as "Life is short, [the] craft long, opportunity fleeting, experiment treacherous, judgment difficult." Although in Latin, ars can mean either art or craft, in the original Greek the word "techne" can only mean "skill", not "art".

Here's my recipe for programming success:
  • Get interested in programming, and do some because it is fun. Make sure that it keeps being enough fun so that you will be willing to put in ten years.
  • Talk to other programmers; read other programs. This is more important than any book or training course.
  • Program. The best kind of learning is learning by doing. To put it more technically, "the maximal level of performance for individuals in a given domain is not attained automatically as a function of extended experience, but the level of performance can be increased even by highly experienced individuals as a result of deliberate efforts to improve." (p. 366) and "the most effective learning requires a well-defined task with an appropriate difficulty level for the particular individual, informative feedback, and opportunities for repetition and corrections of errors." (p. 20-21) The book Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life is an interesting reference for this viewpoint.
  • If you want, put in four years at a college (or more at a graduate school). This will give you access to some jobs that require credentials, and it will give you a deeper understanding of the field, but if you don't enjoy school, you can (with some dedication) get similar experience on the job. In any case, book learning alone won't be enough. "Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter" says Eric Raymond, author of The New Hacker's Dictionary. One of the best programmers I ever hired had only a High School degree; he's produced a lot of great software, has his own news group, and made enough in stock options to buy his own nightclub.
  • Work on projects with other programmers. Be the best programmer on some projects; be the worst on some others. When you're the best, you get to test your abilities to lead a project, and to inspire others with your vision. When you're the worst, you learn what the masters do, and you learn what they don't like to do (because they make you do it for them).
  • Work on projects after other programmers. Be involved in understanding a program written by someone else. See what it takes to understand and fix it when the original programmers are not around. Think about how to design your programs to make it easier for those who will maintain it after you.
  • Learn at least a half dozen programming languages. Include one language that supports class abstractions (like Java or C++), one that supports functional abstraction (like Lisp or ML), one that supports syntactic abstraction (like Lisp), one that supports declarative specifications (like Prolog or C++ templates), one that supports coroutines (like Icon or Scheme), and one that supports parallelism (like Sisal).
  • Remember that there is a "computer" in "computer science". Know how long it takes your computer to execute an instruction, fetch a word from memory (with and without a cache miss), read consecutive words from disk, and seek to a new location on disk. (Answers here.)
  • Get involved in a language standardization effort. It could be the ANSI C++ committee, or it could be deciding if your local coding style will have 2 or 4 space indentation levels. Either way, you learn about what other people like in a language, how deeply they feel so, and perhaps even a little about why they feel so.
  • Have the good sense to get off the language standardization effort as quickly as possible.

With all that in mind, its questionable how far you can get just by book learning. Before my first child was born, I read all the How To books, and still felt like a clueless novice. 30 Months later, when my second child was due, did I go back to the books for a refresher? No. Instead, I relied on my personal experience, which turned out to be far more useful and reassuring to me than the thousands of pages written by experts.

Fred Brooks, in his essay No Silver Bullet identified a three-part plan for finding great software designers:

  1. Systematically identify top designers as early as possible.
  2. Assign a career mentor to be responsible for the development of the prospect and carefully keep a career file.
  3. Provide opportunities for growing designers to interact and stimulate each other.

This assumes that some people already have the qualities necessary for being a great designer; the job is to properly coax them along. Alan Perlis put it more succinctly: "Everyone can be taught to sculpt: Michelangelo would have had to be taught how not to. So it is with the great programmers".

So go ahead and buy that Java book; you'll probably get some use out of it. But you won't change your life, or your real overall expertise as a programmer in 24 hours, days, or even months.

References

Bloom, Benjamin (ed.) Developing Talent in Young People, Ballantine, 1985.

Brooks, Fred, No Silver Bullets, IEEE Computer, vol. 20, no. 4, 1987, p. 10-19.

Bryan, W.L. & Harter, N. "Studies on the telegraphic language: The acquisition of a hierarchy of habits. Psychology Review, 1899, 8, 345-375

Hayes, John R., The Complete Problem Solver, 2nd Edition Lawrence Erlbaum, 1989.

Chase, William G. & Simon, Herbert A. "Perception in Chess" Cognitive Psychology, 1973, 4, 55-81.

Lave, Jean, Cognition in Practice: Mind, Mathematics and Culture in Everyday Life, Cambridge University Press, 1988.

Answers

Approximate timing for various operations on a typical PC:

execute typical instruction1/1,000,000,000 sec = 1 nanosec
fetch from L1 cache memory0.5 nanosec
branch misprediction5 nanosec
fetch from L2 cache memory7 nanosec
Mutex lock/unlock25 nanosec
fetch from main memory100 nanosec
send 2K bytes over 1Gbps network20,000 nanosec
read 1MB sequentially from memory250,000 nanosec
fetch from new disk location (seek)8,000,000 nanosec
read 1MB sequentially from disk20,000,000 nanosec
send packet US to Europe and back150 milliseconds = 150,000,000 nanosec

Appendix: Language Choice

Several people have asked what programming language they should learn first. There is no one answer, but consider these points:

Use your friends. When asked "what operating system should I use, Windows, Unix, or Mac?", my answer is usually: "use whatever your friends use." The advantage you get from learning from your friends will offset any intrinsic difference between OS, or between programming languages. Also consider your future friends: the community of programmers that you will be a part of if you continue. Does your chosen language have a large growing community or a small dying one? Are there books, web sites, and online forums to get answers from? Do you like the people in those forums?

Keep it simple. Programming languages such as C++ and Java are designed for professional development by large teams of experienced programmers who are concerned about the run-time efficiency of their code. As a result, these languages have complicated parts designed for these circumstances. You're concerned with learning to program. You don't need that complication. You want a language that was designed to be easy to learn and remember by a single new programmer.

Play.
Which way would you rather learn to play the piano: the normal, interactive way, in which you hear each note as soon as you hit a key, or "batch" mode, in which you only hear the notes after you finish a whole song? Clearly, interactive mode makes learning easier for the piano, and also for programming. Insist on a language with an interactive mode and use it.

Given these criteria, my recommendations for a first programming language would be Python or Scheme. But your circumstances may vary, and there are other good choices. If your age is a single-digit, you might prefer Alice or Squeak (older learners might also enjoy these). The important thing is that you choose and get started.

Appendix: Books and Other Resources

Several people have asked what books and web pages they should learn from. I repeat that "book learning alone won't be enough" but I can recommend the following:

Scheme: Instructor's Manual t/a Structure and Interpretation of Computer Programs - 2nd Edition is probably the best introduction to computer science, and it does teach programming as a way of understanding the computer science. You can see online videos of lectures on this book, as well as the complete text online. The book is challenging and will weed out some people who perhaps could be successful with another approach.

Scheme: How to Design Programs is one of the best books on how to actually design programs in an elegant and functional way.

Python: Python Programming: An Introduction to Computer Science is a good introduction using Python.

Python: Several online tutorials are available at Python.org.

Oz: Concepts, Techniques, and Models of Computer Programming (Van Roy & Haridi) is seen by some as the modern-day successor to Abelson & Sussman. It is a tour through the big ideas of programming, covering a wider range than Abelson & Sussman while being perhaps easier to read and follow. It uses a language, Oz, that is not widely known but serves as a basis for learning other languages.

How to become a better Programmer

This will give you a few hints and some help to becoming a better programmer. So read on and enjoy! Programming can be a lot of fun.

Go for it!

1. Use a bigger font size.

This is ridiculously easy -- but it works.

Go to your favourite IDE, and crank the font-size up. I switched from 10pt to 14 pt. The difference is that a lot less code fits on the screen at once.

The effect is: you're forced to write shorter methods. And that's a Good Thing.

(Scott Hanselman recommends that one)

  1. Make hard-coded strings look ugly.I learnt this from Joe Cooney.
    Go to your favourite IDE, and set it so that literal strings stand right out -- for example a yellow background with a red font. Make 'em ugly. Damn ugly. This will encourage you to perform less hard coding, and to notice when you are embedding strings in your text.

  2. Pick an 'obscure' keyword and master itDo you fail to yield?. Is there a keyword you never use?
    Every keyword has a purpose. Learn to master those mystery keywords and your powers will become extraordinary.
    Here are lists for a few .net languages: C#, VB.net, F#.

  3. Increase code-coverage by 1%Don't kill yourself striving for 100% coverage of code with automated unit tests. But take a few minutes to increase your coverage by 1%.
    Most likely, that means going from 0% to 1%. And that's the biggest improvement of all.
    Find a particularly ghoulish regular expression. Or a critical piece of business logic. These things can't be trusted without tests.

  4. Read the code from an open source projectSometimes, when I'm looking at the code of a complete stranger, I get that same, weird feeling I get when I'm creeping through my neighbour's house. Picking up their stuff, looking through their fridge.
    Learn to overcome the creepy sensation, and bring on the learn.
    Maybe start with Hanselman's Weekly Source Code series.

  5. Run a static analysis tool against your codeUse fxcop, or StyleCop, clone detective, ndepend, the code metrics feature of VS 2008, or any other static analysis tool of your choice.
    Uncover your greatest weakness. Even a cursory glance at the output will leave you distraught at just how much room you've got for improvement.

  6. Pick an ugly method to refactorYou know the method. That method you're particularly ashamed of. That one that's long and ugly and horrible. And it's crucial to the whole application.
    You don't have to polish it from a turd to a diamond, but just neaten it up a little. Rename a variable. Hoist part of it out into a separate method. Start simple. The momentum will increase. Watch out.

  7. Stop reading, start writing.And don't just write. Write a compiler!
    This ol' msdn article is a good place to start. Joel Pobar will get you writing your own language compiler in but a handful of minutes.
That's all I've come up with for now. But what've you got?
What are some activities that helped you be a better programmer?

Best Books on Hacking and Defense Security

Written By Unknown on Tuesday, 15 February 2011 | 09:06

hacking%2Bbooks
These Hacking books are all part of a genre of books that show, in detail, the methods, tools, tricks and techniques used by professional hackers and crackers to find and exploit the holes in your network. Rather than simply teaching people "how to hack" these hacking books go one step further and tell you how to protect yourself and defend your network from these attacks. These are my Top Picks and Best Collated Hacking Books for this category of books.

1. Hacking: The Art of Exploitation, 2nd Edition

Hacking is the art of creative problem solving, whether that means finding an unconventional solution to a difficult problem or exploiting holes in sloppy programming. Many people call themselves hackers, but few have the strong technical foundation needed to really push the envelope.

Rather than merely showing how to run existing exploits, author Jon Erickson explains how arcane hacking techniques actually work. To share the art and science of hacking in a way that is accessible to everyone, Hacking: The Art of Exploitation, 2nd Edition introduces the fundamentals of C programming from a hacker's perspective.

Hackers are always pushing the boundaries, investigating the unknown, and evolving their art. Even if you don't already know how to program, Hacking: The Art of Exploitation, 2nd Edition will give you a complete picture of programming, machine architecture, network communications, and existing hacking techniques. Combine this knowledge with the included Linux environment, and all you need is your own creativity.

2. Hacking Exposed: Network Security Secrets and Solutions, Sixth Edition

A lot of computer-security textbooks approach the subject from a defensive point of view. "Do this, and probably you'll survive a particular kind of attack," they say. In refreshing contrast, Hacking Exposed, Second Edition talks about security from an offensive angle. A Jane's-like catalog of the weaponry that black-hat hackers use is laid out in full. Readers see what programs are out there, get a rundown on what the programs can do, and benefit from detailed explanations of concepts (such as wardialing and rootkits) that most system administrators kind of understand, but perhaps not in detail.

The book also walks through how to use the more powerful and popular hacker software, including L0phtCrack. This new edition has been updated extensively, largely with the results of "honeypot" exercises (in which attacks on sacrificial machines are monitored) and Windows 2000 public security trials. There's a lot of new stuff on e-mail worms, distributed denial-of-service (DDoS) attacks, and attacks that involve routing protocols.

3. Hacking For Dummies

It's bad enough when a hack occurs-stealing identities, bank accounts, and personal information. But when the hack could have been prevented by taking basic security measures-like the ones described in this book-somehow that makes a bad situation even worse. This beginner guide to hacking examines some of the best security measures that exist and has been updated to cover the latest hacks for Windows 7 and the newest version of Linux.

Offering increased coverage of Web application hacks, database hacks, VoIP hacks, and mobile computing hacks, this guide addresses a wide range of vulnerabilities and how to identify and prevent them. Plus, you'll examine why ethical hacking is oftentimes the only way to find security flaws, which can then prevent any future malicious attacks.
  • Explores the malicious hackers's mindset so that you can counteract or avoid attacks completely
  • Covers developing strategies for reporting vulnerabilities, managing security changes, and putting anti-hacking policies and procedures in place
  • Completely updated to examine the latest hacks to Windows 7 and the newest version of Linux
  • Explains ethical hacking and why it is essential
Hacking For Dummies, 3rd Edition shows you how to put all the necessary security measures in place so that you avoid becoming a victim of malicious hacking.

4. The Best of 2600: A Hacker Odyssey

Since 1984, the quarterly magazine 2600 has provided fascinating articles for readers who are curious about technology. Find the best of the magazine’s writing in Best of 2600: A Hacker Odyssey, a collection of the strongest, most interesting, and often most controversial articles covering 24 years of changes in technology, all from a hacker’s perspective. Included are stories about the creation of the infamous tone dialer “red box” that allowed hackers to make free phone calls from payphones, the founding of the Electronic Frontier Foundation, and the insecurity of modern locks.

5. Social Engineering: The Art of Human Hacking

From elicitation, pretexting, influence and manipulation all aspects of social engineering are picked apart, discussed and explained by using real world examples, personal experience and the science behind them to unraveled the mystery in social engineering.

Kevin Mitnick—one of the most famous social engineers in the world—popularized the term “social engineering.” He explained that it is much easier to trick someone into revealing a password for a system than to exert the effort of hacking into the system. Mitnick claims that this social engineering tactic was the single-most effective method in his arsenal. This indispensable book examines a variety of maneuvers that are aimed at deceiving unsuspecting victims, while it also addresses ways to prevent social engineering threats.
  • Examines social engineering, the science of influencing a target to perform a desired task or divulge information
  • Arms you with invaluable information about the many methods of trickery that hackers use in order to gather information with the intent of executing identity theft, fraud, or gaining computer system access
  • Reveals vital steps for preventing social engineering threats
Social Engineering: The Art of Human Hacking does its part to prepare you against nefarious hackers—now you can do your part by putting to good use the critical information within its pages

6. Hacking Exposed Linux, 3rd Edition

The Latest Linux Security Solutions
This authoritative guide will help you secure your Linux network--whether you use Linux as a desktop OS, for Internet services, for telecommunications, or for wireless services. Completely rewritten the ISECOM way, Hacking Exposed Linux, Third Edition provides the most up-to-date coverage available from a large team of topic-focused experts. The book is based on the latest ISECOM security research and shows you, in full detail, how to lock out intruders  and defend your Linux systems against catastrophic attacks.

  • Secure Linux by using attacks and countermeasures from the latest OSSTMM research
  • Follow attack techniques of PSTN, ISDN, and PSDN over Linux
  • Harden VoIP, Bluetooth, RF, RFID, and IR devices on Linux
  • Block Linux signal jamming, cloning, and eavesdropping attacks
  • Apply Trusted Computing and cryptography tools for your best defense
  • Fix vulnerabilities in DNS, SMTP, and Web 2.0 services
  • Prevent SPAM, Trojan, phishing, DoS, and DDoS exploits
  • Find and repair errors in C code with static analysis and Hoare Logic
If you really want to enhance your hacking skills I employ you to get hold of these best hacking books. I will be adding more useful hacking books that can help develop your ability to solve both simple and complex computer problems because that what hacking generally means.

    Customer Service Personified.

    "There's so much we can do in this crazy world with a little effort and imagination." Especially if you really know your product/service and why your customers are your customers, as is perfectly demonstrated here

    Changing Ubuntu Usplash Screen Easily

    I remember when I first booted up Ubuntu on my computer five years ago that I wasn’t very impressed with the dull black usplash screen. It gave me a feeling that I was back to the Windows 95 era.

    five years down the road, even though the Ubuntu team has made changes and improvements to the usplash screen, it is still nowhere close to beautiful. Luckily, a good thing about Linux (and Ubuntu) is that it is fully customizable and you can tweak every single part to your liking. That is to say, even though the default does not come with a beautiful usplash screen, you can still change ubuntu usplash screen to display your favorite image.

    Follow the guide below and you’ll be able to change Ubuntu splash screen in no time.

    In Ubuntu Intrepid, there is a bug that prevents you from setting your own usplash screen. To overcome this, we will remove the default usplash and install splashy.

    Removing the usplash

    Open up a terminal (Applications -> Accessories -> Terminal) and type the following command to remove the default usplash.

    sudo apt-get autoremove usplash

    Installing splashy

    Download the deb files for your machine:

    32-bit: libsplashy1_0.3.10-1_i386.deb, splashy_0.3.10-1_i386.deb

    64-bit: libsplashy1-dev_0.3.13-3ubuntu1_amd64.deb, libsplashy1_0.3.13-3ubuntu1_amd64.deb, splashy_0.3.13-3ubuntu1_amd64.deb

    Double click the packages to install splashy in your machine.

    Back to the terminal,

    sudo apt-get install splashy-themes

    Download your favorite splashy theme

    There are several places where you can find and download beautiful splashy themes. Here are some of them for your references.
    Once you have found your favorite theme, download it to your desktop. The file should be in tar.gz format.

    (If you are looking to create your own splash themes, here is the full tutorial)

    To install the file, type the following command in the terminal.

    sudo splashy_config –i /path-to-the-file.tar.gz
    sudo splashy_config -s name-of-the-file
    sudo update-initramfs -u


    To illustrate, assuming that I have downloaded a theme with the name custom-usplash.tar.gz onto my desktop. In my terminal, this is what I type:

    sudo splashy_config -i ~/Desktop/custom-usplash.tar.gz
    sudo splashy_config -s custom-usplash
    sudo update-initramfs -u


    It is important to type the command manually. Do not copy from here. WordPress displays the ‘-’ sign differently from the terminal. You might get errors if you copy/paste the command directly from here.

    Configuring the kernel entry

    In your terminal, type the following command to open the grub menu file

    gksu gedit /boot/grub/menu.lst

    Scroll down till you find the line

    kernel /boot/vmlinuz-2.6.27-7-generic root=UUID=82ace599-c240-456a-8df9-96b0b477d00b

    ro  single

    Append the phrase ‘vga=791′ (without the quote) to the end of the line (refer to the image below). Save and close the file.


    That’s it. Restart your computer. You should see your favorite usplash in action.

    Here are some of the splashy theme screenshots (taken from gnome-look):

    Aqua for splashy




    Simple bluish for splashy


     Ubuntu Glass



    Uninstallation

    To uninstall splashy and to return the usplash screen to the original setting, type the following in the terminal.


    sudo apt-get autoremove splashy splashy-themes
    sudo apt-get install usplash

    Your usplash screen should now return to the default setting.

    8 Handy / Useful Plugins For Gnome-Do

    Gnome-Do is a quicksilver-like application for Linux. By itself, it is only a simple application launcher, and seriously speaking, I find that there is nothing great about it on its own. However, if you make good use of the plugins in the repository, you will discover that there are tons of things  that you can do with it. Some of them are really a great time-saver and are able to make your life easier.

    So here it is, my recommendation of the 8 most useful plugins for Gnome-Do:

    1. Locate files



    I am definitely not the type who likes to dig several levels down the filesystem to locate a particular file. That is where the ‘Locate file‘ plugin is useful. Load up Gnome-Do (by pressing “Win + Space” key), type the first few characters of the filename and it will fetch the required files for you, no matter how secluded it is.

    2. Twitter


    Send your tweets from the Gnome-Do without having to open your Twitter client. A good and quick way to update your twitter without having too much distraction.

    3. Rhythmbox


    If you are like me, who enjoys playing music in the background while working, then this plugin is particularly useful. You can control your Rhythmbox to start playing your favorite track, pause, mute, unmute, volume up/down, change to next/previous track or to display current track info, all within the small Gnome-Do box.

    4. Gnome Terminal


    Gnome Terminal is useful because it eliminates the need for you to launch the Terminal. Being someone who love the command line interface more than the GUI, I simply love this plugin that allows me to type and run in the command line from Gnome-Do. (I used to have a Terminal shortcut icon on my dock so that I can launch the Terminal quickly. Ever since, I installed this plugin, I have removed the shortcut icon from my dock as I have no longer any use of it)

    5. Apturl


    Rather than typing ‘sudo apt-get install package-name’ everytime you wanted to install a package, now you just need to type the package name and Gnome-do will do the installation for you. The only caveat: this works only if you know the full name of the package and spell it correctly.

    6. Opensearch


    Opensearch allows you to search from your desktop using a variety of search engines. From Google, Yahoo, eBay, CreativeCommon, Answer.com, Amazon.com to Wikipedia, depending on what you want to find, you can easily get the information you want from Gnome-Do. I particularly like to use CreativeCommon to find photos for my blog.

    7. Flickr


    Quickly upload your photos to Flickr without accessing your Flickr account in the browser. You can choose to upload one photo or a bunch of photos from a particular folder. It works quietly in the background and does not provide any distraction.

    8) Tomboy Notes



    Do you feel disoriented without your Tomboy notes? Well, I do. I use Tomboy notes to keep reference to articles that I have read online. That’s why I find this plugin particularly useful. It provides you with a quick and neat way to create a new note or to dig up material from your existing Tomboy notes. It is very handy when you have all the information at your fingertips.

    (To install plugins, load up Gnome-Do by pressing ‘Win + Space’ keys. Click on the arrow at the top right hand corner and select ‘Preferences’. Go to the ‘Plugins’ tab and check the plugins you want.)

    What are your favorite Gnome-Do plugins?

    Becoming more dymanic with Launchy Keystroke Launcher

    Launchy, previously mentioned as a Windows start menu alternative, is a powerful keystroke based launcher for your Windows computer. Using Launchy, you can start programs, view files and folders, access bookmarks and perform other such tasks.

    In this post, I’ll talk about how you can use Launchy to stay more productive throughout the day. Trust me, once you get the hang of it, you’ll never touch icons or your start menu again. It just rocks. Before you go about using it, let’s have a look at some basic configuration options that you can alter to make Launchy work better for you.

    Installation and Basic Configuration


    Just grab the installer from the Sourceforge page, install Launchy and if the installation went smoothly – chances are you won’t see anything new. No system tray icon. No visible windows. Yup, nothing really. Until you press the ALT + SPACE keys together.



    You can now right click on the Launchy box and configure Launchy’s behaviour by going to Options. Keep the first option checked if you want Launchy to be shown all the time. I wouldn’t recommend it though, since it’d interrupt your use of other applications/windows. You can, of course, modify the shortcut key to anything you wish – just modify the Hotkey option.

    You can also set the transparency levels from the GUI Options. Launchy also provides alternate suggestions if you typed an unknown program name, you can set how many such items should be displayed.

    From the Skins tab, you can choose from a number of skins for Launchy to make it blend with your desktop. User-created skins are available on DeviantArt.com and also from the Sourceforge forum.

    Configure Indexing

    Launchy needs to index your programs before you can actually use it. By default, Launchy indexes your Start Menu folder since most programs are present there. However, if you want to be able to launch your programs or files, you need to tell Launchy where they’re present.


    To do this, use the Catalog tab and use the + button to add your commonly used directories to the Launchy index. You also need to specify what files need to be indexed – you might want your music files indexed, but not your .dll files. You can specify using the File Types box.

    By checking the Executables option, you’re telling it to index all .exe files (these are generally software programs installed on your computer).

    When you’re done with that, just click Rescan Catalog and now Launchy should have got all your program and files info into your index. Pretty quick too!

    Using Launchy


    Let’s take off with Launchy. First, just press the default hotkey combination. If you’ve modified the hotkey using the settings, press the ones that you’ve opted for. The launch window should popup.

    launchy_scrnJust type in a few letters of the app’s name and Launchy should instantly show its icon in the dock. Have a look at the screenshot on the right. I typed fox and it suggested Firefox. I launched it by pressing Enter

    launchy_scrn2

    In case you typed something and some other program instead of the program you intended to start shows up, just use the “down arrow” key for more programs that match your keyword. For instance, I typed Windows and it showed multiple suggestions.

    Launchy can also be used as a simple calculator and it can peform basic arithmetic operations.

    Portable Launchy

    If you’ve got a USB drive and it’s loaded with portable apps, then the portable version of Launchy is something you shouldn’t miss to check out. Just activate the Portable Mode option from the Options dialog (please see the first screenshot in this post).

    Then, copy the Launchy folder from C:\Program Files and put it on your USB Drive. Launchy will now store its configuration files in your thumb drive and will act as a portable launcher.

    Plugins

    Launchy supports plugins, and a few basic plugins are already present and can be activated. For instance, the Weby plugin indexes your Firefox and IE bookmarks so that you can open them quickly from Launchy.



    You might find some more useful plugins for Launchy here.

    16 Cool Ubuntu Tips For Linux Users

    Yesterday, I wrote about books that beginners can download and read to teach themselves Linux. Today in the Linux section we have something for the power users. Here are a few tips you should try out if you are an avid Ubuntu Linux user:



    1. Get lightning fast and clever at the command line

    You can use keyboard shortcuts and other command line tricks to make entering commands easier and faster. You might already know about the ‘tab’ key which completes partial commands and even file and directory names.

    Here are some other keyboard shortcuts you can use within terminal:

    Ctrl-aMove to the start of the line.
    Ctrl-eMove to the end of the line.
    Alt-] xMoves the cursor forward to the next occurrence of x.
    Alt-Ctrl-] xMoves the cursor backwards to the previous occurrence of x.
    Ctrl-uDelete from the cursor to the beginning of the line.
    Ctrl-kDelete from the cursor to the end of the line.
    Ctrl-wDelete from the cursor to the start of the word.
    Ctrl-yPastes text from the clipboard.
    Ctrl-lClear the screen leaving the current line at the top of the screen.
    Ctrl-x Ctrl-uUndo the last changes. Ctrl-_
    Alt-rUndo all changes to the line.
    Alt-Ctrl-eExpand command line.
    Ctrl-rIncremental reverse search of history.
    Alt-pNon-incremental reverse search of history.
    !!Execute last command in history
    !abcExecute last command in history beginning with abc
    !nExecute nth command in history
    ^abc^xyzReplace first occurrence of abc with xyz in last command and execute it

    2. Launch Ubuntu Linux Applications with keyboard

    There are two ways you can achieve this:

    • Use applications like Launchy or Gnome-Do that make it easier to launch applications by typing a few characters of the application’s name.
    •  Or you can summon gconf editor (Alt+F2 then type gconf-editor and hit enter), and navigate to apps > metacity > global_keybindings, double click on any of the run_command_N and type in the keyboard shortcut you want to assign to an application then make a mental note of the number N. Then go to apps > metacity > keybinding_commands and double click on command_N (N being the number you used above) and type in the command you want to run. As an example if you wanted to run Firefox you would type in firefox.


    3. Start from wherever you left off


    You can make Ubuntu remember the applications you had open when you last logged out, so that when you log back in again you’ll find all those applications running and you can resume right from where you left off.

    To achieve this go to System > Preferences > Startup Applications, then go to the options tab and check "Automatically remember running applications when logging out"

    4. Create a Separate Ubuntu Linux Home Partition


    New versions of Ubuntu arrive every 6 months. Although you can upgrade to the latest version via the update manager, sometimes the upgrade doesn’t work as expected so some users like to do a fresh clean install.

    The disadvantage with that of course is that you lose data you had in your home directory. To overcome this you can create a separate Home partition when you are installing Ubuntu, size it according to your requirements and then when you decide to install Ubuntu the next time, simply specify this partition as the Home partition (by choosing /home as the mount point).

    All your files and data on the Home partition will be preserved even after a fresh install.

    5. Update and Install Ubuntu Linux Software Without Internet Connection

    There are lots of way to do this, the easiest of all is to use APTonCD. APTonCD allows you to create CDs and DVD’s containing all the packages you want, which you can then use to install software on computers without an internet connection.

    Note that APTonCD requires you to have an internet connection (or downloaded packages) to create the installed media. However once the media is ready you don’t need an internet connection for any of the machines you want to install the software on. Insert the appropriate CD/DVD and use apt-get as you would normally.

    6. Install new fonts, Microsoft fonts and improve font rendering

    Ubuntu doesn’t offer many choices when it comes to the fonts. However you can easily install new fonts including those from Microsoft like Arial, Verdana, impact and many more. You can use different sites to find the kind of font you are looking for.
    7. Use PPAs, Install latest versions of software

    There are a lot of steps that a software has to go through before it becomes part of Ubuntu or becomes available through the Ubuntu repositories. While all those steps lend additional stability, it generally means that you don’t get the latest versions of all the software as soon as they are released.

    If you like to stay on the cutting edge, you can search for Personal Package Archives for your favorite software on Launchpad and add those to your installation’s software sources. I briefly touched on PPAs and how to use them here. If that seems like too much work, you can also download the latest deb packages and install them by double clicking (you won’t get automatic updates for the software if you install it this way).

    Remember you might get into an occasional trouble or two with the latest versions, but mostly it wouldn’t be catastrophic. You can always hop over to the Ubuntu Forums to get quick help.

    8. Be the root

    The root account is disabled by default on Ubuntu installations, mainly to prevent you from doing something you didn’t intend to do. However if you "promise to be careful" you can enable root account as follows:


    1. Type sudo passwd root and provide a root password.
    2. Then head on over to System > Administration > Login Window, go to the Security tab and check "Enable local system administrator login"

    You should now be able to login as root from the Login prompt. As an alternative you can use "sudo su" to provide your password and get root prompt.

    9. Run Windows applications and games


    Who wouldn’t like to play Counter Strike on Ubuntu (unless of course you are completely not into it) or perhaps even run Photoshop?

    10. Shorten boot time with profiling

    Ubuntu Linux devs have done a great job with the boot time, Jaunty is fast and Karmic is slotted to be even faster. There is however a bit more you can do by profiling your boot. Profiling lets Ubuntu make a list of all the files that are accessed during bootup, it then sorts the files according to how they are stored on your hard disk. So the next time the system is booted, the files would be read faster.

    To profile boot you need to follow these steps

        * At the grub menu highlight the kernel you boot most often.
        * Press e for edit.
        * Choose the line starting with kernel and press e again. Now add the word profile to the end of this line. Hit Enter and then press b to boot

    Note that while profiling, the system will boot slower this one time, the next time however you should see an improvement. Also keep in mind that all this is machine-dependent and also depends on the arrangement of files on your hard disk, so the difference you see might not be huge, or even nil in some cases.

    11. Try out different Ubuntu Linux Desktop Environments and Desktop Managers

    If you are looking for something different than the default Gnome interface, you should check out alternative desktop managers that you can use. If it is a complete Desktop Environment you are looking for, KDE4 has come a long way and is now impressively usable and fun. You can do a "sudo apt-get install kubuntu-desktop" to get KDE.

    12. Create a media center or a media server


    It would be great if you could easily browse and manage your huge collection of music, videos and pictures. Mesmerized by Windows Media Center’s slick interface? Wait till you see what all cool options you have to turn your Ubuntu system into a media center. You can even access your media collection on your phone, PSP or a different computer if you set up a media server on your Ubuntu machine.

    13. Share Firefox profile data with Windows

    Many people use Windows and Linux on the same machine. If you are one of them, there would have been times you couldn’t find that bookmark you created or password you stored when you were using Firefox from within Windows. For different computers you can of course use Weave.

    14. Customize Nautilus to your liking


    Nautilus is the default file manager on Ubuntu. While you may be content with what it does, there is lots more you can make it do. You can use extensions to improve functionality and even add custom functionality to Nautilus

    15. Compile your own Kernel

    If you can’t find something to keep you busy for the weekend and you have your customization hat on, how about building a kernel to specifically meet your requirements? This is frankly more of a learning experience. Some might say that it enables you to use just the features and drivers you require, but if everything is working fine with the kernel supplied and you don’t have any interest in the Linux kernel, skip ahead this one is not for you.

    If however you require some of the experimental features of the kernel, or need it to be compiled in some other special way we say you check out this guide within Ubuntu Documentation.

    16. Change Usplash Screen and create a custom splash screen for GRUB

    So you didn’t count the last one? Here is another one then. A Usplash screen is Ubuntu text and a logo with a progress bar that you see when you boot up Ubuntu.

    If you would like to change that to something more interesting follow these steps. What better way to show your Linux fu than customizing the very first screen that appears? You can create a custom splash screen using one of your photos, GIMP and a little tweaking. Here is the how-to.

    Know some more tips or great hacks for Ubuntu Linux users? Sure you do, go ahead let us know about them in the comments.
     
    Support : Creating Website | Johny Template | Mas Template
    Copyright © 2011. Turorial Grapich Design and Blog Design - All Rights Reserved
    Template Created by Creating Website Published by Mas Template
    Proudly powered by Blogger