Google Chrome: A web browser by Google
Whether Google is "the chosen company" to bring happiness in software land or is Big Brother itself, we can discuss. But we can all agree on one thing: Google's business is in the web browser. Nearly all advertisements and other Google activities are build in web technology such as HTML. While they were supporting Firefox as an alternative to Internet Explorer, Google had a little secret, which came out just yesterday: Google Chrome. A web browser by Google. Read all about in their announcement: http://googleblog.blogspo...resh-take-on-browser.html.
A few highlights:
A few highlights:
- WebKit rendering engine. Used in different products such as Apples' Safari. Originally part of the KDE project. Becoming increasingly popular.
- Tab-sandbox. Each tab runs in a sandbox, which means that if one tab crashes, the others remain operational. Also, if you log in on one tab, you're not logged in on other tabs. Sessions are tab-scoped.
- Tabs are more than just a web site instance. They're a browser instance. Each tab has its own forward & back buttons, its own addressbar and so forth. We saw this design in early beta's of Internet Explorer 7.
- V8 JavaScript virtual machine. A JavaScript engine built from scratch. Supposedly to "power the next generation of web applications that aren't even possible in today's browsers". Sounds promising.
iPhone developers hate the "Fucking NDA"!
With the launch of the iPhone 3G, along came the launch of the SDK and the App Store. Since then, the iPhone developers community is growing rapidly and so is their frustration about the position they are in. This is because they had to agree with an NDA, which states it's prohibited to talk about code, whatsoever. No tutorials, no forums, no code samples. Nothing.
Now, one of the cool thing about developing applications in general these days, is that we have access to the internet as a resource for help. We can find code samples and forums to help us with our problems and challenges. We can talk about it on IRC channels or write blog posts with tips and tricks. With practically all other platforms, this is not a problem. With the iPhone SDK, it is.
Why would Apple do such a thing? With the SDK being in beta, it made perfect sense. But now the SDK is available to everyone, as long as you agree to the SDK, which is just one click. I understand Apple is a company which has a patent on secrecy, but this is just plain stupid. For a healthy developers ecosystem, you need an online comminity these days.
It's another example of the dualism of Apple. The iPhone is a great device. The Operating System is outstanding. The platform and SDK is way ahead of it's time. But still, there is a software lock-in (iTunes), a too controlled doployment channel (App Store), limitations in the software you may distribute and now the NDA.
Developers around the globe are uniting on a website initiated by a developer and twitter-user on this website: http://fuckingnda.com
They're about to just ignore the NDA and set up an iPhone internet portal. Because this is what Apple once used in their commercials:
Now, one of the cool thing about developing applications in general these days, is that we have access to the internet as a resource for help. We can find code samples and forums to help us with our problems and challenges. We can talk about it on IRC channels or write blog posts with tips and tricks. With practically all other platforms, this is not a problem. With the iPhone SDK, it is.
Why would Apple do such a thing? With the SDK being in beta, it made perfect sense. But now the SDK is available to everyone, as long as you agree to the SDK, which is just one click. I understand Apple is a company which has a patent on secrecy, but this is just plain stupid. For a healthy developers ecosystem, you need an online comminity these days.
It's another example of the dualism of Apple. The iPhone is a great device. The Operating System is outstanding. The platform and SDK is way ahead of it's time. But still, there is a software lock-in (iTunes), a too controlled doployment channel (App Store), limitations in the software you may distribute and now the NDA.
Developers around the globe are uniting on a website initiated by a developer and twitter-user on this website: http://fuckingnda.com
They're about to just ignore the NDA and set up an iPhone internet portal. Because this is what Apple once used in their commercials:
Here's to the crazy ones, the misfits, the rebels, the troublemakers, the round pegs in the square holes... the ones who see things differently -- they're not fond of rules... You can quote them, disagree with them, glorify or vilify them, but the only thing you can't do is ignore them because they change things... they push the human race forward, and while some may see them as the crazy ones, we see genius, because the ones who are crazy enough to think that they can change the world, are the ones who do.
Interesting links - April 3rd
When doing my job or just browsing the web in search for some brain food for the tech oriented geek, I sometimes come across some links I find interesting and then bookmark for later review. On some blogs (Scott Guthries' blog for example) it is common to post some links once a month. I mostly find these blog posts interesting so I decided to do the same for you readers. Maybe some links interest you too.
Teched 2007 Linq to SQL Presentation
Linq, part of the .NET Framework 3.5 and the latest language enhancements to C# and VB.NET, is a way of dealing with structured data. One implementation is Linq to SQL, which is generally an O/R-mapper for use with Linq. This presentation provide you with the basics.
Google Code University
This is a collection of video's, sessions, presentations and tutorials written by or for Google. Examples are C++ threading, Python 3000 by Guido Van Rossum, Java programming, web technologies like AJAX, etc... Very interesting.
Django on IronPython
Python is a interpreted programming language. IronPython is the .NET implemation. Django is a web application framework for Python. No Django runs on IronPython, which means you get the benifits of Python, .NET and Django in one package. Nice read, didn't try it yet though.
Singularity. An experimental operating system in C#
Microsoft has a research-project which aims on creating an operating system using the C# programming language. For this, they used custom compilers and a custom runtime to compile C# code directly to x86. Very interesting. Includes some documents. If you are into OS-programming, it is a must-read.
How to recognize a good programmer
Great read if you are a programmer yourself. A must read if you are about to hire programmers. Some points I might argue with, but still it covers most of the aspects of a good programmer.
BONUS: Direct Note Access - Splitting audio compositions in single notes
Not directly tech, but definitely tech-related. If you are into audio-programming, this thing is like water burning or pigs flying. I'm very interested in how this holds in some of my own recording-cases, but still, it looks very cool.
Teched 2007 Linq to SQL Presentation
Linq, part of the .NET Framework 3.5 and the latest language enhancements to C# and VB.NET, is a way of dealing with structured data. One implementation is Linq to SQL, which is generally an O/R-mapper for use with Linq. This presentation provide you with the basics.
Google Code University
This is a collection of video's, sessions, presentations and tutorials written by or for Google. Examples are C++ threading, Python 3000 by Guido Van Rossum, Java programming, web technologies like AJAX, etc... Very interesting.
Django on IronPython
Python is a interpreted programming language. IronPython is the .NET implemation. Django is a web application framework for Python. No Django runs on IronPython, which means you get the benifits of Python, .NET and Django in one package. Nice read, didn't try it yet though.
Singularity. An experimental operating system in C#
Microsoft has a research-project which aims on creating an operating system using the C# programming language. For this, they used custom compilers and a custom runtime to compile C# code directly to x86. Very interesting. Includes some documents. If you are into OS-programming, it is a must-read.
How to recognize a good programmer
Great read if you are a programmer yourself. A must read if you are about to hire programmers. Some points I might argue with, but still it covers most of the aspects of a good programmer.
BONUS: Direct Note Access - Splitting audio compositions in single notes
Not directly tech, but definitely tech-related. If you are into audio-programming, this thing is like water burning or pigs flying. I'm very interested in how this holds in some of my own recording-cases, but still, it looks very cool.
Virtual PC "erratic mouse" problem with some intel-chipsets
For my work I got a new Dell Vostro 1700. It's a great machine. 2 gigs of memory. A 7200RPM sata disc. Core 2 Duo CPU. 1920x1200 resolution. Pretty fast for a notebook. Fast enough to run me a virtual instance of Windows Server 2003 right? Well that seemed to be a bit of a problem.
I created a completely clean install of Windows Server 2003 R2. Installed all updates and installed the Virtual Machine additions. But still I seemed to have a "erratic mouse". And not only the mouse, the whole system seemed to suffer from that problem. It was as if the vritual CPU could not synchronize with the host CPU.
After investigation I came across this blog post. It provides this workaround:
The problem I experienced, had something to do with a specific version of "Speedstep" which is used in some intel centrino chipsets. It's actually a Virtual PC problem, since VMWare and Parallels didn't seem to have the problem. I don't have a complete list of which chipsets have the problem, but when you have the problem, and you have a centrino notebook, try this fix.
I created a completely clean install of Windows Server 2003 R2. Installed all updates and installed the Virtual Machine additions. But still I seemed to have a "erratic mouse". And not only the mouse, the whole system seemed to suffer from that problem. It was as if the vritual CPU could not synchronize with the host CPU.
After investigation I came across this blog post. It provides this workaround:
- Stop running Virtual PC
- Open notepad
- Open %appdata%\Microsoft\Virtual PC\options.xml
- Locate or create the <virtual_machines> section of the file and add this key:
<enable_idle_thread type="boolean">true</enable_idle_thread> - Save the file and exit notepad
- Start Virtual PC
The problem I experienced, had something to do with a specific version of "Speedstep" which is used in some intel centrino chipsets. It's actually a Virtual PC problem, since VMWare and Parallels didn't seem to have the problem. I don't have a complete list of which chipsets have the problem, but when you have the problem, and you have a centrino notebook, try this fix.
.NET Framework 3.5 will be released with source code
As anyone can read on Scott’s page Microsoft decided to release the source code (with comments) of the .NET Framework (not the CLR as some blogs might make you think), beginning with V3.5. This is a big thing. But I want to tell you why.
There are several disassembly tools available for .NET which allow you to disassambly an assembly into source code. When you want to see what happens in System.Threading, just disassemble. But, it won’t provide you with debugging symbols. The result is you need to read it line by line when you want to figure something out. Hooray for Scott, because this release won’t just include the source code, but also debugging symbols, which are dynamically (down)loaded from the MSDN in VS 2008. Hence, the big thing. Great stuff. :-)
There are several disassembly tools available for .NET which allow you to disassambly an assembly into source code. When you want to see what happens in System.Threading, just disassemble. But, it won’t provide you with debugging symbols. The result is you need to read it line by line when you want to figure something out. Hooray for Scott, because this release won’t just include the source code, but also debugging symbols, which are dynamically (down)loaded from the MSDN in VS 2008. Hence, the big thing. Great stuff. :-)