2,488 karma · joined September 14, 2008
Also the event / delegate thing makes C# really nice for GUI stuff.
Even if you think that performing some rendering computations server-side is somehow a patentable innovation, there's plenty of prior art out there already doing so. Score another one for the broken patent system.
However, the letter itself is interesting in that it confirms Mac malware is becoming a real issue.
Why not? I mean this as an honest question.
EDIT: If you're concerned about performance or system resources, try a PC with MSE sometime, I think you'll be pleasantly surprised at how unobtrusive good antimalware can be.
I agree that this is how most malware happens in general, but I was talking specifically about the subset of malware installations that are drive-by downloads, i.e. which are performed without user interaction:
http://en.wikipedia.org/wiki/Drive-by_download
What I mean to say is that most of those are exploiting third-party software (Java, Adobe Flash and Reader) rather than Microsoft stuff these days.
But hopefully they can take a more proactive course now that the DoJ's oversight is ending:
http://arstechnica.com/microsoft/news/2011/04/department-of-...
Well yes, but lately how are these drive-by installations happening? Mostly through holes in third-party software. My concern, as a Mac user, is that there's no fundamental reason it should be any harder to attack OS X this way; it's just that up until now Windows has been a vastly more profitable target. And that is changing.
If you're a careful and conscientious user I'd honestly say you're safer on Windows at this point, because Windows is used to being attacked. It's used to defending itself against this kind of threat. You have this ecosystem of powerful antivirus programs like MSE or AntiVir that update themselves constantly, and innumerable other third-party tools such as Secunia PSI as preventative measures, and these just don't really exist on OS X yet. Windows also yet has some exploit mitigation facilities that OS X lacks, such as ASLR and kernel patch protection.
It will be a while before OS X has developed such an ecosystem of its own, and we just have to hope the adjustment period won't be too painful.
Neither of these things should be surprising to anyone, and hopefully the antimalware situation on OS X will improve before progressively more insidious Mac viruses are released.
Yes they do:
http://support.microsoft.com/kb/129972/en-us
"Call 1-866-PCSAFETY or call 1-866-727-2338 to contact security support."
> Two hundred clueless posts on a web forum out of a userbase of millions doesn't mean there's a "malware explosion," as he described it. Why are people falling for this flamebait?
If Apple is issuing special instructions to its support staff about this malware, then clearly this is a pronounced problem.
1) Macs do tend to run hotter than PCs, and this could decrease HDD lifespan.
2) We've seen in the past that OS-specific power management settings can be detrimental to hard drives, as with this famous Linux bug: https://bugs.launchpad.net/ubuntu/+bug/104535 Although I doubt it's actually the case, it's possible in principle for drives to wear differently under OS X than under Windows.
But it's a fallacy to equate "cutting edge" with "not Windows". Windows may not be as fashionable in the same way that Macs are with the Starbucks/college campus crowd, but it's certainly no less "cutting edge" a desktop operating system than OS X or Linux.
Or maybe not. I'm just saying, we can't assume either way.
1) A remote code execution exploit in Chrome
2) A privilege elevation exploit allowing the hijacked browser process to break out of its mandatory access control jail
Number 1 is of necessity a bug in Chrome itself (or a plugin). Number 2 is probably a vulnerability in the Windows sandbox, but it could instead be that they found a way to successfully attack the small part of Chrome that runs outside low integrity mode. They weren't specific as to the details.
This is, again, at the very least a remote code execution hole in Chrome, and there's no fundamental reason Linux or OS X should be invulnerable to the same hole. That Chrome on Windows is less secure than on Linux or OS X would be the wrong thing to take from this; the point of this demo is that VUPEN accomplished the feat of bypassing all the security mechanisms protecting Chrome on Windows, whereas on the other platforms you have fewer of these mechanisms in the first place (no real ASLR on OS X, no Chrome sandboxing last time I checked on Linux).
Sure, and I acknowledge as much in my post above, that PowerShell's object orientation is most appropriate for the Windows environment. But even if you aren't concerned with COM, I still think PowerShell is pretty nice, and I wouldn't mind seeing a port to Linux. So for that reason I welcome its addition to the Community Promise.
> TBH I wish they'd added features to IronPython instead of making a new syntax, but such is life.
I don't think that would have worked well...
You have to keep in mind that PowerShell is intended to be used interactively, and this has all sorts of implications for the language design. For instance when you type
PS > foo
at the PowerShell command line, "foo" may be a pure PowerShell function, but it could also be a cmdlet, or an external command somewhere else on the system. If this were a straight Python REPL instead, you'd have to do external calls differently from Python function calls, like so: Python > system("foo")
and that gets old real fast. Likewise you need to allow bare strings and ditch parentheses for function calls so you don't wind up saying cd("C:\"). You'd also have to come up with a more succinct syntax for chaining Python generators assuming that's what you want to use as a substitute for PowerShell's cmdlets. Plus there are concerns like, hey, we can't use the backslash as a string escape operator, because suck as it may, that's the traditional path separator on Windows, so we've gotta make it something else. By the time you're done, it's not even Python any more.And on top of all that: in my opinion, as much as I love Python, significant whitespace really sucks for REPLs...
So I don't think Python would have been an appropriate choice for a new Windows command line interface. But the great thing about PowerShell is that even if it isn't interactive Python, you can always implement cmdlets for it in IronPython (or pretty much any other .NET language)...
To answer your question, PowerShell's big win is that it's an object-oriented shell on top of .NET. Where the Unix shell pipes flat data, PowerShell pipes .NET (and COM) objects.
In practice this means things that may require complicated and often fragile text-wrangling in the Unix shell are straightforward and robust in PowerShell. For example, suppose you wanted to kill all processes with a private working set greater than 1 GB:
ps | ?{ $_.PM -gt 1GB } | %{ $_.Kill() }
Here ps returns a collection of all current processes, then pipes it to the where-object cmdlet (abbreviated "?") which filters the collection to those with a private working set greater than the given size. The filtered collection is then piped into the foreach-object cmdlet ("%") which invokes the Kill() method on each object passed in – these are real .NET objects being passed around, so you can invoke methods, set properties, etc.You can get the same result with a Unix shell script, but you have to be careful to count the columns output by ps correctly, skip the output header, pass it through awk, save the corresponding PIDs and then invoke the kill command on them... and then it all breaks if you run it on a different Unix system where ps outputs a different formatting. In practice you usually leave the shell environment and write a Perl or Python script instead for this sort of thing.
In PowerShell you can directly instantiate .NET and COM objects, and you can implement your own cmdlets and modules either in the PowerShell scripting language or in any .NET language like C# or F#. So e.g. you can access the .NET class libraries to get the time as so:
[System.DateTime]::Now
And this makes PowerShell handy for interactively developing .NET class libraries (at least until C# gets a real REPL, and if you aren't using F# anyway). Of course this object-oriented approach is all the more necessary on Windows, which is inherently an object-oriented system (think OLE automation, WMI, etc., let alone .NET) than it is on Unix-based systems.Some people will complain about the PowerShell scripting language... and sure, it's not perfect, but I think the team did about as good a job as possible satisfying the various requirements involved in building a new Windows shell language that could be used both interactively and as the basis for writing scripts. Superficially the language is heavily influenced by Perl, and while I'd still rather use Perl for "serious" automation tasks, PowerShell gets the job done... and it's nowhere near as ugly as scripting in the traditional Unix shell, nevermind the old Windows command shell.
For more on the design rationale, in the words of one of PowerShell's creators:
http://stackoverflow.com/questions/573623/powershell-vs-unix...
None of this sounds the least bit shady to you?