|
Sunday, January 31. 2010
Sikuli gets around this by using picture based computing. Instead of needing intimate knowledge of a particular API or language you simply use Sikuli script to take an action on an area of the screen it finds by you giving it a picture.
DownloadSquad: Sikuli uses screen shots to run scripts
Wednesday, April 29. 2009
I've recently finished Markoff's great book on how the 60s counterculture shaped the personal computer history. Today, I've come across an interesting interview by him with David Gelernter.
David Gelernter .....
"...prophesied the rise of the World Wide Web. He understood the idea half a decade before it happened." (John Markoff)
"...is a treasure in the world of computer science...the most articulate and thoughtful of the great living practitioners" (Jaron Lanier)
"...is one of the pioneers in getting many computers to work together and cooperate on solving a single problem, which is the future of computing." (Danny Hillis)
"...is one of the most brilliant and visionary computer scientists of our time." (Bill Joy)
Watch (or read) the interview at Edge: The Third Culture.
Follow-up: Read about his 'worst enemy', technology hater and terrorist Theodore Kaczynski ("The Unabomber") and his manifesto Industrial Society and its Future.
(...)
96. As for our constitutional rights, consider for example that of freedom of the press. We certainly don't mean to knock that right: it is very important tool for limiting concentration of political power and for keeping those who do have political power in line by publicly exposing any misbehavior on their part. But freedom of the press is of very little use to the average citizen as an individual. The mass media are mostly under the control of large organizations that are integrated into the system. Anyone who has a little money can have something printed, or can distribute it on the Internet or in some such way, but what he has to say will be swamped by the vast volume of material put out by the media, hence it will have no practical effect. (...) Even if these writings had had many readers, most of these readers would soon have forgotten what they had read as their minds were flooded by the mass of material to which the media expose them.
(...)
172. First let us postulate that the computer scientists succeed in developing intelligent machines that can do all things better than human beings can do them. In that case presumably all work will be done by vast, highly organized systems of machines and no human effort will be necessary. Either of two cases might occur. The machines might be permitted to make all of their own decisions without human oversight, or else human control over the machines might be retained.
173. If the machines are permitted to make all their own decisions, we can't make any conjectures as to the results, because it is impossible to guess how such machines might behave. We only point out that the fate of the human race would be at the mercy of the machines. It might be argued that the human race would never be foolish enough to hand over all the power to the machines. But we are suggesting neither that the human race would voluntarily turn power over to the machines nor that the machines would willfully seize power. What we do suggest is that the human race might easily permit itself to drift into a position of such dependence on the machines that it would have no practical choice but to accept all of the machines' decisions. As society and the problems that face it become more and more complex and machines become more and more intelligent, people will let machines make more of their decisions for them, simply because machine-made decisions will bring better result than man-made ones. Eventually a stage may be reached at which the decisions necessary to keep the system running will be so complex that human beings will be incapable of making them intelligently. At that stage the machines will be in effective control. People won't be able to just turn the machines off, because they will be so dependent on them that turning them off would amount to suicide.
174. On the other hand it is possible that human control over the machines may be retained. In that case the average man may have control over certain private machines of his own, such as his car or his personal computer, but control over large systems of machines will be in the hands of a tiny elite—just as it is today, but with two differences. Due to improved techniques the elite will have greater control over the masses; and because human work will no longer be necessary the masses will be superfluous, a useless burden on the system. If the elite is ruthless they may simply decide to exterminate the mass of humanity. If they are humane they may use propaganda or other psychological or biological techniques to reduce the birth rate until the mass of humanity becomes extinct, leaving the world to the elite. Or, if the elite consist of soft-hearted liberals, they may decide to play the role of good shepherds to the rest of the human race. They will see to it that everyone's physical needs are satisfied, that all children are raised under psychologically hygienic conditions, that everyone has a wholesome hobby to keep him busy, and that anyone who may become dissatisfied undergoes "treatment" to cure his "problem." Of course, life will be so purposeless that people will have to be biologically or psychologically engineered either to remove their need for the power process or to make them "sublimate" their drive for power into some harmless hobby. These engineered human beings may be happy in such a society, but they most certainly will not be free. They will have been reduced to the status of domestic animals.
175. But suppose now that the computer scientists do not succeed in developing artificial intelligence, so that human work remains necessary. Even so, machines will take care of more and more of the simpler tasks so that there will be an increasing surplus of human workers at the lower levels of ability. (We see this happening already. There are many people who find it difficult or impossible to get work, because for intellectual or psychological reasons they cannot acquire the level of training necessary to make themselves useful in the present system.) On those who are employed, ever-increasing demands will be placed; They will need more and more training, more and more ability, and will have to be ever more reliable, conforming and docile, because they will be more and more like cells of a giant organism. Their tasks will be increasingly specialized so that their work will be, in a sense, out of touch with the real world, being concentrated on one tiny slice of reality. The system will have to use any means that it can, whether psychological or biological, to engineer people to be docile, to have the abilities that the system requires and to "sublimate" their drive for power into some specialized task. But the statement that the people of such a society will have to be docile may require qualification. The society may find competitiveness useful, provided that ways are found of directing competitiveness into channels that serve that needs of the system. We can imagine a future society in which there is endless competition for positions of prestige and power. But no more than a very few people will ever reach the top, where the only real power is (see end of paragraph 163). Very repellent is a society in which a person can satisfy his needs for power only by pushing large numbers of other people out of the way and depriving them of their opportunity for power.
(...)
Wednesday, April 29. 2009
Java: Elliote Rusty Harold, Easier testing with EasyMock.
"Any time you have an interface that needs to return certain results for purposes of testing, you can just create a quick mock. It really is that easy."
PHP: Matt Butcher, Get to know the QueryPath PHP library
"The new QueryPath library, a PHP cousin of the jQuery JavaScript library, offers an efficient API for working with XML, HTML, and HTTP. From Web pages to Web services, SVG to SPARQL, RDF to Atom, QueryPath provides a robust yet simple API for contemporary Web development in PHP."
Grails: Scott Davis, Mastering Grails: Authentication and Authorization
"In this article, I continue building a "tiny little blog" named Blogito. You'll learn how to enable logins, limit activity based on whether or not the User is logged in, and even add in some authorization based on the User's role."
Friday, March 13. 2009
At the moment, I am preparing for 'my most important exam', which happened to bring me to the website of Markus Völter, one of the current experts in Model Driven Software Development and Product Line Engineering. In his list of recent publications, I found a nice (German) article about the Jetbrains Meta Programming System. I've heard of MPS before, but his introduction is nicely written and understandble. Basically, MPS is a nice editor and composer for Domain Specific Languages. What makes it interesting is that apparently you can combine your own DSL with other languages, for example to easily extend a base language like Java with your own concepts. The DSL code is then transparently translated into the base language.
Also, you can use it the other way round, and extend your own DSL with concepts from existing languages, for example Java expressions.
Continue reading "JetBrains Meta Programming System"
Thursday, February 26. 2009
Monday, January 26. 2009
Review Board is an open source tool developed by the VMware team to help with code reviews and pending code changes. Somewhat similar to an issue tracker, but worth a look.
From the same team: Parasite, a live debugger for GTK+ applications ("sort of like Firebug").
Thursday, January 22. 2009
I had the pleasure of attending two interesting presentations at our university yesterday. I am a bit biased here, because one was held by myself, for a few students participating in the current "Softwareentwicklungswerkzeuge" (software development tools) lecture. The other one was a presentation by Sebastian Kurfürst, one of the core developers of TYPO3 (and a "former student of mine"), for the T3 User Group Dresden, about the upcoming TYPO3 v5 and its application framework FLOW3.
 Even if you're not interested in TYPO3 or CMS development, I recommend reading the [very fancy] slides (if you understand German). They have a rather large user base, still they decided to throw away the current code base and design the new release from scratch - using 'modern paradigms' such as strict Test Driven Development, Dependency Injection, Aspect Oriented Programming, Domain Driven Design and MVC. Sebastian accomplished to explain these concepts clearly, so if you want to refresh your knowledge about any of these techniques, take a look at the slides. According to him, TYPO3's new base level application framework is the first framework to introduce AOP to the PHP world, and is 'ahead' of the current PHP development (they require PHP 5.3, which is not even in beta yet).
