7,460 karma · joined March 13, 2008
> Does criminalizing the possesion of child porn reduce the chance of those original crimes from happening? I think it does, and I think that's a good reason to ban it.
"I think it does" is not a sufficient motivation for a federal law. Generally, evidence should be required to drive policy, but I'd settle for successful deployment to a small number of jurisdictions before scaled deployments.
> It's also a good way to discourage people who like child porn, to tell them that there is something wrong with them, and that they should not do it.
Oh yeah, because a good scolding works so well for addicts.
Because if high supply of labor means low paying jobs, then you're suggesting that if everybody suddenly became skilled enough to get a high paying job, then those jobs would become low paying jobs due to labor surplus.
Either side of the hypothetical makes it clear that it is absurd to think that everybody can magically be more mobile via shear force of will.
> Why can't the schedule be arranged so that the same crew and leader stay together (as much as possible)
Because...
1) Flights get delayed or canceled
2) Crew member get sick or stuck elsewhere around the world
3) Planes are of varying size with varying size crews
4) Destinations change seasonally
5) Holidays and events alter flight schedules
6) People quit
7) People move and transfer bases
Never mind that flexibility to travel is the #1 job perk that they have to offer as career bait. Flight attendants trade flights, full trips, and destinations all the time. They are in that line of work so that they can go to interesting locations, if only for a short while. You could half their pay and they would still complain much more loudly if you halved their destination flexibility.
What do you think would happen if the > 90% of workers in low mobility jobs just magically got high mobility jobs? There would be no one left doing the sorts of critical jobs that make civilized life possible for us pampered engineers.
Your willingness to parrot the party line (specifically the word "entitlement") is disturbing, but pretty common.
How does an airline know how well people do their jobs?
There are thousands of flight attendants based in NYC alone. It's not uncommon for the flight leader to never lead a particular team member a second time. How are you going to have peer reviews?
The best they can do is find bad people via complaints and the best people via complement cards. Finding the best people by process of elimination isn't really a good strategy. And complement cards are only really provided by frequent flyers and in first class, which is predominantly staffed by more senior crew members.
But this generalizes too: What does it mean to be the best factory workers? For some employers, the definition would be "doesn't get sick and/or complain".
The best flight attendants are only twice as helpful and friendly as the pretty good flight attendants. Should they get paid double for something so subjective as "friendly and helpful?" Meanwhile, the best engineers are (some say) 10X (or even 100X) more productive. Yet they only make what 3X to 6X the pay on average, but only if they know how to negotiate... oh and by the way, they work in the field with the lowest supply and highest demand. Unlike effectively unskilled labor that most of the world has no choice but to do.
Now, there is another union establishment effort occurring. There is significant evidence that the popular opinion has swayed dramatically in favor of a union. I'm not saying that the majority is stupid, I'm saying that they decided they didn't want to pay union dues and assumed that things would stay the way they are. They didn't understand that the threat of a union was one of the few things eliminating their need for a union. That's ignorance of business realities, not stupidity in general.
My mindset isn't "the majority must be stupid". My mindset is "post-election events have proven the majority to be shortsighted."
She could go to a totally different industry, but she'd be starting her career over again at the bottom.
She loves flying & traveling, so she'd probably want to go to another airline. However, Delta (one of the largest airlines) accepts a only few thousand new flight attendants per year out of many tens of thousands of applicants. Smaller airlines would be even more difficult to get a job at. All the airlines are also seniority based, so she's have to start her career over again at the bottom. Experience at other airlines wouldn't contribute one iota to her standing in a new airline.
College put her (and everybody else) in substantial debt, so she can't start a business or do anything really risky like that.
This is a story you have all heard over and over again...
If you're a well paid engineer, it might be hard for you to understand: Educated, hard working people, are constantly screwed by the system and consistently ignored by people who don't understand their plight.
My girlfriend, who has a college degree, works for Delta as a flight attendant. After the North West merger, her colleagues collectively voted against a union because of perceived corruption and expectedly high union dues. In the year since the failed vote, there have been substantial adverse changes to vacation and sick leave rules, increased abuse of duty days by crew scheduling, and decreased medical benefits.
That's 20,000 people who thought they had guarantees on paid vacation who suddenly need to spend more of their own money to get a doctors note on holiday weekends. By the way, if you need a doctors note at 4am before going to work: You need to go to the ER... which is expensive. Meanwhile, they are being forced to work longer and longer hours for depreciating pay.
The ~9,000 people who knew to vote for collective bargaining power should not be punished by the ~11,000 short sighted ones. Furthermore, government exists to provide for the common welfare. That's its role. Those 20,000 people already pay their taxes, why should they also have to pay union dues to get basic protections for their working conditions and compensation?
This story happens over and over again in many industries.
These people aren't incompetent, yet you're suggesting that they'd have to be in order for someone to believe that they need government to protect them. In the common case, they are hardworking, educated, friendly people who are being screwed by people like you. Wether you and our elected officials are ignorant or malicious, I don't know. But what you are saying is bullshit.
Now what I say this, let be clear: I'm talking about everybody's type systems. That goes for you Haskell-ers too. And the post-Haskell rocket surgeons doing crazy advanced typing insanity.
Type systems are abstractions. The ones you are used to, like the Java-ish OOP ones or the ML/Haskell functional ones, are designed to detect and prevent a wide variety of programming errors, while also enabling analysis that will improve execution performance. However, there are many sorts of "type systems" that solve different problems.
- There are tree schemas for validation and data generation.
- There are database schemas for indexing and query planning.
- There are grammars for parsing and validating languages.
- There are contracts for ensuring preconditions, postconditions, and invariants.
- The list goes on for quite a while.
The idea that you can assign a single named type in a single kind of type system to a value and 100% verify the correctness of your software is just bogus. You need optional and pluggable type systems, so that you can bring a particular type system to meet a particular problem.
If you want a JavaScript with Lispy syntax, there are a few things like http://lispyscript.com/ -- Spiritually similar to CoffeeScript. But if you want Clojure semantics, there is ClojureScript: Very different than a simple transpiler like CoffeeScript. ClojureScript includes a standard library of rich data structures and utility functions.
But why would you want Clojure syntax without Clojure semantics? Especially since Clojure syntax implies several data types that JavaScript can't provide natively. It just doesn't make sense...
Depending on your point of view, Apple's products are either A) Clearly superior or B) Not obviously inferior. For a not insignificant number of people, their choice of smartphone is a personal statement. Attacking products that people love is not a good way to create converts.
Attacking products that clearly suck works until a point. Then it starts to feel like a bully beating a defenseless kid. Microsoft's advertising feels more like a nerdy kid who spent all night thinking up clever and witty retorts, only to fail miserably in delivering them when face to face with the bully. The crowd of cool kids don't laugh with the nerdy kid, they laugh at them.
There is a very noticeable difference in attention capacity between those who take notes with paper and those who use electronic devices of any kind. Devices with a screen tend to draw your attention even when you are not typing. More importantly, almost everybody can write while looking up and making eye contact, but very few people can type while making eye contact. Almost nobody can use a touch screen no-tactile-feedback keyboard without gazing off into the great glowing yonder. Even if you can type on a laptop while maintaining eye contact, your shoulders are postured towards your keyboard and not towards the speaker. Writing with a pen or pencil gives you much more upper body range.
Assuming that's true, I'm not sure whether I should be proud of Tesla, ashamed of our Government, or angered at other car companies. Probably all three...
I just want to chime in and also mention that while proper scientists should always enjoy an opportunity for improvement, any proper human always enjoys some acknowledgement of success. I've implemented some cool algorithms I've seen in papers and emailed the authors to 1) Thank them for their research, 2) Show them my implementation , 3) Ask them for their feedback. Their email addresses are generally at the top of the papers, so I figured "what the heck" and the response I've gotten the few times I've done this has been amazing.
I'll further extend this to say that you should never be afraid to talk to somebody because of your perception of their status. You'd be amazed at how accessible top tier folks are. Often a key factor in their greatness is their ability to collaborate! But please, be extremely respectful of their time: Keep your messages brief, to the point, and pleasant. Don't fawn or apologize. Don't ask to ask. Don't justify or elaborate. Treat them as a colleague and they will generally treat you as such.
Do you have any evidence of this? Have you run a controlled experiment? Because that makes zero sense. I'm 99% sure that you've been conditioned to press a placebo button.
I've never ever ever pressed that little red (-) icon. On pretty rare occasion, I need to hold power and then hold home to kill an unresponsive app. But I've never "quit" an app when I was done with it. I've had an iPhone since the beginning and my battery life and performance has always been stellar. Only apps that passively use GPS have been a problem , so I uninstall those.
This is also (mostly) true on my Mac as well. I leave DOZENS of apps running and only kill them if they start sucking down CPU cycles. Generally, most apps sit there, do nothing, and get paged out to the flash disk.
I'm also a little annoyed each time I meet a non-techie who had some techie tell them "Oh, here's how you close apps. It will make your phone faster." Try as I might, I can't convince my girlfriend that it has absolutely no effect. She religiously closes every single app in that little tray once or twice a day.
It's 2013 people. We don't (shouldn't?) need to manually manage memory for our computers.
2) Not everyone who is given the choice of a small exit is also given the choice of a follow on round of funding. If you're not making enough revenue and unable to strike a deal with a financier, you are going to have to shut down your product whether or not you strike a deal with an acquirer.
3) Your post has eliminated a "soft landing" from your startups' possible exits. If you wind up in the situation described by #2, you'll look like quite the hypocrite if you do anything other than die.
4) "I'm sure your investor's wallets think of your exit as a success" -- You'd likely be wrong about that. Your investors probably would rather you fail swinging for the fences.
This is the internet. There are Americans here. In fact, most of the sites with these annoying mobile experiences are American companies. Let's assume for a moment that the generalization is accurate... Consider: Successful persuasive writing must be written with a particular audience in mind.
The main thing that Clojure does in terms of being designed for interop is to require the use of host values/objects. There are no wrapper/proxy/delegate/whatever objects. This has big implications. It (unfortunately) means that there is behavior you simply can't have in core, such as reflection or continuations. That's a big part of being interop friendly: Intentionally specifying fewer things. If you have very strict rules for how something like strings behave, then you might wind up in a situation where you need to create a ClojureString class or something like that.
Additionally, the '. (dot) special form is like a giant "INTEROP HERE" sign, which is extremely useful when porting code from CLJ to CLJS. You can literally grep your source for /\./ and find platform specific code.
The more important point of literal syntax for composites other than lists is the fact that they are resolved at read time. This means you don't need a macro to have grouping. With (some-macro ((f x) (g y))), you need to force expansion inside the parens. Quoting (some-function '((f x) (g x))) requires forcing evaluation in your function. You could use (vector (f x) (g x)), but now that means some-function gets a vector argument and some-macro would get a list argument with first element 'vector. In Clojure, (some-function-or-macro [(f x) (g y)]) both have a vector as an argument because of the read-time behavior of data structure literals. Huge win in my book.
> a "I hate parens" Lisp-1
Clojure's minimal syntax is, in my opinion, a gigantic improvement over Common Lisp. And I say this as a person who quite likes parens. I feel similarly about Lisp-1s, but that is well trotted territory: Lisp-1s have won.
Parens are overloaded in traditional Lisps for both invocation and grouping. The introduction of vectors with square brackets makes a lot of code a great deal more readable at virtually zero cost: It's still homoiconic. Similarly, the inclusion of curly braces for maps is wonderful, as it makes maps a lot more common in Clojure than they would otherwise be in CL, which is a good thing for most business logic.
> replicatable in CL as a library
Defaults matter. A lot. Presence in a library is insufficient. The fact that seqs et al are in core means that 100% of Clojure libraries use those abstractions. That's a big deal.
> I don't understand why the libraries and macros to create similarly compelling interop over ABCL weren't developed instead
Rich discussed this on the CL mailing lists long before Clojure or even his first attempt, dotLisp, ever existed. See [1] and [2]. In short, interop needs to be planned for at the lowest levels to make it pleasant to use and efficient to execute. And it's not just JVM interop: Clojure was designed for $SOME_HOST interop, so ClojureScript interops as nicely with JavaScript as Clojure does with the JVM. CL would have two different libraries with two different ideas of interop for two different host platforms.
> I don't know why Clojure was created as a new language
I think you have a different definition of the word "language" than I do. Look at PG's Arc. It's built on a scheme implementation. It's not so much a new language by your definition as it is a set of scheme libraries. But that's what a language is: A common base vocabulary encoded with a well known set of syntax and semantics rules. Clojure could be implemented (quite trivially, thanks to the aforementioned careful hosting design) as a set of libraries to CL, but it would still be a new language.
[1] https://groups.google.com/d/msg/comp.lang.lisp/3-X76dTw8dI/I... [2] https://groups.google.com/d/msg/comp.lang.lisp/3-X76dTw8dI/s...
Snippet from [2]:
If one were starting from scratch,
and supplied a platform like .NET, would one define Lisp the way CL is
defined?
I would hope the answer is 'most definitely not'. For instance, .NET
provides for numbers, characters, strings, arrays, hashtables, exceptions,
namespaces, files, streams, user-defined types, a type hierarchy and
inheritance, I/O, object creation and initialization, reflection etc. Should
a language define its own incompatible versions of these things in such an
environment?