Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×

Comment Re:H1-B karma burner (Score 2) 250

No, there is no assumption that an H-1B holder `will return to their home country.' The H-1B is a dual-intent visa, meaning that you can apply for a permanent resident card while in the US and then legally stay as long as you want.

Incidentally, I'm currently on that very route. I still don't expect to ever see any benefits from the near-decade social security and taxes I've already paid while working on F-1 and J-1 non-immigrant visas.

Comment Use cases? (Score 1) 716

Can someone explain the use cases IPad-like finger-only tablets are intended for to me?

Laptops I understand: you can use them to code, do your e-mail, ssh into machines to get stuff done etc.
Phones I get: you can use them to read your e-mail `on the go' and perhaps even send quick replies to important things, read maps, and do skype if you're the adventurous kind who likes voice communication.
Tablets with pens I also get: you can read and annotate papers/books with them or draw.

But I don't understand the use cases for finger-only tablets. They seem to be selling well, so my guess is that it's games or porn. Does anyone have experiences with these fingery tablets?

Comment Re:Anti-Modular? (Score 5, Interesting) 755

Yes, there has been much progress in module systems. The very Bob Harper mentioned there was involved in the design of the SML module system, which is often cited in the CS literature as `the' reference module system. SML achieves a level of isolation that is simply impossible to achieve in a language like Java or Smalltalk. in Java, any object you can still call `hashcode()' and `toString()' etc. on, and it's often possible for someone to subclass one of your internal classes and thereby break your intended module structure.

In SML, you can confine types through (e.g.) the following signature:

(* this is imperative code; a typical SML program focuses on functional code, but it's good enough for illustration purposes. *)
signature STACK =
sig
    type 'a stack (* 'a is a type parameter, so "'a stack" is what OO-land calls a `generic type' *)
    empty : unit -> 'a stack (* create fresh stack *)
    push : 'a stack -> 'a -> unit (* take a stack of 'a elements, take an element of type 'a, and plug them together *)
    pop : 'a stack -> 'a option (* "'a option" means that the operation may fail *)
end

You can then implement this stack in various structures that match this signature, and confine it in such a way that only the operations listed above are available. That is, you can't stringify stacks (there is no such operation listed there, though you can choose to add one), you can't compare them (again, no such operation), you can't `reflect' on them and you can't access their `protected' functionality by subclassing them, unless the stack implementer put a separate view of the structure into place for that particular purpose.

Why is this good? Client code won't end up using features that you didn't want to expose. Why is it bad? If you forgot to expose something important, someone else will have to re-implement it. But that's your fault, then, not the language's fault.

SML also allows you to build modules from other modules through something called `functors', but let's leave that for another time.

Now, SML's modules have issues-- you can't have mutual dependencies between them (which does have advantages, too, though), and the question of how to integrate type classes (something you may know as `C++ concepts') is unresolved. But the concepts behind the module system are clear and powerful. So if you want to teach the concepts underlying modular software design, this is a vastly better choice than most other options out there. (I remember the Modula-3 module system being fairly good, too, but not quite at this level.)

So, for teaching purposes I'd say Bob Harper is closely connected to the best system out there that has actual working implementations tied to it.

Comment Re:His tool chugged along for DAYS? (Score 1) 154

Some program analyses are linear, others log-linear, others worse. Some require fixed point computation that may run as long as you want it to run. Check the program analysis literature: you'll find analyses for almost any level of complexity you want, and if you pick carefully, more run-time will usually give you better results (though it may or may not be worth the effort).

Was your tool flow-sensitive? Was it context-sensitive? If so, to what level? Did it normalise the AST, or did it represent the source code (as you might want to do for a source code clone analysis)? What kind of alias analysis did you use?

Please don't go tossing all program analyses into the same bin. If you've implemented a type checker for C, you may think that the idea of type checking being exponential is ridiculous-- yet that is what it is in languages like SML or Haskell.

Comment Re:Why Support Java At All? (Score 1) 264

For the needs of a modern VM, Python would be a step back from Java. To jit a language efficiently, you want to have as much information about the programs as you can get, particularly static types. Python as a dynamically typed language is about as hard to jit as Javascript is-- we're only just beginning to see adaptive compilation systems (i.e., composed baseline/optimising-compilers or composed interpreter/compilers) for that.

Python has its niche, but it's not "a platform for competing on equal terms with native-code apps for iOS".

You could pick a different statically typed language (e.g. something based on Modula-3 or Eiffel), but even if you provide a re-engineering tool to translate from the old code to the new code, you are going to alienate many of your coders, especially inexperienced ones who have trouble seeing beyond syntax. And those are in the majority, in my experience.

Comment Just don't make the same mistake... (Score 1) 1026

...that most other countries made: don't let the transportation companies keep the rail networks. (At least) one company for the rails, and as many for the trains as are willing to invest-- the same way cable/DSL should be handled. Unless you want Amtrak to become the Comcast of transportation, of course.

That being said, I've commuted by rail in Germany, and I've travelled through much of Europe and parts of Japan that way, and it beats all other forms of transportation I have tried. Based on that, I'd consider a 10% increase in federal taxes to finance European-level public transportation to be a good deal.

Comment Misleading summary. (Score 1) 385

From reading the article, I don't think that this is intended as a replacement for deb/rpm or tarballs with configuration scripts. (If it is, it is a very bad idea.)

The tool constructs a reduced dynamic I/O trace of a single program run to determine file dependencies, then packages these. This is great if you're benchmarking deterministic programs on different hardware, and useful for quickly migrating your code onto a bigger machine when a paper deadline is around the corner.

But again, the files it picks are based on a dynamic trace. If you run `cat foo.txt', then `foo.txt' will be part of the trace. If you run it on apache, all the apache modules that apache wound up loading will be part of the trace, but no others. So it's not very general-purpose. Still useful, in the right situation.

Comment Use a different programming language (Score 1) 1140

I've found that switching for C/C++/Java to SML with its wide-ish pattern matching constructs works fairly well on a wider-screen desktop. I don't think anyone with a `normal' display can read any of the code I write like that (my EMACS can display 314 characters horizontally now), but I'm in CS research, so chances are that nobody ever will.

More seriously, I second and third your complaint. There are laptops with rotatable displays out there, but those generally don't allow you to use the keyboard after rotation due to physical limitations (plus, they have crappy resolutions because they also try to be touchscreens for some reason). Lenovo's concept system with a detachable display plus keyboard sounds the most promising to me as far as future technologies go that might resolve this issue.

Comment Some honesty in the numbers, please (Score 1) 434

Hi,

    after some quick googling around, it seems that the relevant numbers are as follows:

- One hour of programming in the US usually contains 15 minutes of commercials.
- Commercials time is worth about 4 cents per minute per viewer.

    So the price of not getting ads should be around 60 cents per episode of most television
shows. YMMV, but IMO that's a lot less than the opportunity cost for wasting my attention
on ads, even ignoring the cost of a television set.

Comment We need more of this. (Score 0) 160

While we're modifying physics, may I submit feature requests for anti-gravity and faster-than-light travel, please?

Also, do they have a public bug tracker up yet? I think I found a division-by-zero bug involving a cat and butter, but I'm having trouble reproducing it (as I am running out of band-aids.)

Slashdot Top Deals

If you want to put yourself on the map, publish your own map.

Working...