Hacking Mac OS X
Bill Hamm writes "DB is carrying a deep interview with Jonathan Rentzsch, who created an open source technology to allow other developers to inject their code into any running process to alter its functions and written papers for IBM to program the PowerPC correctly. The interview is huge and technical, and all over the place in terms of content. Some of the things discussed are the reasons for corporate America's resistance to buying from Apple, software optimization, the importance and history of 10.4's Core Data, why WebObjects is no longer relevant, the status of PowerPC compilers, and why Mac OS X's Finder should be killed off."
...that the "hacking" in "Hacking Mac OS X" is referring to "hacking" in the traditional sense, not "cracking".
And for more on mach_inject, referred to in the summary, see Jonathan Rentzsch's website...and an interesting list of mach_inject and mach_override users.
As for the Finder, it may be true it was a "compromise" of sorts between the NeXT world and the Mac OS world. But it wasn't necessarily the social compromise between "personalities" within Apple it's pained to be; it was likely more of a technical one. It's not perfect, and it's woefully inadequate for some tasks that involve managing thousands (or hundreds of thousands) of files. But it's still more than sufficient, and there's no reason to completely junk it: it can continue to evolve and be improved upon.
The interviewee argues that WebObjects is still relevant, and the fastest way of coding Web Applications, but is in danger of becoming irrevelevant if Apple do not update it soon!
Get a free iPod Nano 4GB!
To understand the basic complaint about the OS X Finder look at this ArsTechnica article.
Get a free iPod Nano 4GB!
Those compaints are from before 10.3 came out, which is when the OS X Finder took several leaps forward.
Also, most of the article seems to be about pimping an alternative design ideas (mainly credited to Tog) which don't sound better than the current design in any way whatsoever (IMHO, YMMV, uh... IANAL.)
Information wants to be anthropomorphized.
I use Path Finder as a drop-in replacement for Finder. It's a nice improvement over the standard finder, and its many options and side panels can be turned off to suit your preferences. I really like the drag n' drop 'holder', and showing directories grouped separately from normal files is just a good idea (haven't figured out how to do this with finder, what a pain!)
John Siracusa of Ars Technica has written up a very fine article about the problems with the OS X finder. I'd give my opinions on the matter, but I have to get back to work.
No it didn't.
Isn't that what we complain about so much with IE and Active X?
.psd files to users. Now lets say their mail app uses Automator to ask Photoshop to display the image. THAT could be dangerous, but unlike ActiveX installing code that is dangerous by design, Automator would require exploiting a real, installed application.
That depends, is it going to run arbitrary untrustable code off some untrusted website?
Seems like it'd be far safer than ActiveX if I can't email someone an Automator script and have it run, or trick someone to coming to my website and running an Automator script I provide.
On the other hand, lets (theoretically) say I have an image that causes photoshop to overrun a buffer and run arbitrary code. I could email the
While the presence of Automator doesn't make this THAT much more dangerous (most people would use photoshop to open a psd file anyway, making the whole Automator thing not-an-issue), this does make it possible to "surprise" users who may have known about the exploit but thought that FooBar.App was "safe".
It's surprisingly simple. You know the Burger King motto "your way"? Apple's motto has always been "our way", and this simplicity, while it makes things easier for Apple, is a royal bitch for business customers. Further, Apple has always focused on "how can we control this to minimize our work" instead of "how can we help the customer?"
It used to be that if your Mac broke down and you were a business, an independent (but Apple certified) technician, maybe even one on your premises and employed by you, could ring up Apple, get the replacement part (it could even be done electronically, way back in the mid 90's, gasp!) and you'd be in business the next day. Many Apple resellers stocked common repair parts. As long as you had a serial number that wasn't out of warranty, nobody asked any questions. I got a free bezel to my 8500 when it broke, simply because the model wasn't old enough yet to be out of warranty. Two days later my new bezel was at the local Apple reseller. When I lost the end-cap on the hinge of my old powerbook, the university Apple technician took my serial number, and the next day tossed me a bag of 6.
Nowadays, Apple Stores are pretty much the only game in town thanks to preferential prioritization on severely limited inventory and (borderline illegal) price fixing.
They don't, for the most part, stock replacement parts. They don't do anything but the most basic repairs. Independent technicians can get certified by Apple (for thousands of dollars, which gets you self-study materials and 6 months access to Apple's internal support DB) but unless you meet a whole bunch of criteria (like moving around a half million dollars of product a quarter, carrying boatloads of insurance, etc) you don't qualify to be a reseller, and ONLY RESELLERS can order parts OR have access to Apple's internal technical support database OR perform "warranty" repairs. When I had one of the tiny little plastic feet replaced on my PB 17" a few months ago, I had to wait for half an hour while the Genius (broken sticky feet = Genius level) clicked through endless menus on the apple website, printed out about 10 pages, half of which I had to initial or sign to "authorize" the warranty repair, and the other half I got to keep (oh boy.) Replacing the foot took...2 minutes.
So, the short of it is that unless you bought Applecare AND you have a desktop (on-site service for laptops is not done under any circumstances; you've got to wait several days just to get it to them, because they have to ship you a box first), you're dumb shit out of luck for fixing your Mac quickly.
Want another example? If I'm a small business, I can get an account rep assigned from Dell, Gateway, etc. Even if I only buy a machine once a month- and it's been my general experience that they do a decent job at remembering who you are. Apple? You can buy 100 Macs a year and still not get anybody at Apple to say "boo" to you, because there's no such thing as direct sales. The best they can manage are "regional" business liasons, and they don't remember you from a goddamn hole in the wall.
Still not enough? If your Dell, Gateway, or HP breaks, out of warranty, you can call up that company's parts department and get a replacement. Apple? Nope. Sorry. You have to send your machine to the one Apple service center in the country (Texas) which will cost you a minimum non-refundable $250+ just to "look at it". They're infamous for wrecking unrelated parts and damaging stuff, and you can pretty much foget any data on the system...and how many of us have the facilities to back up 60GB? Not me.
As mentioned before- independent techs can't get parts. Customers certainly can't. Even Apple employees can't get parts- an employee said if he wants a personal system fixed, he has to take it to a repair center on the Apple "campus". So there's a huge "black market" in parts, often times from used machines that were bought on ebay and ripped apart for their guts because they're worth their weight in gold as parts.
Please help metamoderate.
What is amazing me most is the fact the someone has moded this up
People this is a trol and a very old one that has been posted a great deal.
from wikipedia http://en.wikipedia.org/wiki/Slashdot_troll
The only things certain in war are Propaganda and Death. You can never be sure which is which though
For years Mac's windowing/subwindowing functions required multiple open windows on a screen to explore subdirectories.
No they didn't. You're just showing your ignorance.
If you want to add it, there's a "Path" button that can be applied to the Finder toolbar. Use the "Customize Toolbar..." menu item and drag the "Path" button to the Finder toolbar.
A better choice in my opinion, though, is to command-click on the window title. That's been a feature of the Mac Finder since System 7.
Because Apple probably wouldn't be able to distribute it with the OS (for free at least).
The OS and people's applications are compiled with the same compiler leads to fewer support issues. Given that GCC's C++ ABI has changed a couple of times in the 3.x series do you know the head aches that would cause if the system libraries were one ABI and the users were compiling to another ABI?
Once GCC settles down a bit and finally gets the ABI correct then we'll talk.
That's not what Automator does. It's understandable why you'd get this wrong, but please check out "Working with Automator."
Short version: Automator lets you chain together very small bits of code called Actions to create Workflows.
Think of Actions as being like UNIX tools, and Workflows as being like command pipelines, and you'll have the idea.
Automator is not a general-purpose AppleScript tool. You can write Actions in AppleScript if you want -- though Objective-C is better, in my opinion -- but you can't use Automator to just talk to any application with an AppleScript dictionary. That's not its job.
XLC only writes code that's compatible with the G4+ processors, Apple can't use it as long as they need to support G3's too. There are also issues with the fact that it doesn't behave exactly like GCC, so Apple would have to deal with this when building apps that are based on OSS software(i.e. most of the BSDness of the OS), and they'd need to pay to include a copy with every copy of OS X or be stuck in an odd situation of users using GCC while Apple uses XLC.
You can make it stop the nagging if you turn the date to some amount of years in the future (say, 2030), open quicktime and say "ask me later", then quit quicktime & turn the date back to normal. It'll ask you again in 2030. I'm not saying that it's not annoying, but thankfully there's an easy way to stop it.
For years Mac's windowing/subwindowing functions required multiple open windows on a screen to explore subdirectories.
... um ... WRONG.
This has been untrue since System 5, circa 1989. Certainly pre Windows 3.0.
Mac designers were so proud of multitasking that windows didn't maximize automatically -- hardly making efficient use of screen real-estate.
This is a bizarre remark... drug induced?
1) Macs had overlapping Windows before they had threading.
2) The first multi-tasking implementation (beyond desk accessories) involved multiple virtual screens (no overlapping applications).
Many applications remember the state you set them in when you last used them and reinstate it when launched. Some don't. The same applies in Windows, with the exception that (a) it's easy to force maximization if you know a bit, and (b) Windows maximizes windows to fill the screen whereas the Mac maximizes windows to show as much as possible, but no more than required. I don't see how the latter is a less efficient use of screen real estate than filling the screen with a largely empty window.
So
Mac never attempted to price their machines competitively for corporate America
I assume by "Mac" the writer means "Apple". In fact, Apple has offered many price-competitive computers, e.g. the Classic, the SE, the IIcx, the IIsi (the Mac mini being the most extreme example). It's not like the IBM XT was priced under the Apple II.
In any study of TCO I've read (e.g. from Gartner) you'll see Macs have a lower TCO than Wintel boxes. I would assume TCO matters to corporate America -- but only when comparing non-Apple options.
I don't think having a different compile platform for the OS versus apps is that big of a deal (do all people use the same compiler in the windows world? let alone microsofts?), though I do think it would be in apple's best interest to buy some sort of license for the xl* compiler and/or give away to some of the performane intensive benchmarking apps out there like photoshop..
As an aside what would be brilliant would be to try to convince ibm to do what intel did which is make the compiler free for GPL compatible apps..
I guess in the grand scheme of things if you get a minimum 10% speed boost, turning a 2.5 ghz machine into a free 2.75 ghz equivalent isn't anything to sneeze at, and given some of the speed gains turning a 2.5 ghz box into a 3.75 ghz box would be fantastic, especially since its practically free and carries over as the chip speeds actually increase..
-bloo
Going into terminal and killing the Finder would not help it recover from a fucked up network volume anyway. What's going on is that the Finder is halted and waiting for a response from the network file system driver in the kernel, and *that* is halted waiting for a response from a remote server that is probably never going to arrive. In order to keep everything in synch (I assume it's trying to avoid the driver returning data to internal process accounting structures that no longer exist, or trying to kill the driver within the kernel itself), NOTHING can kill the frozen Finder, up to and including kill -9.
>I would like to know more about it.
www.python.org
>What is it good for?
It's good for general-purpose programming, particularly if you need the end result to be cross-platform.
It's extensible with all kinds of 3rd party libraries available. It's a much better fit for many types of work than is Perl, and arguments have been made that it is more efficient and easier to learn than Java.
>Any drawbacks?
Like Java, it's a bytecode-interpreted language, so to-the-metal programming isn't really possible.
>How to learn it?
It's quite easy to learn, even as a first programming language. It's extremely easy to do certain kinds of complex things (you name it) because there are so many modules available. This is something that Python shares with Perl and Java, of course, but python programmers argue that it's altogether easier to work with.
I was on the fence, until some production code rolled in my company that was written in Python. It's a success story for the folks involved, and the quality of their work and the speed at which it was completed, really speaks for itself.
-fb Everything not expressly forbidden is now mandatory.
It's a well known fact [wikipedia.org] that the term "hacker" did not originally apply to the people that media now calls hackers....And just in case you all are too lazy to read the links.....[blah blah blah]
There isn't anything on that Wikipedia page about the original use of the word. Perhaps you yourself should read your links?
It's well known that the very first use of the term "hacker" in the context of IT referred to people who destructively abused computer networks.
I have a positive modifier on Troll. When I mod someone Troll their karma should go UP!
While I don't have a formal definition it basically means a programming language where you have a sequence of statements.
Most languages widely used are imperative languages, such as C/C++/C#/Jave/Perl/whathaveyou.
An example of another type of language is functional programming languages such as ML, Miranda and F#.
I believe Lisp is generally considered a functional language, but it also supports sequences of statements so I guess it really is a mix.
I'm a bit rusty on this subject, so if someone wants to correct me on this then please go ahead.
The Internet is full. Go Away!!!
In his original paper there's a missing step:
1. Discover the original function's address.
2. Test the waters.
3. Make the original function writable.
4. Allocate the escape branch island.
5. Target the escape island and make it executable.
6. Build the branch instruction.
7. Optionally allocate and engage the reentry island.
8. Atomically:
a. Insert the original first instruction into the reentry island.
b. Target the reentry island and make it executable.
c. Swap the original function's first instruction with our custom-built branch instruction.
Missing step?
9. Make the original function non-writable.
cracker (kråk-er) n.
A thin crisp wafer or biscuit, usually made of unsweetened dough.
One that cracks, especially:
A firecracker.
A small cardboard cylinder covered with decorative paper that holds candy or a party favor and pops when a paper strip is pulled at one or both ends and torn.
The apparatus used in the cracking of petroleum.
One who makes unauthorized use of a computer, especially to tamper with data or programs.
Offensive.
Used as a disparaging term for a poor white person of the rural, especially southeast United States.
Used as a disparaging term for a white person.
If you've not used a declarative language, try playing around with Prolog. It's not always fast, but sometimes you can do things in two or three lines of Prolog code that would take tens or hundreds of lines of imperative code.
I am TheRaven on Soylent News
The Mac OS Finder has an internal database which stores meta information on files. It mostly handles what creator types and file types map to certain applications, but it performs other duties as well. The idea is that each file has a 4 byte creator type which says what application created it and a 4 byte file type which classifies what type of data is contained within the file. When you open a file the Finder does a lookup to find out how the file should be treated and what application should be notified of the action.
Occasionally this database would get out of date, would require compacting, or would be come corrupted. To rebuild it all you needed to do was to get the Finder to restart and then hold down the option and command keys. The Finder would then take a few seconds to recreate the database and clear up any issues.
Rebuilding the desktop fixed most of the problems that Mac OS was prone to. The rest of the problems were either bad preferences, a bad system extension, or bad hardware. Typically the first step in diagnosing a Mac OS problem was to first rebuild the desktop database, then reset the PRAM (a set of preferences retained between reboots), then test to see if there was corrupt preferences, then system extensions, then hardware. Overall you usually caught problems quickly and they were easy to correct.
You can read a bit more about rebuilding the desktop here
Currently under Mac OS X the desktop database is much more advanced. It uses different methods to keep track of files and auto-corrects problems that used to hang up the Finder. Thus you do not have to worry about rebuilding the desktop database under Mac OS X. In fact the entire Mac OS X operating system is much more stable than the pre-Mac OS X systems.
Sapere aude!
And the performance isn't nearly what it could have been. Every use BeOS? You make a file on the desktop from within an app, boom, it appears in the background instantly. OS X: make a file or folder, click on the desktop to (hopefully) force a redraw, and a moment later (on a dual-G5) it'll show up. Editing a file that you can see in a window in list view? Save it and BeOS updates the 'date modified' column in the background instantly. OS X? Click the file and it'll update. And the Finder is especially lazy about updating disk usage when you have the 'calculate folder sizes' option checked. C'mon, Apple... I had BeOS R3 for Intel and PPC in *1998*! It's 2005 now! Want me to send you my old CDs?
This has nothing to do with performance, but the fact that the Finder does not use kernel event notifications (kqueue and such). Early betas of Panther had it enabled, but something was causing problems as it vanished before the final release. I think I recall reading that Tiger has this finally implemented (and it better).
I don't know what kind of crack I was on, but I suspect it was decaf.