56 posts • joined Tuesday 16th June 2009 12:48 GMT
Does anyone have any information on how text-to-speech voices and other assistive technologies (like TalkBack and BrailBack on Android) will work on Firefox OS?
Also, how does this work with loading data files (e.g. voice/language data).
Didn't Larry Page's keynote speech talk about doing the impossible?
AI is a complex problem. There are tricks that can mimick intelligence -- knowledge/decision trees for interactions and statistical models for natural language processing.
There are other models/approaches -- neural networks and evolutionary algorithms -- that take a more life-like approach to the problem. These are where an emergent AI could form, provided that it could alter/improve its own code (e.g. via genetics modelling), that it has enough flexibility in terms of inputs and outputs to interact with its environment in a meaningful way and has enough computation power to do this in a reasonable timeframe.
Re: Re "Royally Fucked"...
The removal of metadata from photos and other electronic documents should be illegal. It's like taking a document that says "Copyright (C) YYYY Author. Licensed under whatever conditions the author has chosen.", removing those and claiming it is orphaned. You are not allowed under law to do that, so the same should be true with the metadata a document/photo has, because the metadata is part of that file.
This would, IMHO solve the problems here, in addition to educating people about providing metadata for their work just like educating people about adding copyright notices to their scripts/books/poems/etc..
Re: IE and licence fees?
It was Spyglass -- see http://en.wikipedia.org/wiki/Spyglass,_Inc. and the associated references.
There are several things going on here:
1. GitHub uses and encourages the use of the Jekyll static site generator. This is written in Ruby and any shared Jekyll plugins will be in Ruby as well.
2. There are a lot of projects that are the code for various websites of the people/organisations running them. These tend to be liberally licensed (MIT, BSD, CC-BY, CC-BY-SA, Public Domain).
4. GitHub attracted the Ruby and Ruby on Rails communities, so there are proportionally more Ruby projects than others. Most of these tend to be licensed under liberal licenses (MIT, BSD, Public Domain).
5. The website projects do not necessarily have an explicit LICENSE/COPYING file, but specify the license in either the README/README.md file or in a HTML footer or layout file that gets pulled into the pages when the site is generated by Jekyll. Or to put it another way, do any of the websites you visit have a COPYING/LICENSE file?
6. Some projects have a LICENSE.txt or LICENSE-MIT/LICENSE-APACHE file. It is unclear if these were detected in the study.
7. There are a lot of forks of various projects -- GitHub actively encourages this. It is unclear if the number of repositories examined were the primary repositories or if it also included forks.
8. There are mirrors of other projects like Firefox and LLVM/Clang hosted on GitHub. It is unclear what proportion of projects this is from the study.
It would also be useful to show the correlation of license types to languages used.
Also, this is like studying the licenses on projects.apache.org and finding that there are no GPL/LGPL licensed projects.
Re: WebKit alone
The first problem with this is that different renderers interpret the standards differently. Case in point: IE5-7 CSS Box Model. They fail the Acid 2 rendering tests. If there is a single renderer, there is no motivation to fix any issues ("our interpretation is correct"). Having multiple renderers helps keep each other sane w.r.t. the standards.
The second problem is that different renderers implement different parts of the standard at different times. Case in point: MathML and SVG. Mozilla have had MathML implemented for a long time, same with SVG. WebKit is only just adding support for MathML. IE has only added cut-down SVG as of IE9 and a more complete version as of IE10. If there was a single renderer, there would be no incentive to implement the other specs (how long has Microsoft dragged their heels on SVG support).
The third problem is that having a single renderer, there will be less sway for others to push for standards as they do not have an implementation to base it on. Especially if the single implementation is pushing their own version.
Also, think about things like eBook readers or text-to-speech/assistive technology programs reading web content. Those have different requirements which may be counter to what the single renderer provides, which that renderer will be reluctant to provide as they go against their goals (think of things like SSML support and the CSS Speech module).
Re: Still waiting for a decent Java IDE
Actually, there is the .NET 1.0 CLR, .NET 2.0 CLR (supporting generics) and .NET 4.0 CLR. I am not sure if .NET 1.1 uses the 1.0 CLR or if .NET 4.5 uses the 4.0 CLR, so that is at least 3 runtimes. The other .NET versions have different libraries that execute on those runtimes.
The ECMA standard only applies to .NET 1.0 (maybe 1.1 or 2.0). It only covers a portion of the .NET library -- it excludes things like the Microsoft namespace, XML/XSL, WinForms, WPF, WCF, ASP.NET and other APIs. There hasn't been an update of the ECMA standard to cover new C#/other language features written on top of the CLR, or the newer runtimes and libraries.
So if you are targetting the ECMA standard, you will be using C# 1.0 or 2.0 with a limited library available to you that excludes any UI or Web framework. Mono supports a lot more than that and tracks Microsoft's implementation of C#/.NET.
And, for a large part, C# programs written for Windows make use of P/Invoke to call into the underlying Win32/64 APIs so cannot easily be ported to Mac/Linux/BSD/... -- they need to run on Wine.
Microsoft's Problem with Legacy APIs
Each new API that Microsoft introduces either wraps existing APIs (MFC, WinForms, ...) or is a subset of the APIs it intends to replace (GDI+, .NET, WPF, Silverlight, WinRT, ...), while offering new functionality not available in the other APIs.
Take the .NET runtime APIs for example. They are not a complete replacement of the Win32 APIs, forcing you in cases where you need that functionality (e.g. interacting with existing Win32/64 code) to use P/Invoke. However, Microsoft don't provide a set of P/Invoke wrappers for the Win32 API or include them in the corresponding Win32 documentation on MSDN. This means you end up with duplicated P/Invoke declerations that may contain bugs if incorrectly declared (e.g. unicode support).
For Win32 programs, the underlying Win32 API does not provide UI functionality such as Docking/Floating toolbars; these are written in the wrapper APIs (WTL, MFC, WinForms, ...), so you end up with an inconsistent user experience (accessibility, theming, keyboard shortcuts, ...) and more duplicate code.
The .NET 4 runtime is the first version that WPF/XAML properly supports rendering fonts on the screen, making it acceptable for UIs. However, it still lacks UI available in Win32 (date/time selection), renders keyboard focus for things like radio buttons and check boxes differently to Win32 (focus is on the checkbox, not the text) and keyboard navigation is also inconsistent with Win32.
Now, with WinRT, the XAML available does not support everything that WPF does and still does not have equivalents for all the Win32 native controls. The WinRT subset of Win32 is severely limited and restricted. This means that WinRT applications are going to be simple applications. Companies with their existing Win32/WinForms/WPF applications are not going to port their applications to WinRT overnight, and if they do are more likely to port their mobile versions over, not the desktop versions over. This is because desktop and WinRT are completely different platforms for all intents and purposes (e.g. it is like porting a Win32 desktop application to WinCE or WinPhone).
Re: thx for asking about variadic templaces
Variadic templates simplify things like std::tuple and std::function and forwarding functions (think of things like std::bind1st, std::bind2nd and boost::bind). The way Boost and VC2012 implement them is to explicitly generate N versions of those classes/functions (1 template arg, 2, ..., N). For example:
template<typename T1> struct tuple;
template<typename T1, typename T2> struct tuple;
template<typename T1, typename T2, ..., typename Tn> struct tuple;
With variadic templates, this simplifies to:
template<typename T1...> struct tuple;
This is not only less code (easier to maintain), but the compiler performance is orders of magnitude better at compiling them (memory and speed). The gcc version goes from exponential time with the number of template parameters to a second. [See http://www.generic-programming.org/~dgregor/cpp/variadic-templates.html].
1. Answer questions without answering them... check.
2. Say a lot without saying anything... check.
Is Somasegar planning to move into politics?
Delaying the Inevitable
The longer a company delays migration, the harder it will become to perform that migration and the technology will move even further ahead (with Windows 8 and IE10 currently on the horizon). Given the amount of time that has passed, these companies could have had a small team looking at migration plans and creating something that would work on the newer platforms. This would help them when the actual migration occurs.
Re: FOSS to the rescue?
You can tell eSpeak to use any supported MBROLA voice, which sound nicer than the eSpeak voice. You can also alter the pitch and some other attributes, so you could adjust it to sound child-like if you so wished.
Re: General consensus
I'm sure Windows 8 will be a huge success for (a) people running new Windows 8 tablets (x86 or ARM), (b) people who are primarily content consumers, (c) people who tend to do one thing at a time on their computer. For everything else, it is going to be anywhere from annoying to a nightmare depending on what you are trying to do.
I don't know how bad it will be at launch, but over time you will see two trends emerging:
1/ simple applications (photo editors, image viewers, PDF viewers, etc.) will move to Metro;
2/ complex applications (desktop publishing, advanced image manipulation, music creation, etc.) will remain as desktop applications.
This is driven by the fact that the Metro programming interfaces lack a lot of the more advanced features (no date/time controls, etc.) and the more complex interfaces do not fit within the Metro design language.
Couple this with the inability to say "use this application in Metro and this other application on the Desktop" means that users working in the desktop are going to be constantly kicked into the Metro world to view content (images, documents, etc.) unless they say "use a desktop version (if I can find one that works on Windows 8)" in which case the Metro experience is broken as that will put you into the desktop world when viewing those files from the Metro environment.
I also wonder how all this is going to work on the server. Microsoft may default to the desktop there (it is for corporate/business environments, after all), then charge people extra for it.
Re: Launch song?
Jack of all trades, master of none?
Open API = Normal API
An API is an interface applications use to do something that a platform provides. Yes, there are internal APIs restricted to a companies applications, but any platform provides "open" APIs that anyone can program to.
Windows provides Win32, COM, DirectX, .NET, and others. Linux/Open Source provides Qt/KDE, GTK+, Pango, readline, ncurses, WebKit, SDL, Cairo, OpenGL and others. Mac provides Cocoa, Carbon and others. Firefox provides XUL, JetPack and other APIs for extension developers. Chrome provides NaCL. Bugzilla provides an API for accessing its data. Flash does the same.
Major websites that provide a platform to interact with their services (Facebook, Twitter, Google). These APIs will be some form of AJAX serving XML or JSON data. How do you interact with these? Using HTTP, XML and JSON APIs provided by a framework (web browser, .NET, Qt) or a collection of libraries (libxml2, expat, curl and others).
That is, you can use the twitter API to provide a twitter feed on a Windows desktop, Windows 8 start screen, KDE plasmoid, as a Gnome Shell extension or anything else you can think of. Or write a Gnome application that triggers a notification whenever someone posts to your Facebook wall.
Right now, the main thing holding back Firefox is that their Garbage Collection algorithm is slower than Chrome, and introduces pauses when it runs. So for day-to-day performance issues, that is where the difference is likely to be. They are working on this at the moment, and have landed some improvements to the FF5 and FF6 code lines.
A Better Option
Or how about communicating the usability issues they are having with the OpenOffice (and/or LibraOffice/Document Foundation now) and working with the community. How about talking to the kernel/distro developers about the issues they are having.
If they are not reporting the issues, they cannot be fixed.
It's like buying a commercial program that comes with support and not making use of that support then saying the software is useless and going back to the old program.
1. Aquire the Symbian platform
2. Drop the Symbian platform to work on Moblin (which needs work to be competitive: ~1year away)
3. Wait until Moblin is nearing completion
4. Drop Moblin for MeeGo (which needs work to be competitive: ~1year away)
5. Wait until MeeGo is maturing and nearing initial revision
6. Drop MeeGo for Windows Mobile 7 (which needs work to be competitive: ~1year away)
Net result: Symbian is acting as life support while Nokia spends years not having a viable replacement.
7. Wait until Windows Mobile 7 is nearing completion
8. Drop Windows Mobile 7 for Android
Validity and Compliance
Because the standards that fall under the HTML5 umbrella are in draft/candidate status, it is impossible to say "this site conforms to HTML5" or "this site conforms to CSS3 Box Model". The best you can say at this point is "This site is using experimental features of HTML5, CSS3, etc.".
The purpose of the mini logos is to show which experimental features of HTML5, CSS3, etc. are being used, so instead of saying "This site uses HTML 5" it says e.g. "HTML5 Powered with CSS3 / Styling, Multimedia, and Semantics".
The W3C have HTML5 markup validation support in their http://validator.w3.org/ markup validation suite, but don't provide a logo for it again due to the draft status.
1. Spam Filtering -- light-years ahead in GMail.
2. UI -- Feels clunky in Hotmail; I personally prefer (on the whole) the GMail UI.
3. Threaded Emails -- a must to prevent being swamped in emails on medium to high mailing lists.
4. Labels -- much better than folders; the ability to have an email in more than one label (e.g. filtering email from mailing lists that are sent to more than one, or tracking status/workflow); combined with filters, this is a very powerful feature.
5. Coloured Labels -- easily see what email belongs where.
6. Labs -- tweaks to customise your UI experience.
Firefox on Linux works great
Firefox uses the relevant APIs on the target platform -- XRender+OpenGL on Linux, Direct2D if available and DirectX on Windows and the Mac APIs (Quartz?) on Mac.
The spinning picture demo got 91 FPS on the Windows machine used to test. I am getting 83 FPS on my Ubuntu 10.04 64-bit machine with the NVidia binary.
The IE fishtank demos I am getting 60FPS up to 100 fishes, 50-60FPS @ 250, 35-42 @ 500 and 16-22 @ 1000.
Also, the psychedelic test provides comparable performance -- 1830 on Win7 vs 1739 on Ubuntu for the colour test and 603 on Win7 vs 599 on Ubuntu for the hallucinogenic test.
Of course these results will vary depending on your graphics card and driver being used.
Microsoft have always done these things backwards.
A Windows application also needs to opt in to get the XP or later themed look. If they don't, they get the 9x/2000 look and look out of place.
Understanding this article
Newer versions of Windows add functionality that applications need to be built against to work. These help secure against certain attacks.
Data Execution Prevention (DEP) makes applications more resilient against techniques that make use of attacks to write code to an area of the program that contains data and then call into that code.
Address Space Layout Randomization (ASLR) changes where core DLLs are loaded to in the application at load time so the location is non-deterministic. This makes it harder to use attacks that make use of that knowledge.
These features don't make applications invulnerable to attacks, but they make it harder for an attacker to exploit weaknesses in the code.
And therein lies the spin. It's all about marketing.
"When was the last time you called Google for help recovering a lost Google Doc?" implies that (a) losing Google Docs is a common occurrence and that (b) Google don't provide easy access to help to recover the file(s) -- something that Microsoft is promoting.
"When was the last time you lost a Google Doc?" implies that you rarely need to contact Google for help, so it is not much of an issue. Microsoft can't do anything in response to that question as it makes Google look better.
Firefox 4 has hardware acceleration support using the Vista/Win7 technologies that IE9 is using (https://bugzilla.mozilla.org/show_bug.cgi?id=527707). This is currently being tested to hake out any remaining issues.
I don't know about Opera or WebKit/Chrome, but I suspect they have a similar thing in the works.
The Microsoft Office Suite is likely to be a very large code base, of which Mac is not a primary target (so will get fewer development resources allocated to it). Porting existing applications from one platform / toolkit to another is a lot of work.
All this means is that Microsoft did not complete the transition to Cocoa for this release of Office. It says nothing about the credibility of Steve Jobs or the Cocoa framework.
That's like saying that colour comics are not a credible media because a comic could not be coloured in time for release and was released in black & white instead.
The choice of License and development strategy is dependent on the developer(s) of the project and how they want the project to be used.
If the developers don't want people to see or modify the code, they should use a proprietary model.
If the developer wants people to see the code, but not necessarily contribute back and are happy with people using their code in proprietary code bases / products, they should use a BSD-style license.
If the developer wants people to see the code and contribute back any and all changes to the code, and is happy with people using the code in proprietary code bases / products as a library / external module, they should use the LGPL license.
If the developer wants people to see the code and contribute back any and all changes to the code, and is not happy with people using the code in proprietary code bases / products as a library / external module, they should use the GPL license.
It is that simple.
People who choose the GPL license do not necessarily have a vendetta against the evils of capitalism and large corporations. The GPL does not forbid capitalists or large corporations from using the software.
Likewise, people who choose a BSD-style license are not anti-Open Source.
In adition to the other comments
We have had this little thing called a *recession* that nearly turned into a depression. I personally have switched to saving (with the odd gadget purchase and a few CDs/DVDs every now and then) and some subscriptions/services.
With the film industry constantly pushing new technologies on consumers (we've had HDMI/Hi-Def compatible vs compliant; we've had HD-DVD vs BluRay; and now we've got 3D that's set to push people to buy more technology). These changes have happened (and are happening) over a lot shorter pace than happened previously -- you upgrade everything to find that you are promptly out of date. If you get burned once, you are less likely to upgrade in the future.
Spending fortunes on everything (food, mortgage/rent, clothes, devices, hardware, services/subscriptions, bills, cinema, travel/petrol, dvds/cds, games, ...) all adds up. So you end up choosing what to spend it on, or save it to help survive in the future (or for a bigger investment, like a house).
People are also spending less because we are not as cavalier about debt as we were at the height of the spending boom (adding debt to spend on consumables and entertainment). It is now the morning after, and the world (UK, US and others especially) is suffering a major hangover.
It supports auto, rvalue references, static_assert, decltype and lambda.
Put up or shut up
Microsoft know that if they show the patents that Linux software is (allegedly) infringing that the said patents will be worked around (look at what happened with the VFAT patent after the TomTom case). Either that, or the patents will be investigated for prior art (by the excellent Grok/law team and others) or will similarly be tested in court for obviousness. Any way, this is bad for Microsoft.
Microsoft also don't want long drawn-out legal battles -- they would rather let others like SCO and the patent trolls do this for them. They prefer to make quick settlements behind closed doors. This allows them to say "look, Linux is infringing on our IP -- just see TomTom, Amazon and others -- so you'd better pay us for using Linux, or else.".
Notice also how Microsoft are choosing their battles and picking the easy targets who are more likely to cave when threatened with law suites and choose quick out of court settlements. I suspect that "Amazon’s use of Linux-based servers" is because of their cloud offering, but you don't see Microsoft suing Google because they use Linux servers.
The whole thing reeks of racketeering and Mafia-like practices. The patent system and the US sue-first culture is steeped in corruption and illegal (or borderline illegal) practices. One of the problems is that it is these entities that have enough money and power to influence legislation -- which is one of the reasons that makes me uneasy about ACTA.
Follow the white gnome...
Have you noticed that the Vista "crumb" bar is just a snazzier version of what Gnome has had for ages in the file open/save dialogs and nautilus?
Have you noticed that the compact file save dialog in Vista looks the same as the one in Gnome?
Have you noticed that the Vista tree control (e.g. for folder navigation in Explorer) uses arrows like the Gnome version does?
Windows 8 introducing zeitgeist and Gnome Shell features? Throw in some of the KDE4 support for semantic data (RDF, FoaF, linked in, ...)?
Focus on this, focus on that
The Firefox team *are* focusing on the UI -- they have a plan to revise the look and feel to make use of glass; the article discusses about the tab preview feature on Windows 7; they have worked on core support for glass and other features and are continuing to improve this.
The Firefox team are also focusing on standards (HTML5, SVG, SMIL, ...); on browser performance; on memory usage; ...
It is not like there is only one developer working on Firefox.
The Reboot Craze
Very little original content has come out of Hollywood in recent years (adaptation, sequel or reboot). Sometimes, a reboot of a series works out well (like Batman Begins/The Dark Knight and Star Trek), but is more often likely to result in failure. At least with the Batman films, there was some time between the last outing and Begins.
At least with avatar (while similar in structure to Pocahontas and Dances With Wolves) there were interesting ideas and attention to detail that made it enjoyable.
The more interesting and original films are coming from indie film makers.
It seems like Hollywood is backing 3D technology to make up for its lack of originality. Come up with something that is original, has good characters that evolve throughout the film and have an interesting story.
A Schitzophrenic Microsoft
Google dominates web search -- Microsoft: We must have search!
Netbooks take off -- Microsoft: Hey, we need a piece of that!
Apple prepares to announce a tablet/slate device -- Microsoft: Hey, we need to steal their thunder!
Microsoft: What do we want to follow today?
Doesn't this mean that if a disabled user who is using a text-only web browser (e.g. lynx), or one that uses a braille interface won't be able to access the site?
I understand the need for testing a website to ensure that it works well, but requiring specific operating systems or web browsers discards a whole set of users.
This impacts not only Linux users, Opera/Chrome/some-other-browser-than-IE-and-Firefox users, but disabled users, people who are using a 3G-based dongle for internet access and mobile/iphone/blackberry/kindle/... users as well.
Great, you now have an application that behaves differently when run by a user/tester to when you are running it in the debugger.
I see at least two fundamental problems with this:
1. testers/users may initially see the application crashing, but when they try and reproduce it, the issue magically disappears -- great for consistency and reproducibility!
2. when debugging the application to investigate a different issue, the application starts randomly breaking.
Welcome to the Microsoft uncertainty principle!
Here's another question -- what happens when drivers (e.g. NVidia) start crashing, where does FTH apply then (to the kernel? on kernel memory?).
I'll have a slight problem upgrading to Win7
as my home PC is running Ubuntu. Happily, I have upgraded to the latest pre-release version of Ubuntu, and it is great. Not perfect (no software is), but the Ubuntu guys have done a good job.
From what I can tell, Microsoft have created a decent OS with Win7 -- improved and streamlined the features offered in Vista, just like they did with Win2000 to XP. Time will tell how it does.
Things are looking interesting with Snow Leopard and other OSes (the BSD's, OpenSolaris, Android, Moblin and more). Consumer choice and competition is a good thing.
@Anonymous Coward 24/09/2009 16:01
You are not going bonkers. Mozilla are not adding the ribbon to Firefox. If they did, it might look like this:
If Linux is running on a platform that competes with Microsoft's dominant position (desktop), Silverlight is not supported so use Moonlight; if Linux is running on a platform that is new/emerging (Moblin), yeah Silverlight is supported!
Microsoft: Screw people running the desktop, they should be running Windows 7 and Silverlight.
The section being quoted is about the direction of applications in general in reference to not showing the menubar. This is used as justification to remove the menubar for Vista and later (under a section about hiding the menubar no less), not about adding Ribbon to Firefox.
Windows has the majority share on the desktop. This means that hardware manufacturers focus on this platform (especially graphics card and made-for-Windows hardware), so hardware support is less than ideal. Software developers and game developers focus on Windows as it has majority share. As a result, Windows keeps its majority share.
If people like Redhat and now IBM give up on the Linux desktop, hardware manufacturers will have less incentive to care and major applications slip (adobe give up on flash support, mozilla drop Linux as an officially supported platform, as does OpenOffice). This then results in more people abandoning Linux.
The same goes, as mentioned in the article, if Linux focuses on being a niche platform -- why should OpenOffice be supported on a platform that has specialised on providing a web-only platform, for example? I don't want to see this happen -- if it did, though, I would revert back to a LinuxFromScratch system.
Linux can -- and does -- make a good desktop platform. Is it perfect? No. (But neither is Windows.) One of its strengths (and weaknesses) is that it is very flexible: it can run on anything from mainframes, desktops, laptops, netbooks down to smartphones, portable media players and routers.
- Xmas Round-up Ten top tech toys to interface with a techie’s Christmas stocking
- It's true, the START MENU is coming BACK to Windows 8, hiss sources
- Google embiggens its fat vid pipe Chromecast with TEN new supported apps
- Pic NASA Mars tank Curiosity rolls on old WET PATCH, sighs, sniffs for life signs
- Microsoft: Don't listen to 4chan ... especially the bit about bricking Xbox Ones