I'm really looking forward to the new TYPO3, which hopefully might be one of the first web application frameworks and CMS that doesn't suck completely.
My own presentation (not very fancy slides...) was about a MetaCASE tool called "unicase", suitable for smaller collaborative projects and especially targeting research projects with special needs such as a new methodology, or other individual model requirements. It is being developed at the TU München by a team around a good friend of mine, Maximilian Kögel. Its main features are model generation from an ECORE meta model (it's Eclipse based), so you can easily introduce new model elements and regenerate your client. The central repository with similar concepts as Subversion (checkout, commit, update) is able to work with any meta model compliant models, and the client tracks any changes to the model and the client usage, which is especially useful for research projects interested in how their application is being used.
Unfortunately, the most important part of the presentation was a live demo, where I showed how you can easily generate a "new client" by small changes to the meta model. The unicase website has screencasts of most features though, so if you're interested, you can watch it there.
If you want to try it out, I'll explain the few steps required to get your own local server and clients to run. If you just want to try the client, they have an update site you can easy add to your current Eclipse installation, and a standalone download. Unfortunately, the link to the relevant unicase documentation is "hidden" in the right sidebar, whereas the main documentation link in the center of the page currently leads to a mostly empty wiki page.
Continue reading "TYPO3 v5, FLOW3 and Unicase"
Tuesday, January 6. 2009
QUOTE: Once thought to be the savior of IT, SOA instead turned into a great failed experiment—at least for most organizations. SOA was supposed to reduce costs and increase agility on a massive scale. Except in rare situations, SOA has failed to deliver its promised benefits. After investing millions, IT systems are no better than before. In many organizations, things are worse: costs are higher, projects take longer, and systems are more fragile than ever.
Continue reading "Burton Analyst Manes: SOA is Dead"
Friday, December 19. 2008
Dmitry Fadeyev from Smashing Magazine has posted some useful tips for (mostly Web related) interface design.
Friday, December 12. 2008
Auszüge aus dem Artikel Projekte, Strukturen und Herzblutenergie von Gunter Dueck, IBM Distinguished Engineer, aus der aktuellen "Informatik Spektrum" Dezember 2008:
QUOTE: Wer beginnt heute einfach mal so ein Projekt - aus unternehmerischer Lust? Das kann sich vielleicht ein mittelständischer Unternehmer leisten, der das Sagen hat und das eigene Geld gibt und dazu noch alles gut selbst überschauen kann. (...) Wer aber blickt bei großen Projekten noch durch? Etwas Neues muss überall genehmigt werden. Jeder sagt etwas dazu. Stellen Sie sich vor, Sie haben eine große Idee und besitzen nicht zufällig die Firma oder die Unversität selbst. Sie können das Projekt nicht stemmen, Ihr Chef auch nicht, dessen Chef ebenfalls nicht. Keiner will eine neue Baustelle aufmachen.
Continue reading "Projekte, Strukturen und Herzblutenergie"
Wednesday, December 3. 2008
Do you really need CAPTCHAs?
Spam bots are so effective today mostly because there's only a handful of different publishing software used (forum, blog, CMS). This is very convenient, because all information required to write and tweak a bot is identical for all installations. All the bot software has to do is query Google for parts of a particular URL (eg. inurl:yabb.pl or inurl:phpbb/posting.php) and continue with algorithms to circumvent the specific protection (if any).
Continue reading "Eliminate Form Spam Using Behavioural Analysis and Individual Forms"
Wednesday, December 3. 2008
QUOTE: Just like any language, developers can write code in PHP that ranges in quality from truly awful to very good. Learn good programming habits that can help you bridge the productivity gap.
Depending on whom you ask, the difference between a good developer and an excellent developer, in terms of productivity, is a factor of 10 to 20. An excellent developer is more productive because of his experience and good habits. When poor programming habits sneak into your code, they're a drain on productivity. This article demonstrates some good programming habits that can make you a better programmer.
Continue reading "Five Good Programming Habits in PHP"
Tuesday, December 2. 2008
uTest, a new startup, pays users for harvesting bugs in products.
Monday, December 1. 2008
Tim Bray, Director of Web Technologies at Sun, wrote an interesting article about the company future, from his point of view. His main statements: Focus on web technologies (you probably guessed that) and give the Java Community Process (JCP) to the community in full.
Continue reading "What Sun Should Do"
Saturday, November 29. 2008
 Idea: Build an extension for Firefox that supports all popular (and upcoming) peer-to-peer video streaming engines.
|