Re: [9fans] exportfs / u9fs / v9fs / npfs / spfs versus 9vx
On May 13, 2011, at 8:47 PM, andrey mirtchovski wrote: Have you had trouble getting to u9fs from 9vx? It seems to work from p9p, but not from 9vx. Every connection to my machine times out, but sources works. i haven't used u9fs in a very long time. i'm normally talking to synthetic file servers written using py9p or go9p. i periodically try to ensure that py9p and go9p are still able to converse with plan9 mostly out of habit. I'm also not having any luck with py9p. So, there seems to be something wonky between 9vx and my FreeBSD VPS. I can imagine two possibilities: 1. My VPS or hosting provider has some kind of obnoxious firewall between me and 9vx 2. 9vx has to be set up somehow to access it The problem with #1 is that I can access it from p9p on the same machine as 9vx, and the problem with #2 is that I can access sources without any trouble. Anybody know what I'm missing, or have a good idea how to debug it? Thanks, — Daniel Lyons
Re: [9fans] exportfs / u9fs / v9fs / npfs / spfs versus 9vx
On Thu, May 12, 2011 at 01:17:41PM -0600, andrey mirtchovski wrote: How are you guys using these tools? it's not the most sophisticated setup, but it works, at least for the stuff that i need. pycrypto is a prerequisite: Have you had trouble getting to u9fs from 9vx? It seems to work from p9p, but not from 9vx. Every connection to my machine times out, but sources works. -- Daniel Lyons
[9fans] exportfs / u9fs / v9fs / npfs / spfs versus 9vx
Here's my situation: I have a FreeBSD VPS somewhere in the world. I have 9vx locally. I want to access files on the FreeBSD VPS from my 9vx running over here. How? - exportfs doesn't exist in p9p. - u9fs seems to be defunct; there's nowhere to download the source. - v9fs seems to be Linux-only. - npfs seems to be nothing but an umbrella for spfs. - spfs seems to build a binary ufs which, no matter how I run it, exits right away. Did I miss some documentation? What's going on? It feels like I'm missing some obvious trick. Security for this operation would be nice, but I don't consider it necessary. Thanks, -- Daniel Lyons
Re: [9fans] Compiling 9atom kernel WAS: Re: spaces in filenames
On May 10, 2011, at 2:34 AM, hiro wrote: 20$ for a juice? I thought the dollar was already pretty high these days? Seldom do I say this phrase but what the fuck! He's talking about wine. — Daniel Lyons
Re: [9fans] exportfs / u9fs / v9fs / npfs / spfs versus 9vx
On Thu, May 12, 2011 at 11:52:30AM -0700, Bakul Shah wrote: On Thu, 12 May 2011 13:14:55 CDT Stanley Lieber stanley.lie...@gmail.com wrote: http://plan9.bell-labs.com/sources/plan9/sys/src/cmd/unix/u9fs This is the basis of the OpenBSD port. unix/9pfreebsd is really too old to be useful but may be one can start a new FreeBSD port from the openBSD bits? I'd be interested in such a thing. It compiles w/ 2 warning messages on my machine. Setting it up is turning out to be interesting. I think probably the safest thing for me to do would be to try tunnelling it over ssh, since both host operating systems can do ssh v2. Still hammering on it. It does look like 9vx isn't really able to talk to the machine from here, which is odd because p9p's srv seems to be able to, at least make the connection, though I'm not having much luck with that either. How are you guys using these tools? -- Daniel Lyons
Re: [9fans] exportfs / u9fs / v9fs / npfs / spfs versus 9vx
On Thu, May 12, 2011 at 01:30:00PM -0700, Bakul Shah wrote: On Thu, 12 May 2011 14:03:13 CDT Daniel Lyons fus...@storytotell.org wrote: On Thu, May 12, 2011 at 11:52:30AM -0700, Bakul Shah wrote: On Thu, 12 May 2011 13:14:55 CDT Stanley Lieber stanley.lie...@gmail.com wrote: http://plan9.bell-labs.com/sources/plan9/sys/src/cmd/unix/u9fs This is the basis of the OpenBSD port. unix/9pfreebsd is really too old to be useful but may be one can start a new FreeBSD port from the openBSD bits? I'd be interested in such a thing. I was thinking of a kernel port (mount_9ufs etc). My hopes were briefly raised until I realized the openBSD port is not a kernel port. Though I am not sure if a kernel port is worth it (and it is certainly a bunch of work). Wouldn't this be for mounting 9p *from* BSD, not exporting BSD's FS *to* 9p? -- Daniel Lyons
Re: [9fans] freedom (was Re: Compiling 9atom kernel)
On May 6, 2011, at 11:01 PM, Lucio De Re wrote: has anybody conclusively established why something MS could not successfully market has found such a ready audience when supplied by Apple? Is it the UI as one might conclude from an earlier post? The stylus, maybe? http://www.tuaw.com/files/stevesings.mp3 My pet theory is that it's the same reason people don't buy paper tablets that weigh 5+ lbs and have with built-in typewriters. Of course, you can't discount the possibility that there's a difference between a car and a horseless carriage. — Daniel Lyons
Re: [9fans] Parallels 5
On May 6, 2011, at 1:36 AM, Anthony Sorace wrote: I have a VM that I created under Parallels 5 and am currently running under 6. It's several months old. I seem to have gotten my version numbers mixed up. It's Parallels 6 over here as well. 1. ps2intellimouse: scrolling works if you're scrolling down, but if you make the scroll up gesture, the mouse skitters off to the right and really doesn't scroll back up. Anyone seen this or have a tricky solution? I saw this for the first time today. In my case, scrolling up *also* creates occasional b2 presses. Weird. I haven't used the GUI on Parallels much for two years, so I can't help with when it was introduced. 2. Ethernet card is not detected. I am not 100% sure there's nothing different in the configuration, but I've made the plan9.ini look the same in both VMs and still it fails to detect the NE2000 emulated ethernet card. There are also ominous messages about usbd: no hub during bootup that don't happen under the old one. Ethernet works here (and did under Parallels 5, as well), and I've got nothing in plan9.ini to trick it. You don't see the device at all (not just no data or whatnot)? There's no /net/ether0, so I can't run ip/ipconfig to get any further. Is there a boot log somewhere I can examine for messages I may not have seen, or any other debugging information I can go looking for? /dev/kmesg will give you the console prints so far; /dev/kprint will wait for new ones (and prevent them going to your actual console). I don't see anything interesting there, except that it couldn't initialize usbd. Does usbd work for you? — Daniel Lyons
[9fans] updating 9vx's Plan 9 install
On the 9vx homepage, it says 9vx comes with a minimal Plan 9 install. How would one go about making into a complete install? Running /usr/glenda/bin/rc/pull doesn't seem to work: post... replica/compactdb: opendb /n/boot/dist/replica/client/plan9.db: '/n/boot/dist/replica/client/plan9.db' does not exist replica/compactdb /n/boot/dist/replica/client/plan9.db: compactdb 151: opendb /n/boot/dist/replica/client/plan9.db: '/n/boot/dist/replica/client/plan9.db' does not exist pull 123: test 153: false Advice? -- Daniel Lyons
Re: [9fans] updating 9vx's Plan 9 install
Thanks, all! -- Daniel Lyons
Re: [9fans] updating 9vx's Plan 9 install
On May 6, 2011, at 11:31 AM, Anthony Sorace wrote: In addition to the tree Andrey noted, the general answer is simply to download the normal distribution image and use that. The effect is the same as using the tree Andrey pointed to and updating, but you'll save yourself time and work by just grabbing the current image. http://plan9.bell-labs.com/plan9/download/plan9.iso.bz2 just mount the image and copy the contents to wherever you'd like your 9vx root to live, and point 9vx at that. That didn't work. Rio doesn't live long; you create a window and then get this: invalid opcode f0 0f b1 at eip 00013f3b invalid opcode f0 0f b1 at eip 00020dc2 And pretty much have to restart it. I'm going to try the other methods. — Daniel Lyons
Re: [9fans] updating 9vx's Plan 9 install
On May 6, 2011, at 10:05 PM, erik quanstrom wrote: i should have mentioned this change was made on 18 mar. Using the plan9.tar.bz2 proved more fruitful. Perhaps there's something unsavory about the way Finder mounts ISOs. — Daniel Lyons
Re: [9fans] Parallels 6
On May 6, 2011, at 1:36 AM, Anthony Sorace wrote: 2. Ethernet card is not detected. I am not 100% sure there's nothing different in the configuration, but I've made the plan9.ini look the same in both VMs and still it fails to detect the NE2000 emulated ethernet card. There are also ominous messages about usbd: no hub during bootup that don't happen under the old one. Ethernet works here (and did under Parallels 5, as well), and I've got nothing in plan9.ini to trick it. You don't see the device at all (not just no data or whatnot)? No device at all. In frustration, I added the following to my plan9.ini: *noetherprobe=1 ether0=ne2000 This had no effect either. I didn't have to do anything interesting for the old image either, I don't think. Is there a boot log somewhere I can examine for messages I may not have seen, or any other debugging information I can go looking for? /dev/kmesg will give you the console prints so far; /dev/kprint will wait for new ones (and prevent them going to your actual console). OK, so after so many bytes free, I get this: cpu0: 2671MHz GenuineIntel Core i5 (cpuid: AX 0x20655 DX 0x1F8BFBFF) ELCR: 0E80 256M memory: 105M kernel data, 151M user, 574M swap usbinit...usbd/boot/usbd: /dev/usb: no hubs no usbd...no usb disk...auth...usbinit...usbd.../boot/usbd: /dev/usb: no hubs no usbd...no usb disk...mount usbd...boot: can't open /srv/usb: '/srv/usb' file does not exist time... fossil(#S/sdC0/fossil)...version...time... can't stat /srv/parts.sdXX: '/srv/partfs.sdXX' file does not exist init: starting /bin/rc And that's it, nothing particularly interesting. What else can I do to debug this? Thanks, — Daniel Lyons
[9fans] Parallels 5
I have a rather old VM that I made under Parallels 3 that seems to work under Parallels 5. I think I installed that one in late 2009 or early 2010. As an experiment, I tried installing the current release under Parallels 5. It installs, and pretty quickly (5 min), but there are two small issues: 1. ps2intellimouse: scrolling works if you're scrolling down, but if you make the scroll up gesture, the mouse skitters off to the right and really doesn't scroll back up. Anyone seen this or have a tricky solution? 2. Ethernet card is not detected. I am not 100% sure there's nothing different in the configuration, but I've made the plan9.ini look the same in both VMs and still it fails to detect the NE2000 emulated ethernet card. There are also ominous messages about usbd: no hub during bootup that don't happen under the old one. Is there a boot log somewhere I can examine for messages I may not have seen, or any other debugging information I can go looking for? I'm downloading 9atom to compare tomorrow. Thanks, -- Daniel Lyons
Re: [9fans] Blocks in C
On Sep 17, 2009, at 2:43 AM, Charles Forsyth wrote: opening their platform interfaces Any in particular? — Daniel Lyons
Re: [9fans] Blocks in C
On Sep 17, 2009, at 3:19 AM, Andrew Simmons wrote: And no doubt we'd have been much better off if Apple had instead spent the time and effort making a decent iPod. Um... what is it you dislike about the iPod? — Daniel Lyons
Re: [9fans] Blocks in C
It would be easy to say that list should be divided, in practice though, I'm not sure the folks who I would like to have a privilege of addressing would voluntarily subscribe to the #3 type of list. Being a curious sometime user I guess I fall in category 3. Which seems natural since the list is called 9fans not plan9-dev. Not sure our community is large enough to survive being partitioned off into little tiny segments. — Daniel Lyons
Re: [9fans] Simplified Chinese plan 9
On Sep 12, 2009, at 1:05 AM, Eris Discordia wrote: There's a discussion of evolution of languages that involves a language going from pidgin to creole to full-blown. Maybe text-ese is some sort of pidgin, or more leniently creole, that draws on the speakers' native language but the point here is that it will never evolve into a full-blown language. Once again, words you use recklessly turn out to have actual definitions. From Wikipedia: A pidgin language is a simplified language that develops as a means of communication between two or more groups that do not have a language in common... A creole language, or simply a creole, is a stable language that originates from a mixture of various languages. The lexicon of a creole usually consists of words clearly borrowed from the parent languages, except for phonetic and semantic shifts. On the other hand, the grammar often has original features and may differ substantially from those of the parent languages. I'm sure you'll provide us with the definitions from Merriam-Webster as well. In other words, a pidgin is what you get when you have two groups without a common language being forced to communicate. A creole is what you get when their kids learn the pidgin as a first language. Linguists and physicists have a bad habit of making their jargon colorful so I'll only deduct half the usual points. I agree with your conclusion, but I disagree with a couple steps in your reasoning. Namely, I don't think you could discover a systemic grammatical deviation from English in leet or text-speak or whatever. These are novel and amusing orthographies and in-crowd jargon and nothing more—people pronounce ROFL and LOL to be ironic and cute, not because they think they're words and would be surprised to learn their true origin. My wife and her best friend have a policy of pronouncing those abbreviations by spelling them out and then saying the last word (double-you tee ef fuck) to be funny. Also, plenty of people think in English differently than I do yet we all manage to communicate to the same degree (i.e. poorly but well enough to get by). I also doubt that we'll have the kind of technology you're talking about, because I think 90% of the hard part of being a programmer comes from learning to think rigorously and that will be the stumbling block for anything digital that wants to try and digitize our thoughts. This is also the crux of my argument against the idea that computers will someday program themselves: the real barrier isn't hardware or motivation, it's that by the time you teach someone to be explicit enough that a computer can derive what they're trying to do, you've made them a programmer already (see Prolog for example). Same with strong AI: nobody has a clue how to word the problem precisely enough to write a program to solve it. — Daniel Lyons
Re: [9fans] nice quote
On Sep 7, 2009, at 2:54 AM, Paul Donnelly wrote: or perhaps A-list games programming The Jak and Daxter series was written in Common Lisp. http://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp — Daniel Lyons
Re: [9fans] nice quote
On Sep 7, 2009, at 3:05 AM, Greg Comeau wrote: Some keep saying that we should use more complex languages in the introductory course because they're in some way easier. But I've yet to understand their definition of easier. I've seen this before. It's usually a combo of people not knowing what they're talking about, making stuff up as they go along, generalizing their personal programming universe, being elite, and, miscommunication their point. I have a friend who insists that every other language has been harder on him than macro assembler. And I think that's true, if you cannot understand how to program a machine other than by thinking about what's happening at the instruction level of the processor. Each language provides its own view of the land. If you have a strong understanding of the hardware and wish to think in those terms you will probably find assembler or C to be your best friend. If you have a strong mathematical inclination Haskell will probably suit you better. I find Scheme introduces a model of computation which is a compromise between the two; close to the machine in memory, simple in syntax, and rather far from the machine in terms of continuations, but most of the code being in the middle anyway. Part of what makes computing so interesting to me is that we can remodel it to suit different needs, tastes or problems. If we had to write our schedulers in rc, we'd probably find it obnoxious; similarly if we had to write trivial pipelines in C. The nice thing about Lisp, Haskell and Java is that when you're in their little world everything works the way you'd expect it to in their little world; the nice thing about Plan 9 and Unix is that most everything is designed to interact sanely and simply with the rest of the world. I find writing puzzle solvers simpler in Prolog than in Haskell despite Haskell's list comprehensions being essentially the same in power and somewhat more straightforward to reason about. For some reason, the fact that we program rational machines in logic- based languages deludes us into thinking our experience is the same as everyone else's or our situation must be the same as everyone else's. I don't know anyone who likes to debate a programmer and isn't also a programmer; we are undoubtedly the most self-assured and non- empathetic group of people on the planet. We have every opportunity to be free of dogma, but our reason and our aesthetic reactions seem somehow to be soldered directly onto our emotions. A problem is that the world isn't as rational as we are. It often chooses based on expedience, popularity, rumor, or emotion. Often the good is devoured by good marketing. I never would have expected to find defenders of Lisp or Haskell here in the Plan 9 mailing list. I am happy about that. But the hindsight has not been 20/20. Lisp and Plan 9 are in the same situation for exactly the same reason: they're both conceptually rigorous and short on eye candy, and the market chose other alternatives long ago, and now those alternatives define the question in a way that precludes these answers. — Daniel Lyons
Re: [9fans] nice quote
Eris, Using your theories, please explain why Lisp and Plan 9 both hover around the same level of popularity (i.e., not very, but not dead either). — Daniel Lyons
Re: [9fans] nice quote
Let me be a little pedantic. On Sep 4, 2009, at 2:18 PM, Eris Discordia wrote: Above says precisely why I did. LISP is twofold hurtful for me as a naive, below average hobbyist. FYI, it's been Lisp for a while. For one thing the language constructs do not reflect the small computer primitives I was taught somewhere around the beginning of my education. Like what? The if statement, which was invented by Lisp? The loop statement, for expressing loops? It sounds like you got a dose of Scheme rather than Lisp to me. For another, most (simple) problems I have had to deal with are far better expressible in terms of those very primitives. In other words, for a person of my (low) caliber, LISP is neither suited to the family of problems I encounter nor suited to the machines I solve them on. This hasn't been true for a while. Common Lisp is a general purpose language like any other. The only thing I have ever found obnoxious about CL was the filesystem API. Most CL implementations are compilers these days and they produce surprisingly efficient machine code. The Scheme situation is more diverse but you can definitely find performance if that's what you're eluding to. Its claim to fame as the language for wizards remains. I think this has more to do with Lisp users being assholes than anything intrinsic about Lisp. This is one of the nice things about Clojure. It's a break from tradition in this regard, as well as many others. Although, mind you, the AI paradigm LISP used to represent is long deprecated (Rodney Brooks gives a good overview of this deprecation, although not specifically targeting LISP, in Cambrian Intelligence: The Early History of the New AI). One serious question today would be: what's LISP _really_ good for? That it represents a specific programming paradigm is not enough justification. Ideally, a language should represent a specific application area, as does C, i.e. general-purpose system and (low-level) application programming. It's as though you have the up-to-date negative propaganda, but not the up-to-date facts. Lisp is really good for the same kinds of things other general purpose languages are good for. The main benefits it had in AI were features that came from garbage collection and interactive development. You get those benefits today with lots of systems, but that doesn't mean they aren't still there in Lisp. An advantage it has these days is that it produces code that performs better than, say, Python or Perl. I definitely would not call being a general purpose system and suitability for application programming a specific application area. This is like saying agglutinative languages are worse for conquering the world with than isolating languages because the Ottoman empire fell before the English empire. Please don't interpret this as Lisp kicks C's ass. I'm saying, you're only seeing the negative half of the situation, and seeing too much causality. I think it's mostly happenstance. Lots of languages succeed despite having a killer app or app area. Python's a good example. Isolating the exact ingredients for the success of any language is probably impossible. I'd say only with C is it really clear what led to success, and it wasn't exclusively features of the language itself (though it was a part of it), but also that it came with Unix along with the source code. If the quacks had chosen C instead of Lisp for their AI research perhaps C would have taken a big hit during the so-called AI winter instead of Lisp. Perhaps if the Lisp machine vendors hadn't misunderstood basic economics so thoroughly, their machines would have become more common and taken Lisp with them the way Unix brought C. There are simply too many variables to lay the blame at Lisp's alleged functional basis. Especially today when languages like Haskell exist that take functional so much further they make Lisp look like a procedural language by comparison. — Daniel Lyons
Re: [9fans] Interested in improving networking in Plan 9
On Sep 3, 2009, at 10:13 AM, Anthony Sorace wrote: you can do things like data constraints and validations in the application code, rather than in the sql database itself, which always feels like this random bolt-on to the application logic. I think it's useful to think of relational databases as integration technology rather than merely storage technology. Having everything important in the application layer means you have to go through the application layer to do anything. Part of the point of SQL and RDBMSes being so complex is that it liberates the data from any one particular application that wants to access the data. This fact is often forgotten these days because most databases are only accessed through the web via one app. But I usually find that eventually one needs to get at the data directly, for reporting, maintenance or some other task that isn't intrinsically part of the website. Then the database can take on the data management role and make sure you don't make your data incomprehensible, as well as provide you with a little security. Of course, it's best of all if you have a database that supports things like views; otherwise you will need application code to have any abstractions at all. — Daniel Lyons
Re: [9fans] nice quote
On Sep 3, 2009, at 1:38 PM, tlaro...@polynum.com wrote: C shall be the test. If you don't even understand C, explained by KR, then do something else. I'm glad this attitude exists, particularly here in the Plan 9 community, where it belongs. But I don't agree. There are many languages because there are many ways of thinking about programming. Most people don't get introduced to the right one on the first try. Obviously C programmers have unique talents, but I prefer to think the world has a shortage of good programmers, not a glut of bad ones. Few got to excellence by birth alone. — Daniel Lyons
Re: [9fans] Blocks in C
On Sep 3, 2009, at 9:44 AM, David Leimbach wrote: I'm not 100% sure why the heck they did it this way, which is totally different from any other version of concurrent programming setup I've seen, except maybe that Apple likes to think different? This API looks a lot to me like doing event-driven programming with jQuery. It lets you structure the code about the same as you would blocking, single-threaded code. That's the main benefit. The new stuff isn't intended to help you do Erlang-style concurrency or run on clusters. It's intended to help regular developers spawn a couple threads when it might help a little. Ease of use to the developer is priority 1 here. Apple's strategy is, I think, fairly transparent: they want to make programming easier, and they want to make programming all of their different platforms seem similar. It works both intellectually (if they are similar, it's less to learn) and emotionally (it feels like a good investment to learn one, because it might at least apply to the others.) When you don't have the dominant platform, it's wise to cater to the laziest developers, because they are the ones who make the platform seem large and inviting to the customers. The more fun they make programming, the more it helps their bottom line. — Daniel Lyons
Re: [9fans] Blocks in C
On Sep 3, 2009, at 10:02 AM, erik quanstrom wrote: in c, i don't see why such a bolt-on would be useful in c, especially since your concurrent fifo would be limited to one shared-memory node unless you're going to add a runtime compiler. It's primarily an aesthetic benefit. From http://arstechnica.com/apple/reviews/2009/08/mac-os-x-10-6.ars/13 - (IBAction)analyzeDocument:(NSButton *)sender { NSDictionary *stats = [myDoc analyze]; [myModel setDict:stats]; [myStatsView setNeedsDisplay:YES]; [stats release]; } becomes - (IBAction)analyzeDocument:(NSButton *)sender { dispatch_async(dispatch_get_global_queue(0, 0), ^{ NSDictionary *stats = [myDoc analyze]; dispatch_async(dispatch_get_main_queue(), ^{ [myModel setDict:stats]; [myStatsView setNeedsDisplay:YES]; [stats release]; }); }); } Two more lines of code, and it will execute that block in another thread without having to do much thinking about it. — Daniel Lyons
Re: [9fans] vac errors after updating to latest p9p archive
On Aug 16, 2009, at 10:26 AM, Fernan Bolando wrote: oops seeing that I posted this blindly anybody can now gain access to my files. Is this true? I would have thought access to your Venti would be a requisite too. — Daniel Lyons
Re: [9fans] Using proportional fonts in Acme for Programming
On Aug 14, 2009, at 12:28 PM, Roman V. Shaposhnik r...@sun.com wrote: I looked at it for a while and came with a realization that it could be just a tad heavier than what I need for most of the stuff I do. Plus I'm not sure how to port it to Plan9 without first porting the JVM. I actually meant to create a new Plan 9-specific Lisp variant, perhaps stealing some of Clojure's new ideas. Especially with respect to parallelism, the standard library and a few other things. I like that I can call into Java libs from Clojure but that's not the most interesting thing about it to me. Another thing which would be cool would be something like scsh. -- Daniel Lyons
Re: [9fans] Using proportional fonts in Acme for Programming
On Aug 14, 2009, at 3:15 AM, Aaron W. Hsu wrote: On Thu, 13 Aug 2009 13:58:39 -0400, Daniel Lyons fus...@storytotell.org wrote: I'd love it if Acme or Plan 9 had good support for some kind of Lisp variant. Maybe that should be my next side project. If that's something you're thinking about doing, let me suggest you take a look at Clojure. The Java aspect aside, it is a good compromise in design between Scheme and Lisp and introduces lots of good ideas. This is something I would want to do but I have a long way to go with Plan 9 before I think I could be serious about it. — Daniel Lyons
Re: [9fans] Thrift RPC
On Aug 12, 2009, at 9:56 PM, erik quanstrom wrote: if we're going back there, just take me out back and shoot me now. i want to remember some progress in computer science. The principal joy I derive from using Plan 9 (and I am quite new) is that it is so well architected. By day I am a web developer (when I'm employed) and I am just thoroughly sickened by the industry. It seems to me that at some point, the cool guys that beat me up in middle school somehow insinuated their way into technology and have hijacked everything. Currently they seem to be proceeding to reinvent the same things over and over again, on top of their own reinventions, for no particular gain except to make new jargon and get their name on the latest version. It's hard to even maintain a portfolio of work one's done when the lifespan of a website is dwindling to one year or six months. And that certainly reduces the incentive to give it everything you've got and make something really good. I was curious about ICE, because it seemed like they actually took CORBA and said, what would this look like if it were implemented by engineers rather than a committee? But I don't think the problem facing the world is how do I integrate all these languages, possibly over the network? but rather how do I minimize all of this fucking complexity and still get things done? XML-RPC and SOAP are answers to stupid questions, which is why we have REST, but the joke is that none of the technologies that it relies on are even implemented enough by their own specifications such that it can really be used. It strikes me as ludicrous that you can go make a new Rails app and have to write by hand (or find someone's plugin) to create a login system for you, which won't even happen on the HTTP level (which supports it), or the RDBMS level (which also supports it), or the OS level (which again supports it.) How many times do we have to write username/password logins before we're done and we can fucking can move on? It's not like anything is really different at any of these levels, just the way the bytes get handed around. Then you have to be sure to use a database abstraction layer, because everyone seems to have forgotten that the database *is* an abstraction layer—this fact got lost in the shuffle as it became too complex for anyone to really understand completely. Yet nobody seems to be worried that the same thing might happen to their little project as they pile code upon code and it slowly swells up just like everything that came before or that it depends on. Before long, they need an abstraction layer for their abstraction layer! Then the schmucks come along and complain about performance and demand to be taught every dirty trick to take their barely useful code and remove all the clarity from it in the name of a performance. Software is cancer. I don't know how long you've been a programmer, Erik, but I'm sure it's far longer than I. From my perspective, no, there is no progress in computer science, we're spending all our time trying to climb out of the same muddy hole we've been in since Dijkstra was a newlywed and Knuth was writing for MAD Magazine. CS has such advanced amnesia that it can't remember what prompted the last question it was asked and so it just repeats the question to itself over and over, never really aware that it isn't an answer. We dig and dig but the problem only gets worse because digging doesn't get you out of a muddy hole. The things that keep me going are the pleasure I get from knowing a lot of obscure stuff, talking to intelligent, knowledgeable people such as comprise this mailing list, and (oddly) writing SQL. I wouldn't say I have much hope for the industry in general unless there's some sort of major restructuring. I try not to make that my problem and instead share the things I know about with people I think might benefit. So consider this the opposite of being flamed. I feel exactly the same way you do. I hope that in some time I will be doing as much for the good as you and others on this list that carry the Plan 9 torch and endure my stupid questions (and now my rants.) — Daniel Lyons
Re: [9fans] Using proportional fonts in Acme for Programming
On Aug 13, 2009, at 3:14 AM, Aaron W. Hsu wrote: So, I was browsing around the other day looking at Acme resources, and I discovered an old post from 1995 wherein someone advocated the use of proportional fonts for programming in Acme. This surprised me, to say the least. He even went as far as to mention that SML was the language they were using, and had managed to get a decent indenting pattern for it that was just as readable, without messing things up for proportional font users. I have to admit that I'm a bit skeptical about whether such a technique actually works, and so, I thought I would pose some questions to you. Bjarne Stroustrup actually advocates this style in The C++ Programming Language. This discussion reminds me of this elastic tab stops concept: http://nickgravgaard.com/elastictabstops/ I don't think it made it into any editors, but it would support the kind of fancy alignment I like to have in my code while also supporting real fonts, which I would prefer to use. Thirdly, would you continue using proportional width fonts in cases like Lisp code, where you very often see something like the following indentation scheme, and how would you resolve these indentation problems with proportional width fonts if you did continue to use them? (let ([foo bar] [something else]) (some-func (called again) (with fun indentation) (and yet) (another))) I bet you could set up Emacs to use a proportional font. It can do anything, right? :) I'd love it if Acme or Plan 9 had good support for some kind of Lisp variant. — Daniel Lyons
Re: [9fans] a few Q's regarding cpu/auth server
On Aug 7, 2009, at 10:08 PM, lu...@proxima.alt.za wrote: Story time. :) You're also falling into the trap of believing that because it _can_ happen, it has to happen (Murphy's Law). It punishes the many for the sins of the few and is a very poor foundation for progress. It wasn't a position, just a story. Though I do think a Murphy's law approach to security is better than a credulous one. But I don't think the Plan 9 approach is credulous. It just places priority on the network rather than the machine and assumes valuable machines will be treated that way. Plan 9 has a good balance of cost of security against eventual real protection and forces you to re-evaluate the accepted paradigms. That is sufficient reason to explore Plan 9, if not to adopt it wholesale. I agree completely. When I have a budget for hardware I plan on adopting it wholesale actually. I wouldn't be here if I weren't interested in different paradigms and evaluating them. -- Daniel Lyons
Re: [9fans] Acme Configuration
On Aug 7, 2009, at 2:37 AM, Aaron W. Hsu wrote: Other than a script to start acme with the -a option, is there some way to configure the start up option on Acme? I am thinking of the equivalent of a .exrc file or the like? Generally you set it up the way you like, then run Dump. This creates a file acme.dump in your home directory. Then you can run acme -l acme.dump and it will restore itself to those settings, which are basically the frames, what files are open and what fonts you're using. You can also edit that file and dink around with it. By default I think rio runs acme with -l lib/acme.dump, but you can certainly have as many of these around as you'd like. — Daniel Lyons
Re: [9fans] linux reinvents factotum, secstore ...
On Aug 7, 2009, at 7:06 AM, Ethan Grammatikidis wrote: X11 isn't a desktop, it tries very hard not to define a look and feel, but it has to include inter-app communications to support the supposedly desirable drag drop as well as any copy/paste beyond plain text. In fact my big beef with dbus is that everything is all hot-all-over about dbus when it needs to be using X IPC. My beef is that they were hot-all-over CORBA not too long ago. I expect in another three years nobody will be using D-Bus, they'll be using some new layer that sits on top of it... ad nauseam. Outside Plan 9 I don't see anyone solving two problems with one technology; instead, they're just solving one problem and introducing a new one. — Daniel Lyons
[9fans] searchfs
I googled around and haven't found anything, but I notice there is a file /sys/src/cmd/aux/searchfs.c, and a corresponding binary aux/ searchfs. The code doesn't seem to explain what it does very well but it piqued my curiosity. What's this do and how is it intended to be used? I don't know exactly what it wants for a database; I tried using /lib/words and it didn't blow up but I'm not sure that's what it needs. I found the /search file will accept strings like 'search=word' but it doesn't seem to have an effect in the filesystem, nor does reading from it produce anything. Any pointers on how to use this? Or is it defunct or some kind of dead end? Thanks, — Daniel Lyons
Re: [9fans] linux reinvents factotum, secstore ...
On Aug 6, 2009, at 12:13 PM, erik quanstrom wrote: poorly. massive, overengineered, and yet lacking: http://lwn.net/Articles/344117 Ugh. A brief apology on their behalf, though. I have been trying to understand the workings of factotum, secstore, auth/keyfs and whatnot for a while and I'm just now starting to get the feeling that I might have a grasp on how all these things work together in concert to do their jobs. There is a propensity to develop software starting from the interface working backwards to the functionality. When enough people reduplicate a functionality, they decide to move the functionality out. This is what you're going to get when you evolve software rather than architect it. One of the things I have been impressed with in Plan 9 is that generally each layer of abstraction is comprehensive. On Linux there is a tendency to have to keep adding more layers upon the layers. This security framework, for example, relies on D-Bus for communication. The appearance of hal, the hardware abstraction layer a few years ago struck me too. Isn't that what the OS is supposed to provide? Maybe it would have been feasible to add whatever it adds if more of the drivers were in user space rather than kernel space. It's easy for me to object to what they're coming up with but it would be hard for me to describe in detail how exactly factotum + all the other stuff encompass it, and I don't think that the paper we have on factotum or the section in nemo's book are sufficient either. As a devil's advocate, in my Mac keychain I have 13 keys related to file shares and 22 WEP keys. I have my SSH key on 24 machines. Then I have 270 web form passwords or internet passwords in my keychain. Does factotum handle web passwords? I'm presuming not but I don't really know because I generally surf with Safari or Firefox outside Plan 9. I'm not complaining about the browser situation, I'm just saying, it seems to me that the average user probably has more website usernames and passwords than everything else combined. That's certainly the case with me. Could factotum be adapt to integrate with a browser and store web form secrets? If so that would be a compelling objection, since it looks like Firefox isn't going to start using their security framework anytime soon. And who can blame them? It already has a ton of dependencies and porting issues and this can only exacerbate it. It might raise our profile a bit if someone who has a comprehensive understanding of the security framework in Plan 9 would write a rebuttal to this announcement, something along the lines of Plan 9: An Integrated Approach to Grid Computing by Andrey Mirtchovski, Rob Simmonds and Ron Minnich. That paper works largely as a refutation of the complexity of the Globus Toolkit. It would also be helpful to people like myself who are recent adopters of Plan 9 and don't have a comprehensive understanding of the security architecture—perhaps because we've been poisoned by systems like Mac OS X Keychain and SSH. — Daniel Lyons
Re: [9fans] linux reinvents factotum, secstore ...
On Aug 6, 2009, at 7:39 PM, Roman Shaposhnik wrote: On Aug 6, 2009, at 12:33 PM, Daniel Lyons wrote: It's easy for me to object to what they're coming up with but it would be hard for me to describe in detail how exactly factotum + all the other stuff encompass it, and I don't think that the paper we have on factotum or the section in nemo's book are sufficient either. As a devil's advocate, in my Mac keychain I have 13 keys related to file shares and 22 WEP keys. I have my SSH key on 24 machines. Then I have 270 web form passwords or internet passwords in my keychain. Does factotum handle web passwords? I'm presuming not but I don't really know because I generally surf with Safari or Firefox outside Plan 9. I'm not complaining about the browser situation, I'm just saying, it seems to me that the average user probably has more website usernames and passwords than everything else combined. That's certainly the case with me. Could factotum be adapt to integrate with a browser and store web form secrets? If so that would be a compelling objection, since it looks like Firefox isn't going to start using their security framework anytime soon. And who can blame them? It already has a ton of dependencies and porting issues and this can only exacerbate it. These are reasonable questions (and many of them have yes as the answer ;-)) but I have a more fundamental objection here: the desktop is just NOT the place for such a functionality to originate from. The very concept of a fixed desktop that resides on a physical piece of hardware that you own feels so 20th century to me. One way or the other the online identity issue is going to be settled. For contenders, though, I'd rather look at: factotum or things like OAuth. I agree, and I think this is one of the most attractive things to me about Plan 9. I don't think there's a reasonable conversation to be had with folks struggling to provide solutions for taking the pain out of managing plain text passwords. The pain is there for a reason. I couldn't agree more. One of the first things that piqued my interest in Plan 9 was finding out that 9p's authentication system works a lot like Kerberos. I am very annoyed by security theater, which is one reason I don't object at all to the host-owner security model Plan 9 uses. — Daniel Lyons
Re: [9fans] a few Q's regarding cpu/auth server
On Aug 6, 2009, at 6:59 PM, hiro wrote: don't forget to take away the connectors from the power and reset buttons, otherwise good security concepts;) Just out of curiosity, is it possible to simply unbind the console on one of these servers after bootup in some startup script? Or perhaps unbind the keyboard device, so you can see messages but not type anything in? Maybe use cat /dev/kprint instead of rc? It seems like it ought to be possible to disable the physical console this way. I ask simply as a way of reducing worry about passerby, not as a security solution. — Daniel Lyons
Re: [9fans] a few Q's regarding cpu/auth server
On Aug 6, 2009, at 10:19 PM, lu...@proxima.alt.za wrote: I have direct experience as a contractor where I have entered many a co-lo; and was unimpressed with their security to say the least. I had constant and easy access to a large number of nameless servers, it's a nobrainer to access keyboard/monitor pairs in many of these places. That would be vandalism. You didn't indulge in it, why would you expect someone else in your situation to do differently? Or are you lying to us? Story time. :) Several years ago I worked for a company here that had decided to colocate a server locally (yeah, brilliant, in Albuquerque) instead of getting a hosted server somewhere with better access. I wound up going down there a few times to add RAM to the system. Apart from my company, there were a smattering of other smalltimers with big tower computers from Dell on this rack and off on the other side of the facility was a fenced off area with four or five racks of Dell hardware. The owner casually mentioned to me that the company who owned the racks had something to do with airline ticket sales. I guess because I chuckled at that, he also mentioned to me that the computer next to ours was hosting the governor's re-election website. I thought about doing something malicious, because I'm not a big fan of Richardson, but decided it wasn't worth the trouble. Later on one of the owners of the colo facility got bought out and blew up. He went into the facility and ripped out the primary router, then took the upstream cable and plugged it into another port on the backup router such that the packets wound up going in a cycle. Then he damaged the backup power system and flew out the door with the primary router. Not really taking a position here but your comments reminded me of the story. I guess there's always a bigger jerk out there and sometimes he runs your colo facility. — Daniel Lyons
Re: [9fans] Parallels Vesa driver question
On Aug 3, 2009, at 10:30 AM, ron minnich wrote: Given these systems with mtrr issues. Would it be possible to get: - output from pci so we can see what memory ranges are in use on your machine 0.2.0: vid 03.00.00 1ab8/1131 11 0:4001 256 1:c000 16777216 2:4401 16 0.3.0: brg 06.80.00 1ab8/1112 9 0.30.0: brg 06.00.00 8086/1130 255 0.31.0: brg 06.01.00 8086/2440 255 0.31.1: disk 01.01.80 8086/244b 255 4:5001 16 0.31.5: aud 04.01.00 8086/2445 9 0:5401 256 1:5801 64 0.5.0: net 02.00.00 10ec/8029 10 0:4c01 32 - how much memory 256 MB, but that's arbitrary; just the preference I have set in Parallels. - what the mtrrs look like once set up I don't know how to obtain this information, but would be glad to supply it. Also, forgive my ignorance, but isn't there a chicken-and- egg problem, since if the MTRRs are set up in vgavesa.c, my display is unusable? Or is there a special way to bail out to the text mode when the display is screwed up? Thanks again, — Daniel Lyons
Re: [9fans] Parallels Vesa driver question
On Aug 3, 2009, at 9:12 PM, David Leimbach wrote: Wow Where's parallels 4. I doubt I qualify for a free one. And VMWare Fusion really sucks with Plan 9 at the moment :-( You could always try Q: http://www.kju-app.org/. I find it unbearably slow but it is free. I thought VirtualBox was allergic to Plan 9 but I might try again now that I know what the problem is and how to work around it. The Parallels site is here: http://www.parallels.com/products/desktop/ but they want $80 (or $50, if you're merely upgrading). I hate to recommend it because of their indifference (sometimes bordering on hate) towards their customers but it does seem to be the fastest Mac Plan 9 emulator I've had success with so far. As I said before, Windows is about their only interest, if that's is something you need on your Mac. — Daniel Lyons
Re: [9fans] Parallels Vesa driver question
On Aug 3, 2009, at 5:20 AM, erik quanstrom wrote: strange. could one of you having trouble with vesa + mtrr try vesa + the pat patch on sources in the saved patch directory? I fear I may not have applied the patch correctly: /sys/src/9/pc% mk CONF=pcf 8c -FTVw devarch.c devarch.c:733 not enough function arguments: cpuid devarch.c:733 argument prototype mismatch IND ULONG for IND INT: cpuid devarch.c:739 argument prototype mismatch INT for IND CHAR: cpuid devarch.c:739 not enough function arguments: cpuid devarch.c:739 argument prototype mismatch IND ULONG for IND INT: cpuid devarch.c:869 function args not checked: mtrrprint devarch.c:951 function args not checked: mtrr mk: 8c -FTVw devarch.c : exit status=rc 1227: 8c 1229: error I copied /n/sources/patch/saved/pat/*.[ch] to /sys/src/9/pc ... What is the correct procedure here? Thanks again, — Daniel Lyons
Re: [9fans] Parallels Vesa driver question
On Aug 2, 2009, at 3:41 PM, erik quanstrom wrote: Erik, Thanks for your speedy assistance! I think the two things are closely interrrelated via the global variable hardscreen. Reverting this file solved the problem. I wouldn't be surprised if there were something weird about Parallels' MTRR support, and since this isn't the current version it's not likely to get any better. If anyone's using Parallels 4 and not running into this issue, I'd love to know. you're welcome. but if you wouldn't mind, would you try the new source but modify it by replacing the vgavesaflush in the following diff with 0? Yes, this alone is not sufficient to fix the problem, which I believe confirms your suspicion that there is a defect in either Parallel's MTRR or Plan 9's Vesa MTRR. My money would be on Parallels, since they have a reputation for building the VM to support Windows first. Again, thanks! Hopefully I'll be able to afford a copy of the new version of Parallels in a little while and perhaps that will help further isolate the problem. — Daniel Lyons
[9fans] Parallels Vesa driver question
Hi, I installed Plan 9 under Parallels 3 back in November of last year and it worked without a hitch. I tried to install another copy tonight and the bitmapped display isn't working in the new one, I just get a pure black screen after any aux/vga command that it thinks will succeed. I found I can reproduce that behavior by building and running a new kernel in the old install. Any ideas what has happened since November in the kernel with respect to Vesa and Parallels? I'd be more than happy to debug this issue if I could get a little guidance. I didn't see anything in the archives about this problem. Alternatively, does anyone know if Parallels 4 works with a current kernel? If so I'll probably just upgrade to that; I've been holding off for a good reason to. Thanks, — Daniel Lyons
Re: [9fans] Parallels Vesa driver question
Erik, Thanks for your speedy assistance! I think the two things are closely interrrelated via the global variable hardscreen. Reverting this file solved the problem. I wouldn't be surprised if there were something weird about Parallels' MTRR support, and since this isn't the current version it's not likely to get any better. If anyone's using Parallels 4 and not running into this issue, I'd love to know. Also, are the old sources available online somewhere so I can do this kind of diff in the future on my own? Thanks again, On Aug 2, 2009, at 11:06 AM, erik quanstrom wrote: On Sun Aug 2 05:39:10 EDT 2009, fus...@storytotell.org wrote: Hi, I installed Plan 9 under Parallels 3 back in November of last year and it worked without a hitch. I tried to install another copy tonight and the bitmapped display isn't working in the new one, I just get a pure black screen after any aux/vga command that it thinks will succeed. I found I can reproduce that behavior by building and running a new kernel in the old install. Any ideas what has happened since November in the kernel with respect to Vesa and Parallels? I'd be more than happy to debug this issue if I could get a little guidance. I didn't see anything in the archives about this problem. Alternatively, does anyone know if Parallels 4 works with a current kernel? If so I'll probably just upgrade to that; I've been holding off for a good reason to. two things: mtrr and adding a vesaflush command. it doesn't quite make sense to me that this would break parallels, unless there is something funky about - mtrr ranges with parallels. - parallels vesa - plan 9 vesa support the easiest thing to do would be to comment out vesaflush and see what happens. without pawing through the standard, it may be that vesaflush is optionally supported and parallels doesn't support it. - erik ; diff -c vgavesa.c /n/sourcesdump/2008/1101/plan9/sys/src/9/pc/ vgavesa.c vgavesa.c:13,21 - /n/sourcesdump/2008/1101/plan9/sys/src/9/pc/ vgavesa.c:13,18 #include cursor.h #include screen.h - - static void *hardscreen; - #define WORD(p) ((p)[0] | ((p)[1]8)) #define LONG(p) ((p)[0] | ((p)[1]8) | ((p)[2]16) | ((p)[3]24)) #define PWORD(p, v) (p)[0] = (v); (p)[1] = (v)8 vgavesa.c:83,89 - /n/sourcesdump/2008/1101/plan9/sys/src/9/pc/ vgavesa.c:80,86 } static void - vesalinear(VGAscr *, int, int) + vesalinear(VGAscr* scr, int, int) { int i, mode, size; uchar *p; vgavesa.c:130,169 - /n/sourcesdump/2008/1101/plan9/sys/src/9/pc/ vgavesa.c:127,135 size = ROUND(size, 1024*1024); havesize: - if(size 16*1024*1024) /* probably arbitrary; could increase */ - size = 16*1024*1024; - hardscreen = vmap(paddr, size); - mtrr(paddr, size, wc); - //vgalinearaddr(scr, paddr, size); + vgalinearaddr(scr, paddr, size); } - static void - vesaflush(VGAscr *scr, Rectangle r) - { - int t, w, wid, off; - ulong *hp, *sp, *esp; - - if(rectclip(r, scr-gscreen-r) == 0) - return; - - hp = hardscreen; - sp = (ulong*)(scr-gscreendata-bdata + scr-gscreen-zero); - t = (r.max.x * scr-gscreen-depth + 2*BI2WD-1) / BI2WD; - w = (r.min.x * scr-gscreen-depth) / BI2WD; - w = (t - w) * BY2WD; - wid = scr-gscreen-width; - off = r.min.y * wid + (r.min.x * scr-gscreen-depth) / BI2WD; - - hp += off; - sp += off; - esp = sp + Dy(r) * wid; - while(sp esp){ - memmove(hp, sp, w); - hp += wid; - sp += wid; - } - } - VGAdev vgavesadev = { vesa, 0, vgavesa.c:174,178 - /n/sourcesdump/2008/1101/plan9/sys/src/9/pc/ vgavesa.c:140,145 0, 0, 0, - vesaflush, + 0, }; — Daniel Lyons