First look at Project Spartan, Microsoft's take on the modern browser
arstechnica.com
arstechnica.com
Edit: It was Office 2000 that enabled this, called "Web Discussions". You had a "Discussion" button in IE[1]. Here's a paper talking about how useful it was: http://research.microsoft.com/en-us/um/redmond/groups/coet/a...
It used the discussion feature of Microsoft Office Server aka SharePoint Portal Server. The history of SharePoint is very complex but interesting:
https://web.archive.org/web/20120419073951/http://blogs.msdn... , https://web.archive.org/web/20080303180618/http://blogs.msdn... , https://web.archive.org/web/20120409232321/http://www.joinin..., http://en.wikipedia.org/wiki/SharePoint , https://web.archive.org/web/20120519235139/http://www.seocon... , http://en.wikipedia.org/wiki/Microsoft_FrontPage
I remember an SP2003 installation with thousands of sub portal sites, hundreds of GB (blobs) stored in SQL server. What I really don't understand is the almost non-existing upgrade paths (between versions '01, '03, '07, '10, '13) and the URL-hell (IIS URL alias would solve that).
Instead of Cairo-OS, WinFS, an improved Explorer shell & improved file server, nowadays SharePoint fulfill various enterprise needs. http://en.wikipedia.org/wiki/Cairo_(operating_system) , http://en.wikipedia.org/wiki/WinFS
I also didn't know how to scale the solution up to allow it to work on every web page for every users.
Also, I anticipated that there would be lots of privacy concerns as you'd basically be collecting every web page a user went to.
This is actually fairly trivial to do right.
2. We also wanted to provide real-time stats for pages, sites, and hosts. This requires IDing the user and page in a reversible way. Even if it's not reversible, you could easily use a rainbow table to reverse, especially with the limited IPv4 namespace.
However, it seems that such URL collection isn't too big of a concern among the general population.
You also have to maintain plugins or extensions across all the major browsers, which is a pain.
This was a project I was working on before completing a CS degree and/or getting exposure to some of the solutions that could be used. I'd be interested in exploring it again, but I have a few more interesting projects on the stack for now.
Additionally, there are many other large databases (Hadoop, etc) that will scale linearly. While it may not be ideal for this use case, but a proper multi-master setup with many read slaves in either PostgreSQL or MySQL could be described as being able to scale linearly to some unspecified extremely large upper limit (see work done previously at Yahoo, Google, Amazon, et al). Much of this also depends on what you define as scaling linearly (are you looking for linear scaling for memory, reads, writes, storage, latency, costs, etc?).
Real time stats for pages, sites, hosts for a shared annotation system across browsers doesn't mesh well with your initial condition of "privacy concerns."
[0] http://techblog.netflix.com/2011/11/benchmarking-cassandra-s...
The "privacy concerns" weren't necessarily my own, I just anticipated that others might have them and therefore not adopt the system. For me, the point was to share what sites you were visiting because you'd be annotating (well, chat/message-boarding) those sites with others. Additionally, I thought it would be cool to see who was where at a given time, what sites were popular, or which pages people found particularly interesting (interesting enough to visit anyway) at any given time.
partition_id = well_distributed_hash(normalize_domain_name(<domain>))
really don't think this would be an issue, or even a concern, as 1 billion writes per second are "Google-levels" of writes. One would likely run out of financial resources supporting an expansion of 86 terrabytes / day (assuming 1kb minimum new data per write), far faster than you would ever max out the capabilities of the technology.
It's more a finance/business exercise to determine if revenue inflows would actually meet, cover, or exceed revenue outflows on a project like this. You can always make the technology scale and meet the demand.
It also sounds like the kind of thing some would want to use to overlay their own advertisements onto other people's websites...
hereby super limited in reality.
and if it's people then you just invented comments. which are toxic most of the time. also invented (rap)genius. congrats, millions of funding for you.
One of the primary reasons why Microsoft needs to immediately halt, backpedal and release a version that can run on Linux/OSX (beyond the obvious need to port to Android/iOS) is that so many high quality sites are tested using automated testing suites (through Selenium, or otherwise), and those testing instances typically run through bash shells / scripts. While I'm sure you could jury-rig Windows 10 to do that (I've used bash on Windows previously, via Git Bash), you would need to rewrite extensive build and testing tool chains to use non-Unix-y commands --- and even then, you'll likely find many of the open source libraries you rely on are broken, unmaintained, or otherwise unusable on Windows.
As an anecdote, and fairly recently, I actually tried getting unit tests for a pre-existing, fairly sizable project with 10s of developers and many hundreds of thousands of lines of code to run on Windows, and realized it was cheaper to just hand all the developers Mac Books than to either train them on installing Unix tool chains on Windows, or on "properly" using Linux -- especially considering they were not responsible to write the unit tests, just run them. It's also much easier to cross-build for Windows from a Unix system, thus it was possible to completely eliminate Windows in the release process almost completely, other than for later manual testing/verification that can't be automated anyways.
I honestly couldn't care much if they supported Android or iOS. I'm simply pointing out that the competition -- Chrome, Firefox, Opera -- all have these features, and are what people consider "modern." You can't go backwards on featureset and still be considered modern.
Of course, your argument would be that of course Safari on iOS has a large mobile market share, so it qualifies as 'modern', in spite of the fact that it doesn't run on a UNIX system that can be easily scripted.
But are you going to really argue that Windows doesn't represent a significant marketshare of users?
If you're willing to buy all your windows developers macbooks to help them run unit tests, what's to stop you ordering all your UNIX developers a windows laptop to host windows-only browsers running tests driven through a remote webdriver just like the ones that you run on iOS devices?
Did you try Cmder? That gets you a pretty reasonable bash environment on Windows with a single install that's dead simple.
The quickest, fastest way that I know to get the Unix shell commands/stuff up on Windows is to use the packaged Git installation (which I referenced in my previous post), but the issue then is that if you have ever dealt with semi-large code bases that involve one or two separate programming languages, then every developer has to track down all the various packages (if they exist), build them, or otherwise install / get them to work. This is often why in companies Windows devs are just given a shell account on a central Linux server to run their unit tests, or runs them inside a VM on Windows. Windows doesn't have any kind of central package manager akin to apt / yum / port for Unix systems that would allow for easy and quick installation of widely used open source software. While they are trying to push their own package manager on Windows, I don't see that as being successful anytime soon.
And, ultimately this approach (of installing Unix toolchains on Windows) is just a hackish workaround, and doesn't address the root issue that the most powerful automation toolsets in the world are all written / developed on / designed for Unix-like systems, and they simply do not run natively on Windows. If Microsoft genuinely wants to join the modern development ecosystem, they will provide cross platform versions of their browser and keep them synced and up to date across platforms, so that they can be plugged into the existing infrastructure (and thus investment) companies have made in their development environments, automated testing, and continuous integration/deployment.
Microsoft can not ignore (by virtue of exclusion) Linux / OSX (and other Unix-es) if they want wide-spread adoption of this new Spartan browser, simply because they want to push the Windows platform. That strategy may have worked in the late 90s, early 2000s when there was no other options for a readily usable, simple user experience desktop platform , but that's not the case any more.
Most people install a better terminal emulator to replace OS X's default terminal app anyway, so we're all installing something to get a nice experience. I really haven't missed any of my Mac's command line friendliness when on my Windows machines using Cmder.
Chocolatey is a fairly popular apt/yum equivalent on Windows. Most anything built on Node, like npm, bower, or jspm, works fine too.
Could things be better? Sure. Every platform has room for improvement in areas. As a developer primarily using Windows here, my day-to-day experience just doesn't seem anywhere nearly as bleak as you're describing though.
Also, the thing here is that it's not optimal, and there's also non-trivial licensing costs when building large continuous integration/deployment systems. Additionally, I don't believe you would be very supportive of the experience on Windows if you were more familiar with what is possible on Linux, OSX or any other Unix, and if you had strong understanding/knowledge/command of the toolsets available on those ecosystems.
There is nothing fundamentally wrong with using Windows as a regular desktop environment (I'm forced to almost every day). It's actually a fairly good experience (from a desktop perspective), but it doesn't give developers and system admins true, powerful out of the box toolsets. For instance, installing PostgreSQL/MySQL/Apache/Nginx/or whatever on Windows is extremely painful, cumbersome, and not standardized across systems. Conversely, compare this: (yum|apt-get|port) install (postgresql|mysql|apache|nginx).
To do proper automation on large sets of Windows systems, you need Windows Server, Active Directory, and Domains properly setup configured, and licensed, especially if you have any kind of security policy and need to push / control updates from a central server and keep strict control of / standardized versions across systems (for instance, in a strict, actually PCI compliant environment). Why bother with any of that when all of that mess / problem is taken care of by your distribution (OSX/Linux/etc), as one would expect it to be. There's no dependency graphs with large sets of Unix-likes, unlike in the Windows ecosystem -- and that really is the main issue here.
Of course you're right that things like bash aren't present on a fresh install of Windows. I just don't see much issue with needing to run one Cmder install though, because I know almost no one who uses the built-in terminal app on OS X either. Installing your preferred terminal is somewhere around step 2, after installing your preferred browser. At that point, it's a wash.
> Additionally, I don't believe you would be very supportive of the experience on Windows if you were more familiar with what is possible on Linux, OSX or any other Unix, and if you had strong understanding/knowledge/command of the toolsets available on those ecosystems.
That's a huge assumption. Over the years, I've spent a ton of time with everything from DOS 1.0, to the Amiga CLI + REXX, to Solaris and AIX, to Slackware/RedHat/Ubuntu, to OS X, and to Windows. I first learned assembly on SGI Indigos running Irix and first accessed the web via Mosaic running on SPARCstations. I feel fairly confident in my perspective when it comes to the nuances of various platforms, but I currently prefer Windows.
I mean this in the least confrontational way possible, but that's precisely the kind of off puttingly patronizing "you'd understand if you didn't use Windows" shtick I often see from Mac/Linux users that motivates me to comment on these threads.
Heck, just last weekend I was ripping a buggy apt-installed xcache out of the Ubuntu/Linode apache server that hosts my blog and replacing it with a compiled .so to fix a bizarre edge case where xcache was breaking one of my WordPress plugins (and sucked up two weeks, on and off, of debugging with the plugin's author). In my experience, these type of opaque problems are tremendously more common on *nix than on a modern Windows Server.
BTW, I use ssh from the Cmder command line when I log in to that Linode VPS, just like you might from the command line on any other platform.
> For instance, installing PostgreSQL/MySQL/Apache/Nginx/or whatever on Windows is extremely painful, cumbersome, and not standardized across systems. Conversely, compare this: (yum|apt-get|port) install (postgresql|mysql|apache|nginx).
Come on. No one who has ever installed any of those things in production would pretend it's so simple. You're going to spend so much time on configuration that the difference between apt-get and running an .msi is negligible.
Actually, no. This discussion is about development and configuration of a workstation for development and the necessity to have the developers run the same unit tests that also need to run the same on the integration servers (not Windows). For the vast majority of cases, actually yes, all one needs is a apt-get/yum/port install of the package dependencies and that's it -- most if not all "out of the box" configuration for most developers will work just fine for the development environment (ie, the developer's workstation). Additionally, those system package managers provide a much simpler and easier way for a developer to manage system updates (have you ever used Windows update? it's unbelievably slow).
And, to your above reference, re: Ubuntu, while I've personally never had any issues with using Ubuntu as a production server, I wouldn't recommend doing that (and do not use it where I have direct authority/control or choice), because for production one would want 'debian stable' (and is what I have recommended for years). One would not want a headless server environment to use Ubuntu, as the differences that make 'Ubuntu' vs 'debian testing' are primarily downstream additions that are only good/applicable to the desktop and do nothing to help the underlying stability of the system.
To emphasize here, I am not discussing simple one-off Wordpress deployments for your hobbyist blog that likely no one reads, and that you most likely don't even need xcache for. I highly doubt you have the traffic volumes wherein xcache would actually show significant improvement/performance over nothing at all (do you even understand what xcache does?). And if you did, you should likely move on to HHVM (which, btw, is production ready, and works out of the box for the most popular distributions).
Quite frankly, the fact that you are discussing compiling a .so for xcache on Ubuntu shows just how far behind the time you are on the state of Ubuntu and PHP as there are working xcache apt repositories that you can use quite simply, please see: https://www.dotdeb.org/ . Your anecdotal failure of having a problem building a single .so (which you shouldn't have been wasting time compiling yourself anyways), is only representative of your particular issues and is not at all representative of how software is actually used, developed, tested, and deployed in large, significant (monetarily, culturally, politically, etc) systems.
Additionally, the most basic "best practices" for system administration would call for the use of packages wherever possible. Manually compiling extensions (or other dependencies) that you did not write (xcache), directly, on your production linode instance, really shows that you are likely treating your server instances as pets and not as cattle, which doesn't really work in the cloud / server 'farm' paradigm. It also shows that you're likely not working in a large, audited secure environment wherein all commands/actions/configuration changes need to be signed off / logged. I'm also going to guess you do not understand the intricacies of continuous integration/deployment, security, and many other basic aspects/tenets of system administration, and, thus, do not fully grasp why what you did -- manually compiling a .so on a server -- is such a no-no.
Please understand, I am coming from a background of building large, mission-critical software projects with large, geographically diverse teams who have varied skillset levels (from newbie to guru), and that the necessity to conform to corporate and governmental regulations (audit or otherwise) is non-negotiable, and thus certain things must be done (automated testing, etc) which in turn limits the scope of what can be done with minimal resources/time. Bringing this back to relevancy and 'Spartan', this is why without working ports that fit into existing toolchains (unit testing on Unix-likes), it will never be a relevant (nor in my book, "modern") browser unless it magically gains significant market share overnight. I find that highly unlikely since Windows is a dying platform, and the majority of users have shifted to mobile. I also find it highly unlikely that Windows will start to outpace Android or iOS anytime soon as a mobile platform. While I welcome the new browser, Microsoft is unlikely to gain the needed marketshare unless they give developers the features/tools they need to integrate into existing, well-developed workflows/infrastructure. That isn't going to happen without a Unix port.
And actually, yes, I looked at your site, your LinkedIn profile, and whatever. You don't know what you're talking about and are not any good at technology. You may think you are, but you're not. For reference, rank 80,000 is "hobbyist." Break the top 5,000, and we'll discuss whether or not you need xcache or HHVM.
Thankfully, I don't need to discuss with you whether or not I need XCache. More thankfully, I didn't see your poor advice before trying XCache for myself. It makes a dramatic difference in time till first byte on pages that aren't yet in the static cache (and all pages for users who are logged in).
How dare I try to improve performance for the puny couple million people who visit my site each year, even though Ken Shaw doesn't think they deserve it?
Anyway, I find myself asking why in the world I'm still wrestling this pig when I don't enjoy being muddy, and I realized that there really is no good reason. So, I'll leave you to it and let you have the last word about how bad I am at technology, Linux, updating my LinkedIn profile, using apt-get, etc.
Cheers.
Big sites like Google* and Facebook* work less and less reliable in IE11 (UI glitches, JS errors, CSS position issues). As almost all of their developers use OSX or Linux and most of the tests run on Firefox and Chrome, it's hardly a surprise. I loved IE since version 3 because of its native UI and its responsiveness, but as there will be no IE12 I will move on as well. Well, Microsoft could open up their browser engine "trident-edge" like they do with dotNet vNext.
* Google.com frontpage shows a unformatted sentence on top left corner for ca. 1 seconds, it seems like a JS loading race-condition. Every other week on FB a few minor features like selecting posts privacy groups are broken for a day or two. The React based search is unstable/broken on Android 2.3 as well, before that the mobile web version stayed already completely unchanged from 2010 to 2014. I don't want to blame them, as I guess the majority of users uses their apps and Chrome/Firefox.
now only Safari left to make a similar commitment and shorten the release cycles...
The real culprit behind us still having to support IE8 for some clients is your average enterprise IT department. They'll find ways to lock down updates on any browser. Just as some IT departments have auto updates locked down on Chrome/Firefox already, they'll probably demand a way to do that with Microsoft's browsers too (or find a way to block the updates without Microsoft's support).
Edit: Thing I forgot to add is that an aggressive patch management strategy just so happens to do great things for technical debt.
As for sandboxing, I just had a quick look at task manager and it seems to spawn a new process per tab.
But the font rendering being all blurry is still a showstopper. As is the apparent lack of addons, for blocking (and vim nav).
It's also very unfinished. Alt-D doesn't go to the address bar, which is a pretty big thing to forget... I'm guessing internal users aren't using it.
Also, don't think that somehow just disabling third party cookies is going to make you untrackable or prevent you from being thrown to advertisers.
Also, 3rd party cookie disabling is very difficult to do elsewhere - you can set up a proxy server to filter requests & responses but it has no easy way to determine 1st/3rd party requests.
i'll take that over the inter-windows-release stagnation and long tail legacy support we have to deal with today.
Honestly I think it'll have surpassed Firefox before the beta of Windows 10 finishes.