Ask HN: Have you ever built a drone? Share your setup! - <AUTHOR> I'm looking to build a drone for under ~$400 this summer and I would love to hear your parts and how they perform. <comment><USER2> Several! I recommend starting out with something not too overly expensive (you'll crash), easy to repair (you'll crash) and sturdy (you'll crash). Oh, did I mention you will crash?

TX: Turnigy 9XR or FrSky Taranis (more expensive, but a good investment since you probably won't crash this one...)

Frame: any 330 size frame will do. This one for instance: [https://www.banggood.com/DJI-F330-4-Axis-RC-Quadcopter- Frame...](https://www.banggood.com/DJI-F330-4-Axis-RC-Quadcopter-Frame-Kit- Support-KK-MK-MWC-p-943370.html)

Motors: 2212, ca 1000kv will make it pretty sporty

ESC: 30A

This combo set is only 19 bucks: [https://www.banggood.com/XXD-2212-MotorZTW- AL30A-Brushless-E...](https://www.banggood.com/XXD-2212-MotorZTW- AL30A-Brushless-ESCPropellers-KV1400-KV2200-p-971190.html?rmmds=search)

Flight controller: Naze32 or CCD3. Doesn't really matter. This one is fine (it's in my latest quad) and is only 11 bucks: [https://www.banggood.com/DALRC- NAZE32-REV6-MPU6050-32-bit-6-...](https://www.banggood.com/DALRC- NAZE32-REV6-MPU6050-32-bit-6-DOF10-DOF-Flight-Controller-for- Multicopter-p-1020774.html?rmmds=search)

You'll need extra props, wire and nuts and bolts. 400 dollars is totally achievable!

</comment><comment><USER3> I've been doing it for a decade [1].

Not a lot of success on the big one - before FPV it was notoriously hard to fly, and after FPV it turned out it was unstable on sharp turns (see crash videos). Haven't gotten around building a next iteration. Latest one is a aluminium-plastic frame, 2825-1100 motors, 3.5Ah 3S battery, about 1.5Kg weight. Nicknamed flying guillotine due to it's bush-chopping 10x3.8 props.

The small one ("Acro") performs very well as an indoors/training quad. 3D printed frame, 800mAh battery, 1811-2000 motors, about 300g weight. Held together with zip ties across stress points, with connections angled as to be flexible on impact but lock solid under static load. So, you can crash it all day long and only need to replace the zip ties or props occasionally.

All had custom flight controllers and software, no ideas on that front. Not sure about the prices, since all the core parts were bought years ago.

[1] [http://orbides.org/pepela-gal.php](http://orbides.org/pepela-gal.php)

</comment><comment><USER4> I help out with a project [1] that teaches middle-school-age children how to build and fly multicopters with an annual competition in Atlanta. A lot of people wonder if "drones from scratch" projects is the right level for middle school kids, but it's similar to PC building: Although they seem difficult to someone who has never done it before, all the parts are built for you. You just have to put them together.

If you think it'll help you decide on beginner-friendly parts, here's the kit we use. This is in no way intended for racing, but this will put someone in the air that wants to get into the hobby.

For a flight controller, we use KK.2s [2] and CC3Ds [3]. The KK.2 board is programmed through a built-in screen, so it's useful if you want to make changes on the fly (no pun intended). The CC3D is tuned by plugging it into a computer running LibrePilot [4][5]. The advantage to that is that LibrePilot gives you much more features/customization options than the KK.2's tiny screen does. I've also found the CC3D to be a little more reliable.

Our transmitter/receiver combo is the FS-i6 w/ the FS-iA6B [6]. Nothing special, should give you about a half-kilometer of range. If you're willing to spend a bit more, I highly recommend the Turnigy Evolution [7]. It has much nicer gimbals, and feels a lot more comfortable in the hand. The only disadvantage you'd have with this one is that switches/knobs are limited, so if you want to make cool peripherals you'll have less options (fun fact- if you hook up directly to a channel output on a receiver, and bind that channel to a switch on a transmitter, the servo will move in either direction! Lots of cool things you can do with that)

For motors/ESCs, this MultiStar motor/Afro ESC combo pack [8] is pretty nice. The motors can break if crash hard, but the hardware you get for the price is excellent. If you get them, heads up: the axle that rotates with the motor sticks out to be lower than the base of the motor, so when you mount it, make sure that it won't drag on anything when it spins. Most frames have a hole for this purpose, but I've had issues with this in the past.

When you're not racing, propellers aren't something you can go wrong with (well, at least compared to other parts). With your price range and the assumption that you're just building a simple multicopter for flying in a field somewhere, 6-inch props (Example [9]) are really all you need.

Batteries are something that _really_ depend on what kind of flying you're doing. You can go from tiny 1-cells for brushed micro quads [10] to high- discharge 4-cells for racing [11], all the way to massive 30,000 mAh LiPos for, I don't know, agriculture or something? [12] I'll have to make guesses about what kind of drone you want to build, but unless you're doing something extreme, a simple 3-cell 1500 mAh LiPo should work fine [13].

As for a frame, I recommend you 3D print one if you're not racing or trying to do acro flying. There are a million on Thingiverse, but there's one called the Crossfire that I really like [14].

Again, I have no idea what kind of multicopter you're trying to build, and there are so many ways that the parts list would change if you were trying to get into racing or full autonomy or something else. Other than the frame, this is what we start kids off with, and it's proven to be an effective way to get people into the hobby.

[1] [https://www.g3robotics.com/dfg](https://www.g3robotics.com/dfg) [2] [https://hobbyking.com/en_us/hobbyking-kk2-1-5-multi-rotor- lc...](https://hobbyking.com/en_us/hobbyking-kk2-1-5-multi-rotor-lcd-flight- control-board-with-6050mpu-and-atmel-644pa.html) [3] [http://www.getfpv.com/openpilot-cc3d-flight-controller- strai...](http://www.getfpv.com/openpilot-cc3d-flight-controller-straight- pins.html) [4] [https://www.librepilot.org](https://www.librepilot.org) [5] [https://github.com/librepilot](https://github.com/librepilot) [6] [https://www.getfpv.com/flysky-fs-i6-afhds-6ch-transmitter- an...](https://www.getfpv.com/flysky-fs-i6-afhds-6ch-transmitter-and-6ch-fs- ia6b-receiver.html) [7] [https://hobbyking.com/en_us/fpv-racer-radio- mode-2-white.htm...](https://hobbyking.com/en_us/fpv-racer-radio- mode-2-white.html) [8] [https://hobbyking.com/en_us/multistar-afro-combo- pack-2206-b...](https://hobbyking.com/en_us/multistar-afro-combo- pack-2206-baby-beast-v2-motor-and-12a-afro-esc-set-of-4-cw-ccw.html) [9] [https://hobbyking.com/en_us/gemfan-propeller-6x4-5-black- cw-...](https://hobbyking.com/en_us/gemfan-propeller-6x4-5-black-cw- ccw-2pcs.html) [10] [https://www.getfpv.com/tattu-220mah-3-7v-45c-1s1p-lipo- batte...](https://www.getfpv.com/tattu-220mah-3-7v-45c-1s1p-lipo-battery-pack- with-eflite-stock-connector-1pcs.html?gclid=CJzg5a__5dMCFYg7gQodfCIHQg) [11] [https://www.getfpv.com/lumenier-1300mah-4s-60c-lipo- battery-...](https://www.getfpv.com/lumenier-1300mah-4s-60c-lipo-battery- xt60.html) [12] [https://www.genstattu.com/tattu-30000mah-22-2v-25c-6s1p-lipo...](https://www.genstattu.com/tattu-30000mah-22-2v-25c-6s1p-lipo- battery-pack.html) [13] [https://hobbyking.com/en_us/zippy- compact-1500mah-3s-25c-lip...](https://hobbyking.com/en_us/zippy- compact-1500mah-3s-25c-lipo-pack.html)

Side note, this is my first post to HN. I have no idea what I'm doing, and if I'm breaking any unwritten rules or something please tell me! Thanks

</comment><comment><USER5> Hey, I am also planning to work on exact same thing. Are you interested in keeping in touch each other to share experience? DM me please.

</comment><comment><USER6> I've actually intended building one from scratch as much as possible (buying only a frame, motors and battery) and then build custom flight controller and custom 3-phase motor controllers, but eventually decided just buy ready-made ESC and focus more on the flight controller.

The first iteration of the flight controller consisted of an Arduino nano, MPU9250 breakout board and ESP8266 for WiFi communication (I've intended to use an Android app for control): [http://imgur.com/NyHABh7](http://imgur.com/NyHABh7) (the Arduino nano and the MPU9250 breakout board are missing because I'm using them in the new board)

This setup never took off because of two main things: 1\. The Arduino proved to be very slow. (8 bit without FPU) 2\. The Android controllers on the touch screen made it very to control the drone.

So, I decided to "gut" a toy drone controller put an Arudino + nRF24 in it. And since I now needed to replace ESP8266 with an nRF24 and replace the Arduino nano with something more powerful, I built a new flight controller with both the nRF24 and a Teensy 3.5 (which is an ARM with Ardunio compatible libraries): [http://imgur.com/XtaDUPi](http://imgur.com/XtaDUPi) The controller: [http://imgur.com/8Br1cMs](http://imgur.com/8Br1cMs) [http://imgur.com/cY1FupV](http://imgur.com/cY1FupV) [http://imgur.com/sJyS0EJ](http://imgur.com/sJyS0EJ)

And this time the drone actually took off! And after a lot of PID tuning and messing around with the algorithms it actually stayed in the air! (I'll upload a video later, I can't take one now because it's 1am...)

But the controlls were still pretty bad. They we're very sensitive and noisy. Since I enjoyed this project (both building/coding and flying) so much, I decided to take it to the next level. I bought a real flight controller (Taranis X9D) with a compatible receiver, and instead of building another new flight-controller on a proto-board again, I made a PCB: [http://imgur.com/08oFkGW](http://imgur.com/08oFkGW)

Here's the PCB actually sitting on the drone right now: [http://imgur.com/KqvGPd5](http://imgur.com/KqvGPd5) [http://imgur.com/Svjz61w](http://imgur.com/Svjz61w) [http://imgur.com/jerlNHB](http://imgur.com/jerlNHB)

Currently I'm working on the next version of the PCB with a few fixes, and additional magnetomter and a barometer: [http://imgur.com/nqLHzKc](http://imgur.com/nqLHzKc)

If there's an interest I'll make the source code and PCB layout+schematic open source. Sorry for the poor quality of the pictures, and a lack of video of the thing actually flying :). I'll take some more pictures and videos tommorow hopefully :)</comment>


You Got To Be In It To Win It  - <AUTHOR> http://www.avc.com/a_vc/2011/06/you-got-to-be-in-it-to-win-it.html

<comment><USER2> The idea of the repurchase being at the current fair value (perhaps via the most recent 409a analysis) strikes me as being fair:

\- the employee _was_ in it to win it and would be able to walk away with the amount of win that accrued while they worked at the firm

\- the company retrieves the wayward stock to keep the cap table clean

The tricky issue is which valuation to use in lieu of a secondary market.

<comment><USER3> That approach appears to provide an incentive for employees to leave so they can liquidate their holdings.

<comment><USER2> True. So the employee has to believe that those options will be worth more in the future if they stay. That seems like an entirely appropriate challenge for the company.

<comment><USER4> Not sure how legally feasible this is...

Suppose the (ex-)employee sells the company an option on his options.

If he exercises prematurely, the company sits on its option and the employee can't flip the shares onto the secondary market. When the company exercises, the employee is compelled to exercise to cover his position. Figuring out the strike price on the options could be tricky, but it removes the incentive to quit and force the company to scoop the shares.</comment></comment></comment></comment>


Backbone is not MVC. Not even a little bit. - <AUTHOR> http://koglerjs.com/verbiage/backbone

<comment><USER2> This is the first Backbone tutorial that's made any sense to me. Thanks.</comment>


Ask HN: What was the most traffic you've got on shared web hosting? - <AUTHOR> Serving error pages doesn't count. <comment><USER2> What exactly do you mean by "shared web hosting?"</comment>


Why Project Managers Are More Likely to Become Linchpins - <AUTHOR> http://corporategeek.info/why-project-managers-are-more-likely-become-linchpins

<comment><USER2> Why are PMs at technology companies often the corporate drone types that only pretend to add value by retweeting status from the people who really know what's going on? Without understanding, they play a destructive game of telephone and buzzword bingo.

Shouldn't engineers with leadership gifts lead more projects where engineering plays a major role? Am I being too engineering-centric to think that suitably gifted engineers could grok the non-engineering aspects of a project better than a spreadsheet pusher can understand the engineering component?

Maybe I've just never worked with a good PM.

<comment><USER3> You have never worked with a good PM. I've worked with incredible PMs. I've seen these PMs walk into meeting with senior developers and architects, and pretty much be the only person asking the right question regarding how to get the product shipped.

And that for me has been one of the defining characteristics of a strong PM. Good questioning ability. Ability to skip to the chase. And they have a suprisingly strong grasp of dependencies. When architect A says, "this is coming in a bit late" they almost instantly are getting the PMs and architects from team X, Y, and Z in the room because they know theres an indirect relationship to these teams also.

I've only worked with one bad PM in my life. We fired him after two months. The difference in productivity, confidence, and general life enjoyment between an bad and good PM is pretty enormous.

<comment><USER4> My experience in the services realm is that there are way more bad PMs than good PMs.

I've seen way too many PMs too afraid to push back on the customer with respect to scope changes who also have no idea how the technical staff think and therefore have no idea how to communicate with them.

I've also found that PMs with more certifications tended to have less of a clue in terms of how to run a project, but that's just my experience.

</comment></comment></comment><comment><USER5> Like others mentioned, I've also come across more bad PMs than good ones. It's tainted my general view of PMs, and I rarely recommend that anyone go into that line of work. It's all too easy to fall into ineffective roles as a PM, and many dysfunctional orgs exist that actively encourage it.

That being said, there are a few good ones, but they mostly come from Agile organizations.

Here are the qualities I've found in the good PMs: \- Strong technical background and highly intelligent. They went into PM not because they were weak engineers, but because they wanted a change.

\- They know when to get out of the way of the engineers when they need to. They provide a healthy amount of autonomy rather than being glorified taskmasters.

\- They can provide effective "air cover" for the engineers when other groups start hassling them and slowing them down. They view the removal of obstacles as their most important role.

\- They know progress is best demonstrated by working applications, not specs, spreadsheets, or charts. They strive to have something demonstrable to the project stakeholders at the end of every iteration.

\- They are generally low ego, and don't play political games. They strive for results above all else.

<comment><AUTHOR> Totally agree. Would add one more: when there is a problem, they never hide it or ignore it. They face it in a very hands on way and clearly articulate it to all involved in the project.

</comment></comment><comment><USER6> More likely than who? Anyone else in an organization?

Also, the elaboration of "Providing deep domain knowledge" explains it as deep domain knowledge of product management. The is akin to saying the engineers have deep domain knowledge of engineering, and doesn't explain why project managers are more likely to be lynchpins than other positions. But then again, he didn't mention what these other positions were.

</comment><comment><USER7> Am I the only one who found it funny that the post ended with a link to a PowerPoint document?</comment>


Rails – The Missing Parts – Policies - <AUTHOR> http://eng.joingrouper.com/blog/2014/03/20/rails-the-missing-parts-policies/ <comment><USER3> If I can overly generalize, and as a person who generally loves Ruby and Rails, I'll suggest that there are two schools of Rails app development emerging.

The first is what I'll term the "Classic School" or "DHH School" characterized by full-blown utilization of all Rails magic such as AR/AC callbacks, pretty skinny but not obsessively skinny controllers, an eschewance of service objects and more.

The "Emerging School" relies less on some aspects of Rails magic, and introduces patterns like services/interactors/DCI and seems to be more focused on building a domain models which attempt to be less coupled to the framework.

I think the Grouper folks are in the second camp given their previous blog post about interactors which showed up here on HN. Also, I think the desire to encapsulate authorization into a reusable object seems slightly more in the spirit of the emerging school.

What I find odd is that they'd offer a solution for authorization which is so bound up in Rails magic. It seems to me authorization is really part of the domain model and as such you would expect to find that code in whatever gets called by the controller (which I would expect to be something like an interactor, but in this blog post is just plain old Rails code.)

<comment><USER4> Similar to [http://words.steveklabnik.com/rails-has-two-default- stacks](http://words.steveklabnik.com/rails-has-two-default-stacks) ?

<comment><USER5> Actually I disagree in a big way. I think it's a mistake to conflate choices in tooling like HAML/HTML & mySQL/pg with architecture choices.

Your architecture choices change the way you write your application code and how you utilize the Rails framework. On the other hand HAML is not going to change the way you write markup, it just provides a different syntax that some people prefer. Postgres has features people like that mySQL lacks. MiniTest & Rspec are different syntaxes for testing. These three choices have very little to do with how you use Rails & write your app code, they just happen to be made by the same people who advocate big architecture changes.

I fall in a camp where I use HAML, postgres & Rspec but I also use fat models and skinny controllers. I have a few really small services in my apps but I try to reserve them for cases when the standard Rails pattern is extremely ugly rather than actively seeking out replacements for the Rails way.

</comment></comment></comment><comment><USER6> Ensuring that the Ticket is valid is obviously a domain model concern. Policy objects can be a fine idea when they're swappable and you need to allow for multiple different policies. This is not one of those cases.

Here's a much simpler approach that keeps the validation logic in the domain model and uses features that Rails has had since the dawn of the framework: [https://gist.github.com/dhh/9672827](https://gist.github.com/dhh/9672827)

<comment><USER6> On a separate note, I feel like this article series might better be titled "The Missing Parts of Our Knowledge of Basic Rails Features".

Reinventing basic features doesn't make your Rails deployment "advanced", it just makes it convoluted. There's no bonus prize for introducing fancy patterns to situations that do not call for them.

Further more, here's the definition of the Active Record pattern, as described by Martin Fowler: "An object that wraps a row in a database table or view, encapsulates the database access, and adds domain logic on that data". The key part is that last sentence.

So a quote like what follows simply misunderstands the purpose the Active Record pattern: "A recurring theme in these posts is that ActiveRecord models should be very simple interfaces to a datastore – the User model should be responsible for validating and persisting attributes of a user, like name and date-of-birth, and not much else."

See the example diagram (which I actually drew for Martin back before even starting Rails!): [http://www.martinfowler.com/eaaCatalog/activeRecord.html](http://www.martinfowler.com/eaaCatalog/activeRecord.html) \-- it includes domain logic methods like "getExemption", "isFlaggedForAudit", and so forth. Exactly like the pattern describes.

You're not a beautiful and unique snowflake.

<comment><USER7> Thanks for taking a look - I certainly respect your viewpoint.

I guess where we diverge is the _amount_ of domain logic which lives on an ActiveRecord model.

My experience is relatively limited, but in 4 or so years of professional Rails development, across many different codebases, the overwhelming majority of problems have been caused by bloated models with too many responsibilities.

You clearly have more experience with Rails, but your solution always seems to be "If you were smarter, you wouldn't have these problems with my framework". I've seen this problem recur again and again across multiple teams & codebases.

We're seeking to address that problem with these concepts that have been successfully used in other frameworks & languages.

<comment><USER6> Yes, when stumbling across bad code, the first instinct should be: how can I make this simpler. Not how can I wrap this bad code in more convoluted patterns. Don't use a big word when a small one will do.

Additionally, I find that the key problem with bloated models stems from missing domain models (often has-many-through models). Not from moving the logic of the existing models into more noun classes. In your example here, the purpose of the ticket is to tie a user to a grouper: that's exactly the place to put logic that governs that connection!

Finally, what gets my goat is this notion that these patterns are necessitated by "advanced deployments". As it was some law of nature that when your app hits a certain size, you have to introduce this litany of misfit patterns. That's like arguing that if your book is longer than 300 pages, it must also use really big words and complex sentence structures. What?

The solution to large applications is to double down on simplicity, not give up on it. It is even more important to get the basics right. Execute them beautifully before even contemplating to freewheel from there.

<comment><USER8> > Additionally, I find that the key problem with bloated models stems from > missing domain models (often has-many-through models). Not from moving the > logic of the existing models into more noun classes.

When I first started learning Rails 4 years ago, I watched a video of a talk you gave where you refactored a kludgy piece of code to use an additional resource/model. The code unraveled before our eyes.

I still remember that as a Neo moment.

<comment><USER9> Don't suppose you have a link to that video? Or remember any more details so I could dig it up?

<comment><USER8> I think it was this one, but unfortunately I can't find the whole video.

[https://www.youtube.com/watch?v=mp4z2eK1Avw](https://www.youtube.com/watch?v=mp4z2eK1Avw)

[http://johannesbrodwall.com/2007/02/27/crud-rest- rails/](http://johannesbrodwall.com/2007/02/27/crud-rest-rails/)

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> Oh boy, is DHH going to jump into this too?

As an intermediate Rails developer...I don't understand why this if/else forest:

        if user.blacklisted? # They've been banned for bad-behaviour
          fail! "You can't book a Grouper at this time"
        elsif grouper.full?
          fail! "This grouper is full, please pick another date"
        elsif grouper.past?
          fail! "This grouper has already occured!"
        elsif user.has_existing_grouper?(grouper)
          fail! "You're already going on a Grouper that day"
        elsif ticket.confirmed?
          fail! "You've already confirmed this grouper"
        end

\-- can't simply be part of the Ticket object? The Ticket clearly has a relation to User and Grouper and talking to those objects (i.e. `if user.not_blacklisted? && user.not_booked(self.date)`) don't violate Demeter...how is making a policy object cleaner than just using a Concern that is included into Ticket? The controller then just needs to ask for `ticket.confirmable?`

edit: OK, not ask for `ticket.confirmable?`, but rather, try to `save` the ticket and the Ticket constructor/validators can pass on the errors to the controller.

<comment><USER7> I think ultimately it's a philosophical difference; the problem with very many large Rails deployments is that the ActiveRecord models are the core of the application, and DHH's conception of Rails seems to encourage this.

This tends to cause a lot of problems - it's hard to exercise a single model in tests without having a very large number of associated objects present. This also tends to require them to be in the database. This makes your tests very slow, and your application very tightly coupled and hard to refactor.

If you rethink your Rails application and make models responsible for _only_ data validation & persistence, you tend to avoid these kinds of problems. You then need somewhere else for the "core" of your application logic to reside. We suggest these new concepts are Interactors, Policies (and Decorators - <USER2> to come in a new blog post).

<comment><USER11> It sounds like you're letting "ease of test maintenance" drive the architecture of the rest of your app; I'm inclined to accept that incentivizing test creation will lead to more confidence in the face of changes but am somewhat unconvinced it's 1:1 with "less coupled, more maintainable" a priori.

Case in point, I'm really uncomfortable with class names with verbs. Typing CanConfirmTicketPolicy.new(ticket: ticket).allowed? smells bad to my fingers.

It strikes me that you haven't eliminated the coupling? because the CanConfirmTicketPolicy still depends on different domain objects. Kind of by definition, you can't remove it because it's explicitly operating on User, Group and Ticket; the main difference to me seems that they're easier to mock?

I would argue that this ought to be either an explicit inter domain class that models the interaction between Users, Group and Tickets - some appropriate noun like Purchase or GroupActivity or whatever - that can then be solely responsible and reused as appropriate.

You have a bit of text that explains your decisions,

>We could move the logic to a controller mixin, or define the method on the ApplicationController, but it would still not be available in our view

Could you not just define a helper method, then? Helpers are available in both views and controllers if memory serves, are mixed in by default, are equally easy to test as your verbed policy object and have the (minor) added benefit of not polluting your namespace while being equally easy to reason about - it's unclear to me how can_confirm_ticket?(ticket) would necessarily be inferior.

If you're really interested in putting these in models (which is also acceptable) then a regular concern namespaced to your preferred model would work just as well.

Am I missing something? I would like to understand your use case but I don't seem to get it.

<comment><USER12> > It sounds like you're letting "ease of test maintenance" drive the > architecture of the rest of your app; I'm inclined to accept that > incentivizing test creation will lead to more confidence in the face of > changes but am somewhat unconvinced it's 1:1 with "less coupled, more > maintainable" a priori.

I've thought of making a similar comment on _many_ other articles but never have. This is actually the first time I've ever even _seen_ anyone else saying it. I wonder if we're relatively unique or if many other people feel the same way and simply (like myself) don't actually comment on it.

<comment><USER13> Difficulty of testing is a generally reliable indicator of a design that's in deep pain. [ _Growing Object-Oriented Software, Guided by Tests_ ]([http://www.growing-object-oriented-software.com](http://www.growing-object- oriented-software.com)) is easily one of the two or three most influential technical books I've read in my career — and the book's only five years old.

When I'm spelunking through some dank and dimly-lit Rails-model God Objects, I often fantasise about how things would be different if certain influential developers had read that book or one like it before setting out, and had taken the lessons to heart. Then I swap the batteries in my headlamp, and continue my descent.

</comment></comment></comment></comment></comment><comment><USER14> How is a Policy different than an ActiveRecord::Validator? Could this TicketPolicy not just be a validator extracted to it's own file (and tested on it's own)?

[http://api.rubyonrails.org/classes/ActiveModel/Validator.htm...](http://api.rubyonrails.org/classes/ActiveModel/Validator.html)

<comment><USER15> Policies (also known as strategies) aren't altogether different from Validators, though they're a bit more flexible. The real difference is that validation doesn't belong on your database interface, and its the chief reason why AR can only be used for domain driven design in the most basic of circumstances (NB: this isn't the same as saying that database constraints are a bad thing.) Validators are hardcoded into models; in that regard, they're only slightly more flexible than using validations directly on the model. Like Rails' notion of concerns, they're really about code geography, not architecture or design.

Policies, on the other hand, are far more flexible (assuming your application interface supports them, or they're used to wrap a block, or some other gatekeeping mechanism) because they can be swapped out. Imagine a circumstance in which you want one set of validations for creation by a normal user, and another set of validations when the creation of an instance occurs through a privileged API; yet another set of rules for creation by an admin, and so on...

You _could_ implement those as a series of validators with an :if option on the validates call, and if you want to stick with Rails' canon, go right ahead. But in my opinion (and having made this mistake before) you're simply staving off an inevitable point at which your dependence on Rails has hamstrung your ability to iterate code.

</comment></comment><comment><USER16> related, Pundit provides some similar functionality in a very minimal package [https://github.com/elabs/pundit](https://github.com/elabs/pundit)

<comment><USER17> We've been using Pundit with great success in our organization. We use it along with a few other objects described below.

We have abilities, which is just a table full of strings like "modify users". The policy (from Pundit) looks these up to find whether an actor (user, typically) can do something to a model.

We have roles, which is just a user-definable collection of abilities, so you might define an 'admin' role that has every permission, and a 'reporter' role that has the ability to run reports and not much else.

We have permissions, which includes a role, a manager, and a manageable. The manager is the actor, or the thing asking to do something to another object; the managable is the object the actor is trying to act upon.

There is a "Managable" concern that gets included in any object that may be guarded by policies, and a "Manager" concern that gets added to any object that might be an actor. The Manager concern sets up the associations gives us methods like "#has_ability_on(ability, managable)", and "#has_ability)", which is useful for deciding whether to show gui widgets. These methods are how Pundit looks up the abilities one (manager) object has on another (managable) object.

This simple setup has allowed us to greatly simplify our application.

<comment><USER16> Curious is you have some more details about this written up anywhere or some code on github?

I'm just using Pundit in a "real" app for the first time where strict user types won't be enough and I need to have a role based approach. I'm doing something similar to what you have now, but a couple steps back in my design process, and the managable concern sounds promising.

<comment><USER17> That would be a good idea for a writeup. I'll have to get that done. For now, I have a couple more details.

We're using the closure_tree gem to give a hierarchy to the permissions; every permission can have a parent, which may further limit which abilities are allowed on a managable by a manager. This means that if user A has abilities "1,2,3" on an object, when he grants a permission to user B, while he can create the permission with whatever abilities he wants (maybe abilities "2,3,4"), the parent of that user B's permission is user A's permission, which restricts the real abilities user B has so that user B effectively has only abilities "2,3" on that object. To do this, we get the whole ancestor chain and take the intersection of all the abilities of each permission.

We also have organization objects; these are the owners of everything in the system - they own the users, the roles, the permissions, etc. Organizations may also be a manager or a managable; in fact, an organization automatically gets a permission with itself as both the manger and the managable, with every ability. We also use closure_tree with organizations: when an organization is the managable part of a permission, that permission applies to everything the organization owns, including all descendants.

So we have permissions with a hierarchy where we look upward at its ancestors to limit its abilities, and organizations with a hierarchy where we look down to find the scope that permission operates on.

<comment><USER16> awesome. I'd definitely like to see a full writeup if you ever do one, email is in my profile.

</comment></comment></comment></comment></comment><comment><USER18> While more interesting than the first part, it should be noted that the policy does not solve the same problem as the one they had originally, where different fail reasons led to different URLs.

If you only intend to redirect to one url in case of fail, then using normal validations (possibly on a service object implementing ActiveModel::Validations will suffice and produce as simple code as their solution.

Which isn't saying that I dislike it, only that it is quite equivalent with a separate service model without controller integration.

<comment><USER10> Yeah, I agree with you...I think the implication is that the original implementation was bad for various reasons, among them, redirecting to different URLs based on error. But if in fact, that kind of redirection needed to be done (which would seem to be a mild violation of best-OOP practices), then I'd agree, a Policy object that lived outside of the Model and the Controller would be needed.

However, the OP apparently realized in the refactoring that it made more sense to simply have two paths...or setup a convention so that `redirect` can infer the correct error page from the error itself. If the OP had insisted that the Policy keep the path logic, I'm sure DHH would jump all over that as being bad-design-looking-for-a-solution.

<comment><USER7> Yes - you're absolutely right. We perhaps could have made this trade-off more explicit.

We didn't want the Policy object to know about the redirect paths, so we opted to cut down the number of responses available - we simply redirect_to :back by default, but this can be configured in the controller.

</comment></comment></comment><comment> Dorian-Marie I would use CanCan ability.rb file for that: [https://github.com/CanCanCommunity/cancancan](https://github.com/CanCanCommunity/cancancan)

<comment><USER19> My problem with CanCan is that when you begin to have more complicated access logic ability.rb becomes a giant mess.

It's already a file where you just throw in all of your authorization logic anyways so it always feels a bit unruly once you get beyond basics.

<comment><USER13> I agree. The first app we wrote using CanCan, the `ability.rb` file (and the dozen files we factored out of that) grew to be... _significant_.

I _love_ the idea of Pundit because it decouples all that as much as seems practical. I'm about to find out if theory informs practice or not...

</comment></comment></comment><comment><USER20> I think this is a responsibility that lies in the model. What if you decide to allocate tickets through a different model? You have to remember to include this policy everywhere. Another approach i think is reasonable is creating a class for this on the model level.

[https://gist.github.com/jvans1/9745395](https://gist.github.com/jvans1/9745395)</comment>


The Strongtalk Type System for Smalltalk (2004) - <AUTHOR> http://www.bracha.org/nwst.html <comment><USER2> I think I remember reading at one point that a bunch of the original Strongtalk tech was recycled by Sun Microsystems for the first JVM. A quick DuckDuckGo-ing yields some plausible confirmatory links such as [https://github.com/jirkadanek/Strongtalk](https://github.com/jirkadanek/Strongtalk)

<comment><USER3> It wasn't for the first JVM; it was for HotSpot, the JIT engine that replaced [1] Sun's previous JVM in 1999.

HotSpot was developed by the same team that worked on Strongtalk [2], including the linked submission's author Bracha, who were later acqui-hired by Sun [2]. See also my previous comments that summarize this and recount the achievements of the rest of the Strongtalk team, who all went on to be significant contributors to various domains [3][4].

[1] [http://www.javaworld.com/article/2076604/hotspot--a-new- bree...](http://www.javaworld.com/article/2076604/hotspot--a-new-breed-of- virtual-machine.html) [2] [http://www.strongtalk.org/history.html](http://www.strongtalk.org/history.html) [3] [https://news.ycombinator.com/item?id=12160439](https://news.ycombinator.com/item?id=12160439) [4] [https://news.ycombinator.com/item?id=12284279](https://news.ycombinator.com/item?id=12284279)

<comment><USER2> Ah, that's an important distinction I had somehow forgotten that HotSpot wasn't there from the beginning. Thank you for the summary links--interesting history!

</comment></comment></comment><comment><USER4> "The most important change introduced into Strongtalk is the move from structural to declaration based subtyping. This change was made because: Structural type descriptors do not express programmer intent, and are difficult to read. Error messages produced by structural checking are poorly localized and very hard to understand. This is especially true in a large system with lots of internal cross references like Smalltalk."

Word. Yet fast-forward 30-ish years and structural typing is sold as a feature again. I swear Golang is doing so much backwards that it's starting to look intentional, like a Google-sponsored LOLCODE.

<comment><USER5> If you want to apply these claims to Go interfaces, you should actually make the case for it by showing that it's an issue in Go programs. This is just snark.

<comment><USER6> Don't knock snark. It's perfectly valid way to challenge and traces its history to early computer science. It's why you fear goto. It's why I exploit it.

<comment><USER7> Nowadays, it has become pervasive on social media, and lost value as everyone uses it. It acts as a rhetorical device which can disguise the poor quality of of the argument.

<comment><USER6> I would say, if it's Millenial Style Snark (gawd I hate to brand all millennials that way but they do tend to sound like the younger halo/gta 5/etc playing crowd) where they say something stupid like "Tests or STFU" or "callbacks or GTFO", yeah, that's tiresome. It's the kind of tone I saw occasionally in early nodejs discussions. I wouldn't call that snark, however.

So I agree with your last statement. Snark to me implies a wit or cleverness as well as defiance and challenge. This is why it worked for Dijkstra. The brevity of the messages above are just a show of a lack of ability or desire to communicate and clearly express an idea. The above are just unnecessarily verbally abusive. They incite a negative response before the person even has had a chance to process other meanings of the message.

<comment><USER4> I sure hope turning the whole thing into a personality-attack was worth it for you. Do you ever consider the harm you do as you desperately fight to prevent alternate views from affecting your reality? Not to mention that it's a loosing game in the long run.

Brevity is a virtue; and Golang has very little of it.</comment></comment></comment></comment></comment></comment>


Valitor Sentenced to Pay 1.2B ISK over Wikileaks Payment Block - <AUTHOR> https://grapevine.is/news/2019/04/25/valitor-sentenced-to-pay-1-2-billion-isk-over-wikileaks-payment-block/ <comment><USER2> Good... TBH, I really don't like the idea of banks getting into deplatforming anyone. You cannot exist in a digital world without credit card infrastructure and it is emphatically _not_ just private businesses making decisions, and should be allowed to do whatever they want.

The CC companies and banks have created what is effectively currency exchanges and would cry endlessly if the Govt tried to create their own, and have established policy, legislation and action in every country in the world to hold back upstart competition. They are effectively public trusts in private investorship.

Freedom of speech in terms of money exchange should absolutely be held in high regard. Deplatforming by banking institutions is actually worse than any political speech legislation against people or businesses could likely ever be.

I'm only saddened that the judgement wasn't far higher, since they probably paid nearly that much just for the lawyers already.

</comment><comment><USER3> 1.2B ISK? Damn they're gonna need a bigger mining vessel to save up that much.. That's impossible if all they've got is a Venture

<comment><USER4> Get your Rorqual out into the belts, just don't forget your Panic module.

</comment></comment><comment><USER5> 1.2B ISK seems to be: ~

£7.6M

US$9.8M

€8.8M

<comment><USER6> And they were hoping for 15x that, so US$150M.

</comment></comment><comment><USER7> I wonder how long it takes in game to farm that much ISK.

<comment><USER8> Interstellar Kredits is obviously a reference to real world ISK, considering CCP is Icelandic and all.

<comment><USER9> Well, it depends. If one were to bump'n'dunk a freighter in Uedama this could be accomplished in less then 5 minutes. Even more so if you manage to chat-PVP some more ISK out of the bumpee before the gank. Aaaaaand even more if you sell the freighter pilot a plastic wrap full of assembled containers that matches the size of the one that dropped (half of the collateral works great).

</comment></comment></comment><comment><USER10> Sadly, this probably beats dealing with the bs they would have received from the USG.</comment>


PHP-CGI 0-day source code exposure vulnerability - <AUTHOR> http://eindbazen.net/2012/05/php-cgi-advisory-cve-2012-1823/

<comment><USER2> The problem is that the php-cgi script/binary accepts the same command line parameters as the regular php interpreter. This is clearly the wrong behavior and it's even documented as not doing that:

<http://www.php.net/manual/en/security.cgi-bin.attacks.php>

"Accessing system files: <http://my.host/cgi-bin/php?/etc/passwd> The query information in a URL after the question mark (?) is passed as command line arguments to the interpreter by the CGI interface. Usually interpreters open and execute the file specified as the first argument on the command line. When invoked as a CGI binary, PHP refuses to interpret the command line arguments."

Although this was actually in the documentation, Rasmus forgot why it was in there in the first place:

<http://thread.gmane.org/gmane.comp.php.devel/20745>

Here is a legacy feature of CGI that hardly anybody knows about, using a setup of PHP that is already rare, targeting an issue already claimed to be solved! The perfect storm.</comment>


Starlink network topology simulations and predictions - <AUTHOR> https://www.reddit.com/r/starlink/comments/9sxr3c/_/ <comment><USER2> I guess the elephant in the room is spatially uneven bandwidth demand. How many Netflix 4k streams will the constellation handle if a significant portion of London residents switches to Starlink? The simulation says a few dozen sats visible at any moment; will they handle a few terabits that I think London might saturate?

<comment><USER3> >How many Netflix 4k streams will the constellation handle if a significant portion of London residents switches to Starlink?

I wonder if as access to orbit cheapens how long it will be until we start getting orbital datacenters/CDNs specifically to mitigate this type of issue.

<comment><USER4> How would you set something like that up, orbitally speaking? Wouldn't the satellites move past <insert city here> pretty quickly?

<comment><USER3> I imagine an orbital server farm would probably be in a higher orbit than the Starlink satellites, and would just connect to them, vs people planetside connecting directly.

Starlink sats already move past <planetside location> quickly, which is why they propose loads of satellites and phased array antennas that switch from satellite to satellite as they move by.

<comment><USER5> How does that provide an advantage over having the same data-center on the ground? The starlink satellite still needs to communicate with both downstream clients and some kind of upstream link (whether that link is geographically above or below it doesn't seem to provide any obvious advantages for the starlink satellite itself, and the advantages to having the datacenter on the ground are numerous).</comment></comment></comment></comment></comment>


Silicon Valley's psychedelic wonder drug is almost here - <AUTHOR> https://www.fastcompany.com/90436824/silicon-valleys-psychedelic-wonder-drug-is-almost-here <comment><USER2> Does anybody know why savanthwp.com is defunct?</comment>


The UNIX Way - <AUTHOR> http://asserttrue.blogspot.com/2009/08/unix-way.html

<comment><USER2> This blog post contains mostly a small list of design principles. But those ideas are from ESR's book "The Art of UNIX Programming", where they are expanded upon in great detail, with excellent examples.

I am someone who practices the Unix philosophy on a regular basis, and cringes when I see how twisted and inelegant Windows has become (even on the programming side). I consider this book a must-read for people who know only Windows. It is also an interesting book for those who know Unix already.

<comment><USER3> 'Text as the universal interface' clashes quite badly with separating content from presentation. This means you're forever relying on regex's to rip data out of other applications, and relying on those other applications not to change their output.

Compare finding processes starting within the last hour on Unix and Windows:

        ps | grep 'regex representing the current amount of columns output by ps where start time is less than 2 hours'

Windows (ps is an alias for get-process):

        ps | where COLUMN <= value

The latter is much more robust. As Powershell gets more cmdlets it's going to become increasingly useful. That said, I prefer Unix for other reasons.

<comment><USER2> True, though "ps" isn't the best example, as it's one of the least portable commands I've ever seen. :) Its output is not even consistent from one Unix variant to another.

I kind of hope most Unix variants follow the /proc filesystem model of Linux. It basically cleans up these kinds of queries considerably.

</comment></comment></comment><comment><USER4> These rules don't seem to apply to the modern age very well. The rules "Avoid captive user interfaces" and "Make every program a filter" mean that you can't write a text editor. The rule "Store data in flat text files" means you can't write a (reasonable) MP3 player or video editing program.

"Build a prototype as soon as possible" is pretty general, but most of these rules are just good guidelines for writing command shells and compilers -- not coincidentally, two of the main concerns of early Unix developers.

<comment><USER5> s/rule/guideline/ and maybe you'll be able to see the forest past the trees.

 _The rules "Avoid captive user interfaces" and "Make every program a filter" mean that you can't write a text editor._

Not true. Some text editors are of the UNIX nature, and some are not.

But, the fact is that you probably _shouldn't_ be writing a text editor today. Editing text is a solved problem, and you'll almost certainly do it worse than emacs or vim if you try.

 _The rule "Store data in flat text files" means you can't write a (reasonable) MP3 player or video editing program._

Sure you can. Your playlists can be flat text. Your video queue list can be flat text. Your preferences can be flat text. MP3s and video can also be processed in a filter style (and often are conceptually so within the UI). Only problem is compressed data isn't in a form that can be filtered without first decompressing it. But, I regularly batch process music and audio files. If I did a lot of video work, I'm sure I'd also do the same with video.

Your program can certainly be a filter for those types of files. Sox, lame, and the ImageMagick convert utility are good examples of media programs that embrace the UNIX philosophy.

The point is that you shouldn't use a database if you don't need the things that databases provide beyond storage of blobs of data. Don't over-architect your file formats, don't obfuscate them, don't make it harder for users to use your code in ways you didn't envision. This is the UNIX philosophy...not that you aren't allowed to operate on non-text data.

Programs have been working with messy real world problems since before UNIX and the UNIX philosophy existed. The need to interact with non-text data hasn't sprung into existence in the past ten years. Before there were MP3 and video, there was typesetting, and scientific data analysis, and moon landing calculations, and neural networks, and telephone switching, and so on and so forth.

Programming in the UNIX philosophy is always possible, and, as far as I can see from my many years of software development, always wise.

 _but most of these rules are just good guidelines for writing command shells and compilers -- not coincidentally, two of the main concerns of early Unix developers_

Every single problem of note that I can think of would be well-served by breaking it into reusable pieces. Sometimes this just means libraries, rather than small standalone programs, particularly on the desktop...but sometimes separate programs that happen to be used by a "main" program are the right way to go. Things like video and audio compression can be, and often are, performed by separate programs.

This separation is a win on many levels...on a multi-core machine, the new process can have its own resources, while you continue to work away on your media. It can be upgraded or maintained at a specific version more readily. It can be used by other programs or in a batch mode from a script or batch compression utility.

I think it takes someone who doesn't use UNIX on a regular basis (actually uses UNIX; not merely a GUI shell on top) to think these concepts are outdated and not generally applicable.

<comment><USER4> I like many of these principles, it's just hard to apply more than a few of them to a given program.

Vim and emacs have captive user interfaces. MP3 encoders like LAME write binary data files. That doesn't mean they're bad programs, but it does make the principles tricky to apply, since they seem to be useful in some cases but not others.

I'm on the Linux command line all day at work, without any sort of GUI frontend. It's got its strengths and weaknesses, just like anything else.

<comment><USER5> _Vim and emacs have captive user interfaces._

With many well-placed escape routes. Again, think of them as guidelines, not hard unbreakable rules. The overarching gestalt is to make tools that can be used by other tools. vim and emacs happen to be the user of other tools (acting as a shell) most of the time, but they can also be used as tools by other programs (mutt opens your editor of choice for composing messages, for instance). They also use all flat text for their configuration and scripting.

 _MP3 encoders like LAME write binary data files._

So? That's their job. Their configuration is done from the command line and via flat text. They are filters.

Again, the "flat text files" rule is not that you're not _allowed_ to work on non-text data (that would be stupid; a lot of real world data, maybe most of it, is not representable as plain text). It's that when you have the option, you choose flat text, because it is easier to work with from other programs than yet another custom database or file format. Tools using tools is the UNIX philosophy. LAME is used by hundreds or thousands of other tools. It is _definitely_ of the UNIX nature and one of the more successful examples of it.

You're viewing things as some kind of dogma. That's not UNIX-y. Solving problems is UNIX-y, and there are some good rules of thumb that have been developed over the past 30+ years for solving problems in ways that stand the test of time. The fact that grep, sed, and so on, are used more today than 30 years ago is a testament to the strength of those ideas. Just because some folks ignore that wisdom doesn't make it invalid.

</comment></comment></comment></comment><comment><USER6> Too much of desktop linux has strayed from his #5, and it bothers me to no end (yes this means you, hal and dbus and gconf).

<comment><USER3> GConf is just text files. Open your .gconf folder.

<comment><USER6> Just xml files in a horribly tall folder hierarchy, you mean. Hand-editing xml (especially with a foreign schema) is retarded.

</comment></comment></comment><comment><USER7> It amazes me that The Way of Unix is not known and understood, and most certainly applied, by everyone everywhere.

<comment><USER8> If you amend that statement to "..., and most certainly applied, by everyone where it makes sense." I would be 100% on board. Engineering a solution is all about tradeoffs and sometimes the tradeoff needs to break a long standing convention to be fast enough / have a cohesive UI / whatever. I love the UNIX way but it is not the solution for Life, the Universe, and Everything either. That is 42.</comment></comment>


Ask HN: Please Review my Web App - <AUTHOR> http://nobadgift.com/ This is a project that some friends of mine are working on and I'd like to help them get some feedback outside of their immediate circle. <comment><USER2> The first thing I can point is the design. Seriously, it's as cheap as $15. Get a nice design. You even get the PSD files with it to customize the tiny detail.

<comment><USER3> Csomar version 2.0 will have a completely new design

</comment></comment><comment><USER4> I tried to register using "Connect with Facebook" but got this error message "An error occurred with sometimesyouforget. Please try again later."

Normal Registration - Did not receive account activation email. Can't Login.

Also there is no purpose of username in the registration when login is through email.

<comment><USER3> Those first two issues have been fixed and the username is for your profile so that you can share your URL with others. The through that profile people can contribute money towards the items on your wishlist

<comment><USER4> Is there any way to resend activation email. I cant register again with my email nor can i activate the account.

<comment><USER3> Manish_chhabra I have activated your account for you. You should be good to go now

</comment></comment></comment></comment><comment><USER5> Sounds interesting. I was thinking about something similar for my current location and biggest social network. Execution matters more, of course. Once you fix the design (seriously) some tips. \- Offer the converse: gift suggestions for your friends, on a mail. \- Offer birthday reminders. \- Try to understand the level of connection between a two peoples, so you can experiment with gift pricing. \- On the other side, offer retailers a deal for a cut of their profit.

Good luck. Execute fast. This is now public :)

<comment><USER3> trbecker Thanks for the advice and luck. We are working hard to improve this idea as fast as we can

</comment></comment><comment><USER6> This is a Rails app, correct? I think using a nice template would make this a magnitude more attractive. My suggestion is to be more clear with the value. Put "Share your gift list" in big, bold font at top, or something like that. I shouldn't have to read a paragraph, or click through some steps to figure out what the website is. I should _want_ to do that after salivating from your main point.

<comment><USER3> bdclimber14 that is a great suggestion.

</comment></comment><comment><USER7> First reaction: waaayyy too much info required to sign up. Even better: let users play around with the app, even if they haven't signed up yet.

<comment><USER3> Good point. Our team will look into implementing this

</comment></comment><comment><USER8> I would focus on trying to figure out a way to translate all of those "Happy B-Day" posts on facebook into people giving $1 towards a gift and making that process as seamless as possible. Then I'd call it something like GiftMePlease.com. That's exciting, translating all of those comments into $$$.

<comment><USER3> BasilAwad we are working on better FB and Twitter integration but focusing on those happy b-day post is a great suggestion</comment></comment>


A Sokal-style hoax on gender studies - <AUTHOR> http://www.skeptic.com/reading_room/conceptual-penis-social-contruct-sokal-style-hoax-on-gender-studies/ <comment><USER2> They published it in "Cogent Social Sciences" which is publishing everything if you pay them enough money. They have been hoaxed themselves.

<comment><AUTHOR> "...it's held out as a high-quality open-access journal by the Directory of Open Access Journals (DOAJ), which is intended to be a reliable list of such journals."

I think that is one of the main points they wanted to stress.</comment></comment>


Wildfirechat, yet another cross platform and open source IM solution - <AUTHOR> https://github.com/wildfirechat <comment><AUTHOR> Now, the docs are Chinese, but i18n is on going.</comment>


OVH.com plans an ecological data center with 360.000 servers in Quebec - <AUTHOR> http://www.newswire.ca/en/story/911395/ovh-com-lays-the-first-brick-of-its-future-north-american-data-centre-in-beauharnois

<comment><AUTHOR> I consider this noteworthy as OVH is a hosting service largely used here in Europe, but this time the service will provide closer servers for north- american users.</comment>


Good morning hackers, seeking criticism - <AUTHOR>

http://kleevr.blogspot.com/2008/04/screaming-tangent.html<p>Please rip it all to hell if you've got 5 minutes to burn.  I'm young, overly ambitious, and (I hope) prepared for a taste of real criticism from those whom I hope with time to consider me a peer. <comment><USER2> What am I supposed to criticize? Your post reminds me of a time a guy asked me to do a code review of his java hello world program. I couldn't tell if he was f'ing with me, or if he was really seriously that much of a n00b.

</comment><comment><USER3> I see words but they don't parse into anything I can understand.

</comment><comment><AUTHOR> (clickable) <http://kleevr.blogspot.com/2008/04/screaming-tangent.html></comment>


Flappy bird game implemented in Super Mario World - <AUTHOR> https://www.twitch.tv/sethbling/v/57007807 <comment><AUTHOR> Seth Bling implements a small game on a real console version of Super Mario World by moving the character in certain patterns. Explanation starts at 0:26:20 and flappy bird game play at 1:26:00

</comment><comment><USER3> Can someone provide some context here? I did watch the explanation but not really sure what it's about since i'm not familiar with console games

<comment><USER4> Imagine being able to execute arbitrary code just by dragging particular windows and files around to special areas in a desktop operating system - <USER2> typing.</comment></comment>


No more JavaScript - <AUTHOR> http://www.nomorejavascript.com

<comment><USER2> This parody is way too subtle for "the internet" to grasp. But it's gonna be a wild ride.

And if it's not parody, that's also awesome. For different reasons.

<comment><USER3> Agreed. Found this on my Twitter feed today. Arguments have been hilarious</comment></comment>


Show HN: Memorific, SRS for Software Developers - <AUTHOR>

Howdy Hacker News,
Over a year ago I was inspired after reading Derek Sivers post on using Spaced Repetition to improve programming skills so I set out to do likewise.
I couldn't find anything that enabled my criteria, so I built it, http://www.Memorific.com is:
1) the usual flashcard stuff with all sorts of question types
2) mobile web experience so I could use it anywhere but offline
3) an ability to easily collaborate on decks, not the usual import/export, but "build together"
4) code highlighting, github-flavored markdown, etc
It's been in beta for many months and we've got the core of our MVP locked in.  Hopefully y'all will find it useful too.
Cheers,
Zack <comment><USER2> "mobile web experience so I could use it anywhere but offline"

Anki has mobile and web versions as well as the desktop client.

It sounds like the ability to collaborate on decks would be a huge plus. Anki has shared decks but it is uploaded by one person with no way to feed changes back to the original maintainer.

Another example is the site kanji.koohii.com was made just so users could share hints on remembering kanji, with an SRS built into the site. It allows people to look at different options and the user can use someone else's hint or they can create their own (but they can't create their own deck). So even though the collaboration is limited there, it's really useful.

Code highlighting - looks like there are anki plugins for that.</comment>


Things I've Learned Doing Internships - <AUTHOR> http://thume.ca/2017/04/06/learning-through-job-diversity/ <comment><USER2> Very positive story! That on itself already makes it fun to work with you as well. Don't underestimate that "how much you get out of an internship" depends on your own attitude as well. If it's a pleasure to have you in the team, it's gonna be much easier to get feedback, be trained, get responsibilities, etc.!</comment>


What? You Don't Spend Most of Your Work Time Coding? - <AUTHOR> http://architects.dzone.com/articles/what-you-dont-spend-most-your

<comment><USER2> This is accurate at big companies, but I think too much time doing other work and too little time doing core technical work is a sign of immature leadership. Joel Spolsky wrote in one of his blogs that a manager's job is to move obstacles out of the way so that employees can get stuff done. I think generally the longer you can keep your developers coding, the better off you will be.

</comment><comment><USER3> Matches my experience. Unless you're working on cutting edge stuff chances are they you aren't writing anything _that_ complicated - and that the tricky bit of your job is understanding the requirements, not working out what combination of if statements/objects/functions is most useful for writing something that fulfils them.</comment>


Has the Recession Doomed Cleantech Startups? - <AUTHOR> http://earthandindustry.com/2012/01/has-the-recession-doomed-cleantech-startups/

<comment><USER2> I hope not. Investing in clean tech is one thing that could put us on a path OUT of the recession...</comment>


What about health insurance? - <AUTHOR>

<comment><USER2> This was asked a while back, and had some interesting responses, so here's a link to the last discussion: <http://news.ycombinator.com/comments?id=8676>

</comment><comment><USER3> I've got Unicare's cheapest plan and pay about $80/month. It'll cover anything terrible, and otherwise I'm an active healthy vegetarian non-smoking 30-something male. Women pay more in this age range, but not a huge amount more.

If you can't handle paying $30 co-pay for doctors visits, and similar on prescriptions, and having no dental or vision, then you're probably not quite ready to dive into business--unless you raise money. You do need health insurance. A single illness can wipe out your company in very short order--and not just because you're not on the job while recovering. The corporate veil is thin very early on, and if you've got corporate money in the bank, your debtors will want it.

<comment><USER4> Seconded. In the past year I've wound up visiting the hospital twice for things that were, in the words of my doctor, "total random flukes" -- not lifestyle related, could have happened to anyone. Fortunately, they were fairly easy to fix. Total cost, $75 per visit. If I had had no health insurance and went to the hospital anyway, I'd have been looking at a five figure bill, and probably bankruptcy, for either of them; if I had no health insurance and did not go to the hospital for either, I'd probably be dead now. Or the ambulance would have taken me to the hospital, and I'd be that much more in debt.

You need health insurance. Bad things happen. Flukes happen. It's not about having the balls to face the risk of no health insurance and stare it in the face; it's about careful planning - the same kind of planning that means you incorporate instead of trusting the chance that nobody will sue you.

</comment></comment><comment><USER5> Can be very state dependent.

If you're non-smoking 22, you should be able to get catastrophic coverage ($5,000+ deductible) starting around $80/month (but more like $110 if you want it from a company you've heard of)

Vermont on the other hand, $5,000 deductible HSA's are $191, so it definitely depends.

None of these plans will have much (any) in the way of preventative care, etc. And a broken arm will come right out of your pocket for a couple k. You're max should be 5k if you get something terrible.

For a full featured plan I'd budget $400+. When I quit, my CORBA rate was going to be $542/month. (That's what my employer was paying for me)

</comment><comment><USER6> Here's a thought: In most Western countries health is supplied for "free" by the government (which deducts a premium from people's taxes). Such a person has no option to temporarily stop paying for health services, but an American can take that gamble. I wonder if this option amounts to another slight advantage that American startups can have over other Western countries? Namely the option to increase your wages slightly for a while in exchange for a reduced health service.

<comment><USER4> What the lack of socialized health care in the United States means is that instead of the government paying a little bit for preventative and maintenance care, the government pays a lot as elderly and poor people who have lived a life with no preventative or maintenance care need expensive prescriptions and expensive treatments.

This might be a slight advantage in the short run for those whose startups are successful.

<comment><USER6> "What the lack of socialized health care in the United States means is that instead of the government paying a little bit for preventative and maintenance care, the government pays a lot as elderly and poor people who have lived a life with no preventative or maintenance care need expensive prescriptions and expensive treatments."

What preventative and maintenance care exactly? I've lived in countries with (mostly) socialized health care all my life and I'm not noticing any government run preventative and maintenance care really.

Did you make the above up or do you have some links to it?

<comment><USER4> I'm talking about the ability to go to the doctor routinely, to get things like vaccinations and annual checkups. The government doesn't _make_ you do sensible things elsewhere, but the cost of doing sensible things if you're in the US and don't have health insurance is prohibitive.

To take an example from dentistry: getting a biennial checkup, finding an early-stage developing cavity, and getting it fixed will most likely cost you under $200. Not getting the checkup and waiting until the tooth is abscessed and requires extraction, a root canal, or oral surgery can cost you $2000 or more. But if you don't have the $50 for the initial checkup, what are you supposed to do?

</comment></comment></comment></comment><comment><USER6> As a technology startup why would I want "heath" insurance? I'm not likely to need extensive tracts of uncultivated open land covered with herbage and low shrubs.

[http://www.answers.com/heath&r;=67](http://www.answers.com/heath&r=67)

</comment><comment><AUTHOR> Soon I will be out of school and won't be able to get health insurance from sources like parents or school. Does anyone have a suggestions for how they got health insurance, or what is a good method for finding a good provider? Also, how much did it cost?

</comment><comment><USER7> In Calfornia at least, HealthNet is less expensive than some others. Assuming you rarely go in, get a PPO, and you won't go bankrupt if you ever have large medical bills. For little things you pay out of pocket.

</comment><comment><USER8> Check out www.ehealthinsurance.com

I bought mine there.

</comment><comment><USER9> Do folks build this into their business plans?

</comment><comment><USER10> First of all, you're 23+ and ante-ing up in the big game so stop f-cking around. This means no fights, no drinking & driving and quit doing the stupid shit that impressed girls when you were 15.

This will seriously reduce your need for insurance.

If you don't have the stones to live with bad insurance (unless you have serious prescription needs) you probably can't handle the risk associated with starting a company anyway.

There are cheap policies that keep my parents from flipping out. I pay $37 a month through anthem.

<comment><USER6> What geeks fight/drink to impress girls?

<comment><USER10> I'd say that between the ages of 18-23 your chances of doing something stupid (fighting, drinking) and needing to file a claim should be much greater than your chances of filing a claim for legitimate and unavoidable reasons (tuberculosis).

If you eliminate the stupid reasons, do you really need to worry about insurance?</comment></comment></comment>


Mars likely to have enough oxygen to support life: study - <AUTHOR> https://phys.org/news/2018-10-mars-oxygen-life.html <comment><USER2> AFAIK, the ability to tolerate oxygen is an advanced property of terrestrial life — the simplest, oldest life forms were totally unable to survive in the presence of oxygen.

<comment><USER3> The Great Oxygenation Event [0]. Arguably the planet's first mass extinction.

To say that nothing we have done to the planet is as bad for the environment as the Great Oxygenation Event would be to pat ourselves on the back for not literally poisoning the atmosphere.

[0] [https://en.wikipedia.org/wiki/Great_Oxygenation_Event](https://en.wikipedia.org/wiki/Great_Oxygenation_Event)

<comment><USER4> Geologist here. Yeah, there are a few places you can find microbial survivors of the GOE:

[https://en.wikipedia.org/wiki/Green_sulfur_bacteria](https://en.wikipedia.org/wiki/Green_sulfur_bacteria)

[https://en.wikipedia.org/wiki/Purple_sulfur_bacteria](https://en.wikipedia.org/wiki/Purple_sulfur_bacteria)

Obligate anaerobic photoautotrophs: they photosynthesize, and need light to survive, but don't produce (and are killed by) O2. Unfortunately for them, post-GOE, there aren't many habitats that are anoxic but still have much light!

There's at least one clade of "green sulfur bacteria" that apparently lives off the basically-invisible glow from a black smoker at a mid-ocean ridge: [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1166624/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1166624/)

fascinating stuff!

<comment><USER5> PBS Eons is a great youtube channel on Earth's biological history. It's very well done stuff. Their 'Purple Earth' video is a good layman's intro to some of the per-oxygenation earth: [https://www.youtube.com/watch?v=IIA- k_bBcL0](https://www.youtube.com/watch?v=IIA-k_bBcL0)

The early biological history of Earth has a few 'Colored Earth' phases: Red- Purple-Green-White-Blue(hypothetically).

</comment></comment></comment></comment><comment><USER6> Mightn't this indicate that life on Mars is _less_ , not more, likely than we thought? Respiration is complicated, so I would expect any life that might have existed on Mars to be anaerobic. If there's actually enough oxygen to support aerobic life, that doesn't bode well for any anaerobic life, does it?

<comment><USER4> Geologist here. I would tend to agree, considering that present-day oxidizing conditions on mars are generally thought to be due to photolysis and hydrogen loss, not life/photosynthesis, e.g.: [https://www.liebertpub.com/doi/abs/10.1089/ast.2013.0999](https://www.liebertpub.com/doi/abs/10.1089/ast.2013.0999) [https://www.sciencedirect.com/science/article/pii/S001910350...](https://www.sciencedirect.com/science/article/pii/S0019103503001702)

Heck, Mars is so oxidized it has soils that are 0.5% perchorate: [https://en.wikipedia.org/wiki/Perchlorate#On_Mars](https://en.wikipedia.org/wiki/Perchlorate#On_Mars) and that stuff's so oxidizing it's not even common on Earth outside of fireworks and rocket propellants

<comment><USER7> What are the current thoughts on what caused oceans on Mars to disappear (with some remainder concentrating in ice caps)? Was it some impact of a really big meteor/comet? It is accepted that Mars used to have liquid water oceans and rivers in the past, correct? You can see geological remains of rivers and oceans, for example, quite clearly on Mars.

<comment><USER8> Mars gravitiy is not strong enough causing it to very slowly lose gases to the solar wind. Water vapor included.

<comment><USER7> So how can we Terraform Mars to make it like Earth then? It seems impossible due to the gravity being so small. Even if we melt ice caps and get liquid water running again, it will slowly evaporate to space? How could a colony on Mars then be self sustaining with this problem?

<comment><USER9> As the other reply mentioned, this is a millions of years sort of problem. But there are two straightforward solutions. First, in the new atmosphere make sure there's enough oxygen to breath so that an ozone layer forms. That's something we want to do anyways. Also, give Mars a magnetic field. That's a stupendously large but straightforward engineering problem, sort of like terraforming is in the first place but smaller.

</comment></comment></comment></comment></comment></comment><comment><USER10> I never understood why colonizing Mars is needed.

Even if a meteorite hits Earth or Yellowstone erupts, Earth would be more "hospitable" to life than any other planet in our solar system because Earth has a lot of resources that are right under our noses: breathable atmosphere, radiation shielding, easily mined metals and organic matter.

It's much easier to build and maintain a bio-dome in the Sahara desert, Arctic region, Cheyenne mountains or underwater than on Mars.

Earth at it's worst is much better than anywhere else in our solar system.

<comment><USER11> >I never understood why colonizing Mars is needed.

Personally I see quite a few positive things behind colonising Mars.

I think it's not about having a "backup", it's not about resources (or in a really long time) it's about the challenge.

If we can put our best engineers to solve how we re-use and recycle water, how we grow crops in extreme condition, how to control the O2 CO2 cycle (at a larger scale than on the space station), how to engineer a space craft that survive such harsh conditions we will end up with:

\- technology to help our crops on earth

\- technology to help with our water crisis

\- technology to build sturdier structures

\- international collaboration, that usually keep engineers from working on mass weaponry (The USA/Russian space program is actually motivated by exactly that: keeping the rocket scientists busy instead of working on ICBMs)

Mars just happen to be a goal silly enough that we'll get interesting discoveries and advances that I can't even foresee.

Another way to keep engineers busy and force international collaboration is to have a common threat. For that I believe the asteroid threat is both a real enough threat and a good subject to work collaboratively.

<comment><USER12> It's kind of like learning how to program when you don't have any task to complete. Especially for a data store of some kind. If you've ever tried to learn SQL, even if you've got an example database, you'll find it's incredibly difficult not because the syntax is all that difficult or the logic is particularly daunting. No, you'll find it's difficult because _you don 't have any questions to answer_. You'll feel, "Okay, now what?" When you try to make up a question to answer, it's difficult to tell if you're answering the question correctly. You need the focus that a real problem gives you. You need the guidance that understanding what the data means gives you (or someone else) to know if your answer is right or wrong.

It's easy to see what a tool is designed to do. It's very difficult to see what a tool can be used for and why you might want to use it that way, let alone when you might want to deviate from that or find alternatives due to limitations or new requirements. Or when you might need entirely different tools.

We learn best when we're working on a problem. Just like going to the moon required solving a lot of problems which led to major advancements in the 20th century, going to Mars, colonizing Mars, and colonizing the moon have even more challenges.

Goals give research and development a clear purpose beyond, "I dunno, make something people want that we can sell."

<comment><USER13> I'm saving this answer. Love it.

</comment></comment></comment></comment><comment><USER14> Setting a moon base would teach us things quite a lot faster than going to Mars because of the distance and close proximity to earth. The moon is different than Mars, i know, but Mars would come up next after this. I think space travel would be much easier if started from a moon base due to the low gravity. A disaster on Mars would delay this project by a few centuries. Let's make small firm steps.

</comment><comment><USER15> But it may not have enough carbon dioxide:

[http://lasp.colorado.edu/home/maven/files/2018/08/Inventory-...](http://lasp.colorado.edu/home/maven/files/2018/08/Inventory- of-CO2-available-for-terraforming-Mars.pdf)

<comment><USER16> there are other, significantly more effective, greenhouse gases.

<comment><USER17> I thought the absence of a magnetosphere would mean that any atmosphere would be stripped away by solar radiation anyway?

<comment><USER8> Over millions of years.

</comment></comment></comment></comment><comment><USER18> Things I know about Mars:

>No oceans

>No plants

>No phytoplankton

>Massive planetwide dust storms lasting several months

>Average surface temperatures at or below freezing

>Space suit required

Things I know about Earth:

>Drinking water falls from the sky

>Food grows on trees

>Breathable atmosphere

>Clothing optional in most areas

>I can feel actual sunlight on my face every day

<comment><USER19> Things I know about Mars:

No established legal or social framework.

Things I know about Earth:

Probability of finding a place to be left alone with a small group of like minded people. 0

A certain type of person is interested in living a life where they have a large amount of control over the political and social systems they live with. The American frontier was an ideal place for such people to move to. Many took advantage of the opportunity. This frontier is now closed.

Off Earth is the only viable place for similar frontier to exist and Mars is the best place. It has a ~24hr day, decent gravity(0.38g), Ok solar radiation, H,C,O,N readily available on the surface, and possible terraforming to a open- air livable planet.

<comment><USER20> The upper atmosphere of Venus is actually the closest to Earth conditions we have in the solar system.

Just float around in an airtight habitat. Gravity is the same as on Earth, pressure is the same, temperature is 25C. You literally only need to be airtight to keep the noxious atmosphere at bay.

<comment><USER21> But where do you get additional resources?

<comment><USER22> By closed-system agriculture and farming and so on.

Why, where would you get them on Mars?

<comment><USER7> It's easier and much more efficient to get resources such as raw materials and metals from the ground. Being in the air without option of landing means you are completely dependent on import of raw materials to repair/expand your habitat. Very inefficient as well as not economical.

It might be cheaper to get to Venus than to Mars but on Mars you can actually start mining and building factories on the ground. At some point, it becomes much cheaper and more economical. It's just the initial hurdle of getting there with enough stuff and people to start a colony which can self sustain itself and grow.

Once you have brought enough initial stuff to Mars, you get to a point where you can start extracting materials from the ground and free up all the cargo in the ships for just people and perhaps some special items you still cannot manufacture on Mars. But majority of cargo space is freed up.

<comment><USER22> > _It 's easier and much more efficient to get resources such as raw materials > and metals from the ground. Being in the air without option of landing means > you are completely dependent on import of raw materials to repair/expand > your habitat. Very inefficient as well as not economical._

Assuming you overcome all the other difficulties and have a colony on Venus' skies, what prevents you from having ships that can go to the ground, get stuff, and come back?

<comment><USER7> It was my understanding that the surface of Venus is infernal, with super high temperature (hotter than Mercury which is closer to sun), rains of sulphuric acid and very high density. Building machines capable of landing there and being able to return seems like a tall order.

Since for humans it is inconceivable to go down to Venus ground (they'd die immediately from the heat), mining materials and then lifting again and returning back to the habitat in the upper atmosphere, then you'd need to automate the whole process.

The automated machine would have to be incredibly durable to survive the hellish ground environment and be able to fly away again. Also drones that would do the mining work would need to be made from incredibly strong materials. There's a reason we only send suicide probes to Venus that live maybe for couple hours before dying.

Also for humans, cold temperature is easier to survive compared to very high temperature. We can generate heating for astronauts (batteries in space suites can generate heat, we can recharge batteries from solar panels brought by the mothership or on previous automated mission, or from RTG). I'm not sure how would a cooling system for astronauts to be able to survive in 700 degrees Celsius for longer than few minutes even work.

<comment><USER23> High temperature and strong winds on surface can be beneficial to machinery. You can fight with them or you can use their help to reach goal. IMHO, an AI system and physical simulator can develop some pretty interesting ideas how to use these conditions for efficient mining and transportation.

First idea: use wind to power instruments directly via mechanical or pneumatic link.

Second idea: use silicon to produce machinery and tools.

Third idea: high temperature means it's much easier to melt ores, some metal can be collected directly in liquid form.

Fourth idea: air balloons should be very inexpensive way of transport ores to top of atmosphere, where they can be picked up by colonists.

Fifth idea: use mechanical computers to control equipment. It's not so hard to create surfaces which will perform calculations required to navigation, landing, mining, and floating back to surface. Mechanical computers can be crawled out of silicon, with liquid metal for transportation of messages, and vibration can be used to power such computer. 100kHz vibration is easy to reach. At 100kHz, it will be equal to 1kHz electronic computer.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER24> Can anybody explain: the article mentions 0.14% of oxygen in a low pressure atmosphere to be insufficient for aerobic life. Where does the higher oxygen concentration (mole/m3) in subsurface brine come from? Obviously it is not in equilibrium with the atmospheric concentration. Is it non-equilibrium due to historic circumstances? Is it an equilibrium with surrounding rocks? Do rocks outgas oxygen?

</comment><comment><USER25> The only reason the Earth has enough oxygen to "support life" is because life produced it as a waste product. [https://en.wikipedia.org/wiki/Great_Oxygenation_Event](https://en.wikipedia.org/wiki/Great_Oxygenation_Event)

</comment><comment><USER26> Oxygen yes, magnetic field no. Without magnetic field you can't really live on a planet.

</comment><comment><USER27> [https://en.wikipedia.org/wiki/Future_of_Earth](https://en.wikipedia.org/wiki/Future_of_Earth)

</comment><comment><USER28> the main problems of mars are not oxygen but the missing magnetosphere and associated high levels of radiation

</comment><comment><USER29> Nobody tell this to Cohagen</comment>


Ex-chair of FCC broadband committee gets five years in prison for fraud - <AUTHOR> https://arstechnica.com/tech-policy/2019/06/ajit-pais-ex-advisor-gets-five-years-in-prison-for-lying-to-investors/ <comment><USER2> Wow, pretty blatant stuff here. Forged signatures! But some of this could have been prevented. For instance, one of the defrauded equity investors was apparently promised a guaranteed 8% annual return, and was asked to wire money in advance of deal documentation [0]... both of which should have immediately been red flags.

Raw press release here. [1]

[0] Jensen complaint: [https://s3.amazonaws.com/arc-wordpress-client- uploads/adn/wp...](https://s3.amazonaws.com/arc-wordpress-client- uploads/adn/wp-content/uploads/2018/04/27081106/03.0-Amended- Complaint-11-22-17.pdf)

[1] [https://www.justice.gov/usao-sdny/pr/former-ceo-alaska- based...](https://www.justice.gov/usao-sdny/pr/former-ceo-alaska-based-fiber- optic-cable-company-sentenced-5-years-prison-defrauding)

<comment><USER3> This certainly begs the question as to whether she sought out the FCC position in hopes of directing Federal money towards projects like hers. It seems like she was desperate to cover up her fraud for 2 years, and especially around the time she took her post in the FCC.

<comment><USER4> [https://english.stackexchange.com/questions/16137/begs- the-q...](https://english.stackexchange.com/questions/16137/begs-the-question- or-raises-the-question#16138)

<comment><USER5> We lost. You'll feel better if you give up, too.

<comment><USER4> Oh I'm not trying to feel better, I'm trying to help people understand why they say the things they say. And a lot of people don't know about rhetoric.

<comment><USER5> I don't think what you linked has anything to do with _why_. The why is straight-forward: what the phrase means in formal logic is not intuitive, and how people use the phrase colloquially is intuitive.

</comment></comment></comment></comment></comment></comment><comment><USER6> I wonder how many years Ajit Pai will get when it's his turn?

<comment><USER7> I always find its best not to defame someone, no matter how much you might dislike them or their policies, unless you have a specific fact you want to cite?

<comment><USER6> How about his willful undermining of the integrity of the public comment process for the Net Neutrality regulations for starters?

He got his way aside by refusing to investigate the tens of thousands of fake comments supporting the repeal of Net Neutrality regulations.

<comment><USER8> Considering that the comments are completely useless for anything except to let the commissioner know what the public opinion is on a topic, it's not like he actually changed any outcomes by not investigating. The comments aren't votes.

<comment><USER9> Russian election meddling was mainly fake comments/posts on FB, Twitter, etc. Similarly to Pai, the current administration refuses to investigate those fake comments too. Looks like a trend :)

</comment></comment></comment></comment></comment><comment><USER10> Astounds me how anti-human organizations such as ALEC are granted such influence by Republican and Democrat alike in the USA. The fraud on the other hand, doesn't surprise me. Despite their power, these regulatory institutions seem more captured by vested interests and partisan politics than the public good they should be providing.

<comment><USER11> ALEC is a conservative organization with 98% Republican membership.

<comment><USER12> That seems like a contradiction. I cannot think of any conservative policies advanced lately by the Republican leadership.

<comment><USER13> No, it's not. Conservative corporate policies desire restoration of a regressive, apartheid theocracy... think Clarence Thomas and Scalia.

<comment><USER12> That is hardly a conservative goal; it is radically reactionary. Actually conservative policies would resist change, not seek it out.</comment></comment></comment></comment></comment>