4 days ago Google made their new programming language public and therefore available to the community. The language is called "Go" and is available for Linux/Mac. The current version in the repository is at best an early snapshot of the real potential of the language.
Beside the very good compiling speed, Go provides some interesting features. First of all there is the concept of interfaces. Every type that implements the methods of an interface can be assigned to a variable with the type of that interface without explicitly declaring the inheritance of the interface.
Then there are channels: Channels are a way to communicate or synchronize between two or more concurrent computatios. As they are a built-in language feature, they are quite easy to use.
While the existence of interfaces might suggest that Go is a object oriented language this is only partially true. One is able to create types and define methods on those types, but there is no type hierarchy.
Hello World example:
package main
import "fmt"
func main() {
fmt.Println("Hello World!");
}
The developers of lighttpd just released version 1.4.24 and with it they introduced a feature that was pending for nearly three years (Ticket #386). By including TLS SNI lighttpd is now able to serve multiple ssl certificates over a single IP. Prior to that it was required to assign each certificate an own IP adress.
Let's see how to configure lighttpd to use different certificates:
$SERVER["socket"] == "10.0.0.1:443" {
ssl.engine = "enable"
ssl.pemfile = "www.example.org.pem"
}
$HTTP["host"] == "foo.example.org" {
ssl.pemfile = "foo.example.org.pem"
document.root = "/var/www/foo.example.org"
}
The first block opens a socket to listen on port 443, enables SSL to use the PEM-file given. The second block matches if the hostname of the web request was "foo.example.org". In that case an alternative PEM-file gets used.
Sadly, not even debian testing currently provides 1.4.24, so I'm very limited to test this feature on my production machines.
It's about time, PHP 5.3 is about to be released and with it a lot of new features are introduced into the language. Those of you who have tested the early snapshots and release candidates know of what I'm speaking.
Namespaces, lambda functions, closures, functors and late static binding are some of the new features of the release.
The most important thing for shared hosts might be the ".user.ini", a .htaccess like file that allows users in a virtual hosting environment to change settings of their php instance.
It's too bad that it will take a long time until 5.3 has found it's way on to the webservers. In this time there won't be any big software making use of the new features for the sake of backwards compatibility.
Let's hope it will not take as long as it took to replace PHP 4.
While writing a new article I realized it would be so much better with a screencast. To manage future screencasts I began writing a small framework and called it GeekCast. GeekCast tracks the number of views per video, provides video tagging and an easy API to include videos into foreign pages. I will make GeekCast open source when I consider it to be ready for the public. The project will be the core of the soon to be released Geekmonkey Video service.
The Internet Malwarenet: As of today it's official, the whole internet is a declared malware zone.
Ok, serious. Today, for a short time, Google showed the message "This site may harm your computer" for every search result. Even this page has been marked as malware:
And what happens when the biggest search engine in the world gets unusable? A substitution takes place and yahoo's web servers can show their will to survive.
The whole magic was over after 45 minutes, but it might show some of us how dependent we are from the big "G".
Edit: It seems that the problem still exists internally. The public search is back to normal, but the google webmaster tools report that every page of mine may distribute malware. Let's hope this does not affect global rankings.
Edit: Everything is back to normal. Google reports, that StopBadWare.org mistakenly submitted the URL "/" as a dangerous website, which matched for all domains resulting in the error we've just experienced.
Happy searching :)
- StopBadWare's blog entry
« | 1 | 2 | 3 | 4 | 5 | »