Sealed Rust: A plan to bring Rust to safety critical software domains - <AUTHOR> https://ferrous-systems.com/blog/sealed-rust-the-pitch/ <comment><USER2> I've got a partially-complete blog post about what "MISRA Rust" would look like (based on MISRA C rules). A surprisingly small amount is relevant. That's a far smaller undertaking, but I found it to be encouraging. There are entire classes of considerations you can dispense with entirely due to how the Rust language works. That gives me hope that this work would be smaller in scope than trying to do many other languages.

<comment><USER3> Have you thought about also looking at the guidelines for MISRA C++? The AUTOSAR ones[1] are fairly recent and might be a bit closer to Rust.

[1] [https://www.autosar.org/fileadmin/user_upload/standards/adap...](https://www.autosar.org/fileadmin/user_upload/standards/adaptive/17-03/AUTOSAR_RS_CPP14Guidelines.pdf)

<comment><USER4> Thanks for providing them, I wasn't aware that AUTOSAR was freely available.

</comment></comment></comment><comment><USER5> This is fantastic and I think it aligns perfectly with many of the goals of the language, at least so far as I perceive them. As the blog post says, it's going to be a long, hard road to reach Sealed Rust. But I, for one, believe it's worth it. I hope Ferrous Systems sticks with it.

Also, please let the community know how we can help. Whether that involves writing code, unit tests, or financial contributions with a Patreon-like system. I really want to see this become a reality and a first class citizen of the Rust ecosystem.

</comment><comment><USER6> Interesting. We would love to use Rust instead of legacy aerospace programming languages for our project.

<comment><AUTHOR> Hey, James from Ferrous here, we'd love to chat if you're interested in this now, or a couple projects from now!

Feel free to reach out at sealed-rust at ferrous-systems.com!

</comment></comment><comment><USER7> > Regarding point 2, we do expect to require feedback and assistance from > teams within the Rust project, particularly with regards to what parts of > the language to formalize, and the most practical methods to achieve this.

It seems like some Rust developers are particular about the governance of the language and overall ecosystem [1]. This strict subsetting seems like it could be a good opportunity to engage the team. Has that already happened? If not, maybe it would be good to create an RFC and/or working group, even if the effort happens independent from the core rustlang dev. If there's some explicit endorsement, it could include guidance and an easier way to upstream changes.

> Who is this effort aimed towards?

I wonder if "cryptography" is a domain that applies here? Things like enclaves/signed bootloaders are things where mistakes can be very costly.

[1] [https://www.rust-lang.org/governance](https://www.rust- lang.org/governance)

<comment><USER8> One of the founders of Ferrous Systems is a Rust Core Team Observer and member of the Governance WG and one of the other founders is a member of the Embedded WG, so I think they are very aware of Rust governance processes.

</comment></comment><comment><USER9> Wow! I'm really impressed. One thing that might help is to require formal verification of code marked as "unsafe" to ensure memory safety (or simply to replace unsafe code in the standard library with safe-but-slower code, e.g. by having a version of the standard library where the get_unchecked() method actually _does_ perform bounds checks).

<comment><USER10> Unsafe code is a really hot subject in the Rust project already and there's tons of research work around that done by Ralf: [https://www.ralfj.de/blog/categories/research.html](https://www.ralfj.de/blog/categories/research.html).

He's also building Rust tooling for finding bugs in this space, see for example miri.

[https://play.rust- lang.org/?version=stable&mode=debug&editio...](https://play.rust- lang.org/?version=stable&mode=debug&edition=2015&gist=d15868687f79072688a0d0dd1e053721)

(click "Tools" -> "Miri")

This will figure out that you do produce an illegal borrow in that unsafe code.

</comment></comment><comment><USER11> > Funding > We expect this to be a significant undertaking (likely many full > time developer-years of effort), and as such, it is something that will > require paid effort to make real.

It is an ambitious undertaking, but strikes me more like a way to try to make more money off of Rust.

It is definitely a moonshot since Ada has a 35-year lead here since it has been used for critical systems since the 1980s. Ada 2020 will be out soon and pulls in several of the innovative ideas that Rust pioneered.

I am not saying that it is not possible, I am just skeptical of the reasons for trying to push Rust in the critical systems direction so suddenly.

<comment><USER12> The main thing going for it is that it's not Ada. Most C and C++ developers don't want to use Ada. Some of them are adopting Rust. It also has a strong community and ecosystem. That was its key advantage. Finally, it has temporal safety that Ada doesn't with its borrow checker.

What Ada has on it are its IDE's, MDD, and testing tools that industry is currently using. With stuff like RV-Match and Astree Analyzer, MISRA-C is probably safer than Rust. Rust needs more tooling to be competitive.

<comment><USER13> Normal rust without warnings to me is much safer than most Misra C compliant code. Misra C is an attempt to avoid 80% of C's undefined behavior and other pitfalls, but those 20% that are left are still worse than most of what can go wrong in rust.

The tooling that is needed is mostly productivity tooling, like better code completion (rust analyzer is now pretty promising after RLS kind of stagnated). And maybe better ways to show code coverage.

The problem for usage in safety critical areas is mostly certification and having a stable spec for the language.

<comment><USER12> Remember there's tools that can prove absence of or detect many classes of error in C with no runtime checks. RV-Match and Astree Analyzer come to mind. Plus all kinds of test generators and a verified compiler. Plus lots of open tooling to do same thing. Safety-critical vendors buy that kind of stuff more than most C shops. C subset with such tooling is safer and more correct than Rust.

The advantage of Ada and Rust is they're cheaper and faster to get safe code out of. Businesses will like that. I don't know how compiler qualification plays out these days.

<comment><USER13> I'll repeat this from another comment. There are a few things a coding standard like Misra can't do for you.

Lacking a strict type system, discriminated unions, if-expressions (they exist in C but are often discouraged because of readability concerns), match expressions, macros that are AST members, procedural macros, guaranteed mutability restrictions with the borrow checker, etc. are things that a coding rule and analyzer can't bring into a language like C. Most importantly no module system to keep yourself somewhat isolated from third party code that you have no control over.

Add to that that you have humans checking each violation whether they think it will cause problems. Humans fixing these. And in a lot of cases humans not fixing these. Then you're actually still left with a lot of code that a stricter compiler like Rust or Ada would have rejected in the first place.

<comment><USER4> True, but many companies still try the shortcut of MISRA plus cheaper C devs, than paying for Ada compilers plus more skilled developers.

</comment></comment></comment></comment></comment></comment><comment><USER14> sounds good</comment>


Signs of a Programmer Created UI - <AUTHOR> http://www.voyce.com/index.php/2009/09/14/the-7-signs-your-ui-was-created-by-a-programmer/

<comment><USER2> By "programmer", he apparently means "novice Windows programmer". I'm slightly offended.

<comment><USER3> I agree he's got the wrong words, I think he is a programmer, but the author is probably writing this from first hand experience. I think he is saying if you're getting a developer to develop a UI for you, you better make sure they're able to design, even a little.

It would be foolish to think all programmers cannot design.

<comment><USER4> "I think he is a programmer, but the author is probably writing this from first hand experience."

Yes, he is a programmer:

<http://www.voyce.com/index.php/about-2/>

Yes, he is speaking from experience:

"I've been responsible for doing at least one of these things myself over the years. Consider this post repentance for my user interface sins."

Anyway, the whole post misses the point. Choosing the exact wording of dialog boxes and creating icons are not the responsibilities of programmers working on large projects. If programmers have to take on these tasks, the either the company doesn't have a clue, or they can't afford to hire UI experts, graphic desginers, etc.

I can imagine that there would be some UI mistakes a programmer would make which a non-technical person wouldn't, but I don't think this applies to any of the items in his list.

</comment></comment></comment><comment><AUTHOR> Personally, I took the article as a warning against the common pitfalls of basic UI design. I felt that it covered several ui issues that are very prevalent in programs today (the excessive use of dialog boxes really hit it home for me) and that the author was simply pointing these issues out and giving a designer's perspective on them to help programmers avoid them. Not all of us (programmers) get guidance in UI design so I definitely see where he is coming from.

</comment><comment><USER5> For a more thorough treatment of this topic, read Alan Cooper's classic book _The Inmates are Running the Asylum_ [http://www.amazon.com/Inmates-Are- Running-Asylum-Products/dp...](http://www.amazon.com/Inmates-Are-Running- Asylum-Products/dp/0672326140)

Cooper first writes something we all like to hear: programmers actually control the fate of most high tech businesses. But then he makes a compelling argument that we're really horrible at what we do.

The ideas in this book are difficult to swallow, but once I got past my own ego I learned a lot from it. Not every programmer is a design idiot, but most of us are. Good design requires study and training. Intuition alone only gets you halfway there (unless you're Steve Jobs, and he's not a developer).

<comment><USER6> The ideas don't sound very difficult to swallow.

Ted Nelson talked about being trapped by the programmers retarded ideas for systems back in the 70s/80s. He said that the system designers didn't give enough thought to the user interface and instead forced users to comply with some rigid inconvenient standard all the while saying, "This is how the computer wants your data entered".

Also...Steve Jobs is a pleb when it comes to good design.

</comment></comment><comment><USER7> This might be more of a comment on the state of available tools, than the habits of programmers.

While some programmers will have the passion to make great UIs no matter how difficult or tedious the code becomes, a lot will simply find the first thing that gives them the results they need. (In fact, even when their end goal is to make something nice, they may still start with something ugly to make sure that everything else is working.)

There's really only two ways to solve that: give them more time to ship and make "great UI" a clear deliverable (that they're paid for), _or_ give them better tools and expect correspondingly-better results in the time originally allotted.

Assuming your company isn't producing just one product, it's usually wiser to invest in the programming tools. That way, you pay most of the cost once, during development and perfection of the tools, instead of having every single product pay a penalty as programmers and QA have to correct cosmetic and behavioral imperfections in the UI in 1000 places.

Take Interface Builder and Cocoa on Mac OS X. The design of the layout tool, combined with the unapologetic adherence to MVC and KVC design principles in the API, means that interfaces are _easier to do elegantly than inelegantly_. So it should come as no surprise that the resulting programs, relative to the amount of time spent, tend to be more functional and easier to use compared to equivalents on competing platforms.

</comment><comment><USER8> Do you think he's just trolling with the first comment about exclamation points?

<comment><USER9> Probably. Even more with the second comment (about double negatives).

<comment><USER10> Note to readers who might misunderstand: the above posts (parent and parent parent) are trolls. The only thing worse than dialog boxes are attention whore dialog boxes with poor writing. The user does not want to read your stupid dialog box because they should not have to read your stupid dialog box.

If you use an exclamation point, you incite the user to anger; if your message cannot be perfectly understood every time by every person with a quick skim at 30% attention, they will click a random button because they have better shit to do than read the stupid dialog box that you put there because you couldn't be bothered to come up with a sensible design.

The user has a job to do. They want to do that job. Your job is to help them do their job and make the computer disappear, not remind them that they are using yet another piece of shitty code in a shitty program on a shitty and infested piece of junk that they would destroy with a baseball bat, like that guy in Office Space, if they could do it without getting fired.

<comment><USER9> Maybe I haven't been clear enough, sorry.

The title of this post implies that if you're a programmer _automatically_ you are a poor user interface designer.

To me this is offensive to both programmers and designers.

These are just narrow-minded stereotypes, perpetuated by narrow-minded people.

<comment><USER10> The title and content of the post state that, if the UI is terrible, then it was (probably) created by a programmer. They do not say the converse, nor does the converse automatically follow (the converse being: if the UI was created by a programmer, then it is terrible).

<comment><USER9> Doesn't make much difference to me.

</comment></comment></comment></comment></comment></comment><comment><USER11> Signs of a programmer created UI:

\- hjkl are navigation keys

\- Significant amounts of configuration via plain text files.

\- Plugins. In multiple languages.

\- A scrolling log viewer screen.

\- Reports obscure metrics in the status bar.

<comment><USER12> -cli based interface.

</comment></comment><comment><USER13> He missed the case where verbs in the UI match the model of data within the program and not a normal user's mental model. Git, powerful and amazing and awesome and mind blowing and game changing as it is, is a prominent example.

</comment><comment><USER14> He missed the zeroth sign: it sucks.

But then, off-by-one is the canonical programming error.

</comment><comment><USER15> On the web, "5. Data Grids" becomes "uses tables excessively".

These tables may extend off the screen horizontally; have unnecessary grid lines or alternating shading; waste massive amounts of whitespace for varied- length cell values; and include form controls that only take effect with some submit button several scroll-pages away.</comment>


Book ban in a Canadian bus company - <AUTHOR> http://www.cbc.ca/news/canada/montreal/book-ban-defended-by-quebec-school-bus-company-1.3045729

<comment><USER2> "Our only goal is to make sure students are safe."

This is the problem.

Parents who won't let their children play unsupervised.

Police who won't let children walk home from the park.

Schools who won't let children experience rough and tumble play.

Park designers who won't let children take physical risks.

Here's the thing: human flourishing requires danger. At almost all stages of development.

<comment><USER3> I agree. The situation with "safety" is getting out of hand.

What could possibly be the danger from reading in a bus? Even if some car crashes with the bus, due to the mass of the bus, there's little chance of getting hurt, let alone the chance of getting killed from the book or something.

> Police who won't let children walk home from the park.

I suppose this is happening at the States? Can you provide some info on this? The only word to describe the above that comes to mind (at least for me) is alien. :)

<comment><USER4> [http://www.washingtonpost.com/local/education/decision-in- fr...](http://www.washingtonpost.com/local/education/decision-in-free-range- case-does-not-end-debate-about-parenting-and- safety/2015/03/02/5a919454-c04d-11e4-ad5c-3b8ce89f1b89_story.html)

You can indulge yourself on more cases here: [http://www.freerangekids.com/](http://www.freerangekids.com/)

</comment></comment></comment><comment><USER5> Yeah, that's Canada alright.

Kids on a bike with training wheels wearing a helmet, knee and elbow pads, a mouth guard with a copy of the liability insurance sticking out of the back pocket. Can't be too safe, you know.

Five flag persons "managing" traffic, causing it to back up three blocks each way, while one dude is trimming a bush on a sidewalk. That's just how we roll.

As ridiculous as this book ban is, I am not a bit surprised that it's a Canadian development (though it _is_ a bit odd that it comes from Quebec of all places).

</comment><comment><USER6> 20 Minutes is a pretty long bus ride, twice a day, to not be able to read, use your smartphone, play a video game, whatever...

I recognize the driving force here, is the attempt to eliminate risk - but, at some point, we've got to realize that there is a concept of "acceptable risk" \- and deal with the consequences.

Are kids allowed to climb trees anymore? Seriously, if riding the bus is considered a risky endeavor because kids might look at something someone else has, how do parents feel about their 8 year olds 45' up a pine tree?

</comment><comment><USER7> This is replaying a common scheme to define some rules which cover the most stupid people around and then defend these rules because they are "for the children". Labeling everything as verboten is one of the society diseases of our times.

</comment><comment><USER8> Even in an accident I hardly think holding a _book_ is going to be a major safety issue. Don't play with scissors or bricks on the bus, sure, but a book?

<comment><USER6> Nobody has an issue with a book - the policy came about because of the risk involved in other things - probably video games, etc... in which kids were jumping up to see what others were doing, resulting in injuries or hazards that occur when you have young kids jumping about a bus. There is no way for the bus driver to monitor exactly what each student actually has taken out, so they came out with a blanket rule saying, "Nothing whatsoever is allowed to be taken out of the bag."

And what choice do you have if you are a kid taking a school bus.

<comment><USER9> _Nobody has an issue with a book_

I beg your pardon, but that is patently false. From the article: _The bus driver suggested fellow students might stand up to see what she was reading or she might poke herself in the eye with the corners of the book._

Let's repeat that, shall we?

 _Poke herself in the eye with the corners of the book._

<comment><USER10> dafuq?

And I thought I was being a overprotective yesterday when my 5 year-old was digging worms out of the dirt and dropping them into the chicken run and I kept warning him to keep his fingers out of the mesh because the rooster was really mean and would bite him.

Seriously? An effing book?

</comment></comment></comment></comment><comment><USER11> If I were the child's father, I'd tell her that it's safe to ignore that "rule" and keep reading.

</comment><comment><USER12> Idiocracy</comment>


How I'd teach computer science - <AUTHOR> http://scripting.com/2016/10/17/howIdTeachComputerScience.html <comment><USER2> "Computer science is no more about computers than astronomy is about telescopes." (Edser Dijkstra)

Computer science is the study of algorithms - what is described here may be best described as software engineering. As an educator who has been involved in computer science education for almost a decade, I find the code-centric approach described here to be counterproductive.

<comment><USER3> My favorite quote around this is from SICP's preface:

Underlying our approach to this subject is our conviction that 'computer science' is not a science and that its significance has little to do with computers. The computer revolution is a revolution in the way we think and in the way we express what we think. The essence of this change is the emergence of what might best be called procedural epistemology -- the study of the structure of knowledge from an imperative point of view, as opposed to the more declarative point of view taken by classical mathematical subjects. Mathematics provides a framework for dealing precisely with notions of 'what is.' Computation provides a framework for dealing precisely with notions of 'how to.'

<comment><USER4> And the quote that made me interested in CS, from the online lectures of the same book:

"[As] opposed to other kinds of engineering, where the constraints on what you can build are the constraints of physical systems ... the constraints imposed in building large software systems are the limitations of our own minds."

</comment></comment></comment><comment><USER5> This doesn't sound like a Computer Science course. Maybe for something like a Software Engineering degree, but not for CS.

<comment><USER6> Agreed. This raises even more questions: Do we need more computer scientists or software engineers? Why do so many universities offer computer science programs, if the job market is primarily asking for software engineers? Even worse, why do so many universities offer software engineering programs that call themselves "computer science" programs? Isn't that lying to students?

<comment><USER7> The job market seems to favor Computers Science degrees over Software Engineering degrees.

Although it favors job experience over both.

<comment><USER6> Why? Because of the word "scientist" in the degree's name? What exactly is the point to employing a scientist to perform non-scientific tasks?

<comment><USER7> I think because CS degrees tend to produce more competent programmers, for some reason.

<comment><USER8> I would actually like to see a study on that. I'm not so sure its true, and it certainly has not been my experience. I do wonder if anyone is ever going to do a full study on the subject.

Weirdly, some of the best programmers I have met are people who go their degree in Music Theory. Odd and really not enough sample size.

<comment><USER9> > Weirdly, some of the best programmers I have met are people who go their > degree in Music Theory. Odd and really not enough sample size.

This is a very common experience, and I think it's a form of selection bias. If you look around at the top people in the industry, most have studied CS or closely related, highly mathematical subjects (math, physics). But the reason why so many people see "great" programmers who have studied art, music, literature or any other field is, according to my hypothesis (which may well be wrong), because they don't work in an environment where the typical bright CS student goes to work. So if you're working in a small web-dev company, you're not getting the cream of the crop from MIT, Stanford, CMU and other top universities (or even the less well known ones) -- those guys (or gals) go to work for Google, Facebook, hot startups in the valley or stay in academia. Instead, you're getting the average or below average CS students, and the brightest people who studied irrelevant subjects, who would have a hard time getting into a company like Facebook.

Again, I may be wrong, we need a much more in-depth analysis to draw any form of conclusion. Still, I think this also highly depends on what you consider a "great programmer". Many people consider a programmer to be great if he writes very clean, logical and easy to understand code. Personally, I think this is way too low of a bar, and I think being called great requires a very in-depth understanding of a subfield of programming (be it graphics -- Abrash, scalability -- Dean, languages -- Stroustroup, Sutter, Alexandrescu etc.) Maybe not as good or well known a the people I mentioned, but I wouldn't call any random programmer from a random company writing CRUD apps _great_.

<comment><USER8> Even reading your comment charitably, I am left with the thought that you consider me some country bumpkin that hasn't been exposed to high quality programmers.

I'll point out the previous conversations about selection bias of universities and the companies who hire their students. I'll also point out that people go to different places because a variety of factors, many of which are beyond our control. Few actually get to walk the straight path, and I find people who don't recognize the luck they have received are poorer in spirit for it. I think you suffer more from selection bias and a need to uplift your position than I.

"I wouldn't call any random programmer from a random company writing CRUD apps great." \- I suppose someone could say the same about those who serves up ads or writes webmail clients. I believe the world is amazingly interesting with the unique problems we face as programmers and challenges lie in the heart of many pieces of software. We are much too young a profession to think that the world is routine.

"Many people consider a programmer to be great if he writes very clean, logical and easy to understand code."

I would also say the best sprinters are fast. I guess I have a reverence for those who write in a clean, logical, easy fashion. I like elegance in all things and find it a very high complement. How else would one show in-depth understanding? The code is the expression of programming, not the spoken word or lecture. I guess I'm a simple man, and believe in people showing me.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> Spoken like someone who hasn't taught a CS class.

You _really_ want to teach some useful skills and not actually disrupt your CS class too much? Here's the start.

Lecture 1: How to drive a basic IDE (I used to choose Eclipse, but I might rethink that nowadays depending on language used. One of the IntelliJ projects might be easier.).

Most students are stunned at the difference between what they use as an editor vs what an IDE can do. Once somebody shows them what is possible, they start swimming really well.

Lecture 2: Source control and automated testing.

For most students, they view this as a homework dropbox that checks and runs their work. That's good enough to start. Some of them progress beyond this.

 _NOW_ , I can actually start to talk about the substance of my class as well as how to put that in programs.

Guess what? I have to give these lectures to _every single class_ I teach. It doesn't matter if the class is 101 or 499, _every_ _single_ _class_.

<comment><USER11> I've been pushing the head of the class I help TA for to make it mandatory that students use PyCharm. He's still afraid that PyCharm will intimidate the users but I think it's well worth it.

We have 2nd and 3rd year students at my college who still haven't opened Eclipse, IntellJ/PyCharm/Whaterver else, or even Visual Studios. They have also never used a debugger. They have no idea what formatting standards, or naming standards are. It's crazy.

<comment><USER10> > I've been pushing the head of the class I help TA for to make it mandatory > that students use PyCharm. He's still afraid that PyCharm will intimidate > the users but I think it's well worth it.

Dropping an IDE and automated testing into your class is not without cost.

10% of the questions the rest of the semester will be how to do something in the IDE. And, occasionally, you're not going to know the answer. Saying "I don't know" can be intimidating to someone who doesn't have 20+ years of experience.

As for source control and automated testing--congratulations, you are now Mr. IT-guy for 30 people for the next 14 weeks. And students can be really creative in wedging their repositories. To this day, I still have no idea how one student managed to create a recursive repository in Subversion.

You _really_ have to be committed to accept the cost of the things I recommended.

<comment><USER11> > 10% of the questions the rest of the semester will be how to do something in > the IDE. And, occasionally, you're not going to know the answer.

Most of the things they will need to do will be laid out for them before hand. I also have nothing against them asking me more questions. I'm technically paid by the question and it's better for them to ask these questions in an environment that is as conducive to learning as a classroom instead of needing to ask a boss/coworker on the first day of class.

> Saying "I don't know" can be intimidating to someone who doesn't have 20+ > years of experience.

Sometimes the answer to other things is "I don't know" but, every time I didn't know something and I have to help a student I always follow it up with "but let's dick around with this a bit and I'm sure we can get it working"

> As for source control and automated testing--congratulations, you are now > Mr. IT-guy for 30 people for the next 14 weeks. And students can be really > creative in wedging their repositories. To this day, I still have no idea > how one student managed to create a recursive repository in Subversion. You > really have to be committed to accept the cost of the things I recommended.

If a student is paying 15-30k a year and I'm making 8.50$/hr to help them I have absolutely no problem helping them. They are quite literally paying my salary. I've answered emails at 2am before an exam, met up with students on weekends before exams, and spent hours with students to help them "get it".

School should be about getting taught the material you need to succeed. It should be our goal to achieve that even if it's a little _hard_.

And again, I don't think that student is going to be making a recursive svn directory in front of their boss after you helped them out of that ditch and it's a good thing you did.

<comment><USER10> Agree with all of your points. I'm simply pointing out that all of these things take time away from my primary mission which is to teach my _material_.

I need to teach the material as it generally is a building block for what comes later. If I don't get the material across, I've done a bad job as well. If I teach Data Structures, the students need to know that when they come out of my class or they will fail the next classes. (I had to reteach Data Structures to a class that had a bad teacher once before I could teach _my_ material).

And, I applaud your dedication as a TA. People have _zero_ idea how much effort goes into actually teaching a class. As the instructor, teaching a 14-week, 2 2 hour lectures per week class is a greater than 40 hour/week job including planning, constructing projects, running the infrastructure, answering questions, office hours, and grading exams.

That is, sadly, why I don't teach much anymore. I would earn more hourly by working at McDonalds than I do if I lecture at a university. :(

</comment></comment></comment></comment></comment><comment><USER11> I often hear many many people say "what you want is Software Engineering not Computer Science" and I'd say YES that's EXACTLY what I want. The problem is finding a university that will give it to you.

In my opinion the field of Computer Science should be the study of abstractions, logic, derivation of algorithms, understanding the limits and possibilities of computer hardware, and programming (being the development of a real-world solution to a problem that can be run to process data). If it's not one of those items I don't think it belongs in Computer Science. Sadly, our field has been managed, since the beginning, by professors who think it's math field.

That's the way I'd say most hiring managers look at it: Computer Science = Programmer. The only place this isn't paralleled is academia.

So I'm perfectly fine with saying either everyone else is wrong and my definition is correct, in which case we need to seriously evaluate how Computer Science is taught in schools. Alternatively I'm wrong, in which case I'd love to attend a university that will allow me to get a bachelor's, master's, and maybe even a PhD in Software Engineering because the truth is I hate whatever it is that academia considers Computer Science but I love logic, creating solutions to problems, thinking about the limits of hardware, optimizations, and everything that goes along with it.

Sadly I cannot find any university that offers this. My university offers a SE masters degree but it requires a BS in Computer Science! How ironic!

But yea, I'm perfectly happy with either of those outcomes. The people who are, in my opinion wrong about what "Computer Science" is can stay in their corner and I'll stay in mine.

<comment><USER10> > The problem is finding a university that will give it to you.

Go find one of the multi-week intensive programming "camps" with a good reputation (do be careful--there's a lot of snake oil out there). That's what you want.

<comment><USER4> The problem is that bootcamps are 3 months of "intense" and pressured learning the most marketable language at the time and as far as I know aren't accredited like regular universities.

What I'd like to see exist is a 1~ year program at a real college (can be community college!) that is basically a more comprehensive and relaxed[1] version of a bootcamp.

[1] I don't mean this to sound "easy", just not 8-10~ a day of work like bootcamps are.

<comment><USER11> I'll go a step further. Right now I've created The Perfect Semester for myself.

Right now I am taking:

       - CS280: C++/Interpretations & Composition of Programming Languages
       - CS288: C/Whatever random crap the professor came up with
       - CS252: ARM EABI Assembly/Computer Architecture
       - CS332: Operating Systems
       - IS350: An Ethics Course

I'd love a college that will let me do something like this. Create a schedule for 4 years (like a normal degree) that will provide me with, you guessed it, a degree in "Software Engineering" where I learn about, you guessed it, Software.

I want to learn every popular language's ins and outs. This includes, but is not limited to C, C++, Ada, Lisp, Java, C#, Python, x86/x64/arm/MIPS assembly. I'd like to be _taught_ , not lectured to, I want to actually _learn_ from my professors. I want to learn about software abstraction, organization, revision, and project management. I'd like to be able to learn about ever piece of software running on a system and be taught how to implement them. I'd like to learn how to use every single tool in my arsenal to solve any problem in development or in my problem domain.

I want to actually build things with seasoned experts (my professors). I'd like to come out the kind of person, who when asked to solve any computer- related problem doesn't stutter but just hops right on it.

I've done, to the best of my own ability, just that outside of school yet there are just some things I cannot teach myself.

I love computers and I want the curriculum to mirror that.

And for anyone who want's to say "oh you just want the _easy_ way out, you just don't want to take English/Math classes because that's too hard". I've heard this many many times before. I don't want anything easy. If anything this curriculum that I want would be far harder than any CS curriculum ever before it. But it wouldn't be hard for me. Not because I know how to do all of the stuff in it, but because I _love_ doing all of the stuff in it. These things are what I excel at doing and I strive to know as close to everything about these things as I can.

Sadly, we don't really get a say in this sort of thing. My beard isn't nearly gray enough and I don't have a white coat, so in the end my opinion is unimportant.

<comment><USER10> > I want to learn every popular language's ins and outs. This includes, but is > not limited to C, C++, Ada, Lisp, Java, C#, Python, x86/x64/arm/MIPS > assembly. I'd like to be taught, not lectured to, I want to actually learn > from my professors. I want to learn about software abstraction, > organization, revision, and project management. I'd like to be able to learn > about ever piece of software running on a system and be taught how to > implement them. I'd like to learn how to use every single tool in my arsenal > to solve any problem in development or in my problem domain.

And yet the CS curriculum is _exactly_ what you need in terms of foundation so you can learn all of that.

What you are asking for is a (probably several) _lifetime_ of information in 4 years. Wouldn't we all like this?

> I'd like to be able to learn about ever piece of software running on a > system and be taught how to implement them.

Take the track that leads to your "Compilers" class. You will get most of the pieces you are asking for along the way.

> I want to actually build things with seasoned experts (my professors).

Sorry, but your seasoned experts are probably in industry, not academia.

> Sadly, we don't really get a say in this sort of thing. My beard isn't > nearly gray enough and I don't have a white coat, so in the end my opinion > is unimportant.

Sure you get a say, but those of us with experience also realize the sheer _enormity_ of what you asked.

And we greybeards don't even know _ALL_ of that.

<comment><USER11> I'm sorry but I can't see any more then 10% of the curriculum of the standard CS class is required to learn about software engineering.

This is more so true given that my school requires:

       - 7 Humanities classes
       - 5 Math classes
       - 3 "Interdisciplinary Studies" courses which are any science that isn't CS
       - 3 Social Science classes
       - 2 "General Electives" which are any class that isn't CS-related
       - 2 PE classes
       - 2 Physics classes (With labs)
       - 1 "Science Electives" class (Most with lab)

The Science Electives and Interdisciplinary Studies are basically just CHEM, PHYS, MATH, or BIO. Nothing in CS is offered.

How many CS classes do I take, you may wonder?

Only 16.

Now I ain't no mathematician, despite my college wanting me to be, but that don't smell a no good. With some fancy adding I come up with 25 non-CS classes and 16 CS classes. Pile on some fancy division and we get to an amazing figure.

Only 40% of my degree is CS. This was counting everything in the "CS" course label but many of those courses aren't technical.

Counting only "real" cs courses (where you _learn_ theory or implementation of computer science topics) there are only 12 CS courses. The rest are non-CS classes under the same name. Things like 1 class about how the university works, 2 classes about teamwork (which is also done in the management GUR I need to take), and 1 class in Discrete Math..... notice the "Math" suffix.

That brings us down to a whopping 30%. Only 30% of the money I am paying for college is going towards something I want it to (in the case where all of my money is spent on academia rather then sports) and it is also assuming that all of my classes are actually teaching me something. Most classes are just professors coming in, telling us stuff that is blatantly incorrect (I keep a list now to pull out when this point I'm bringing up comes into an argument) and then they can't even implement the assignments they are giving us.

A more realistic number is that ~50% of my CS classes actually teach me something I've never learned before.

So we are down to a sad, sad number of 15%. A measly 15% of my time is actually spent learning about computer science.

Now, let me ask you. Would _you_ think that the 15% of my time in Computer Science will actually teach me as much as 4 whole years of computer science?

You cannot ever convince me that someone wouldn't come out of a course like that knowing less then one of the 15%-educated students.

So I guess it's turned out that I was wrong. It's not 10% of my education it's 15%.

> And yet the CS curriculum is exactly what you need in terms of foundation so > you can learn all of that. > What you are asking for is a (probably several) > lifetime of information in 4 years. Wouldn't we all like this?

I'd say that my fellow students would be better served with 4 years out of that lifetime of CS knowledge checked off rather then learning to find the area under the curve.

> Take the track that leads to your "Compilers" class. You will get most of > the pieces you are asking for along the way.

The only track thaparserst leads to a "Compilers" class in my school is a Masters. The class on compilers that actually touches on things I haven't experimented with in my own time (LLVM, writing parser, writing interpreters, reading through some books here and there) are classes that lay in the 600 level.

> Sure you get a say, but those of us with experience also realize the sheer > enormity of what you asked

You don't think that I have enough experience to understand that this is a massive undertaking? I do. Ask for everything but settle for half because every victory, no matter how small, is still a victory.

Now there are exceptions. Are you going to work in finance? You probably need to know a bit of calculus. Are you like me and want to go into R&D? You are definitely going to need to know a lot about signal processing and some machine learning is always helpful. Are you interested in contract software development again like I am? Then you will need a little bit of background on software ownership, copyright law, and general contract negotiation.

The only common thread through these fields is a heavy reliance on your ability to program. Everything else can be bolted onto your degree.

But I don't think it's wrong to say that someone needs to take 21hr of _English_ classes, 20hr of _Math_ classes, or 6hr of _Physics_ classes, to be a _Computer_ Scientist.

Edit: List ordering

<comment><USER12> _> Are you like me and want to go into R&D? _

An intro in each of the basic sciences is indispensable for a career in R&D.

Taking _only_ 5 math courses (3 calc + discrete + linear?) is likely woefully inadequate, unless they're all taught very well or you plan to teach yourself a bunch more math. In fact, you should take abstract algebra, probability, and as many analysis courses as you can while you have the time. In either case not sure what you're complaining about.

The humanities courses are a good place to practice your writing and argumentation; those skills are transferable to negotiation of every sort.

Also, you could've knocked a bunch of those required courses with AP/IB credits in high school (2 history courses, 1 or 2 english, intro bio/chem/phys (3), intro CS (1), calc (1-2) = 7-10 courses).

<comment><USER11> > An intro in each of the basic sciences is indispensable for a career in R&D.

That's why I've been pitching in time and helping Drs at my university with their research in fields like RF and Physics. I learn much more then anything I've gotten out of a classroom.

> Taking only 5 math courses (3 calc + discrete + linear?) is likely woefully > inadequate, unless they're all taught very well or you plan to teach > yourself a bunch more math

When I'm taking on a problem that needs to be solved I immerse myself with information about the problem domain.

Linear algebra is the only thing that you've talked about at all that I've found useful so far. I did a bit of game development in my own time in high school and ended up teaching myself a lot about it. Mainly I just dicked around with implementing parts of a physics engine and taught myself a lot. So yes, the reason I want to go into R&D is because I like to learn about many different things but only _if there is a reason_.

But still, I don't want to be the only person in a team in R&D. I want to write firmware, software, and work on implementing designs. I've also proven to be fairly "ok" so far at management. I've got a lot to learn but it is something I can do, so I might bark up that tree.

> The humanities courses are a good place to practice your writing and > argumentation; those skills are transferable to negotiation of every sort.

I do more writing and argumentation in my own time. I spend about 10 to 15 minutes

> Also, you could've knocked a bunch of those required courses with AP/IB > credits in high school (2 history courses, 1 or 2 english, intro > bio/chem/phys (3), intro CS (1), calc (1-2) = 7-10 courses).

If these are things that could have been "knocked" out in high school then they definitely shouldn't be part of a high school curriculum. I had a lot of family problems in high school and that lead to a large problem with my "behavior" in school. Mainly not wanting to take shit from my teachers after hearing everything all night from my parents. Here are some antidotes from my high school "experience" (which I also consider to be mostly useless and feel a majority of the time I spent there could have been better spent someplace I could have actually learned something rather then just sit and stair at a wall all day)

       - My math teacher told me that any problems that I didn't show work on would result in a 0. This was after the game-dev time in my life and the class was only algebra 2. Everything was easy and I didn't show any work. I just took the zeros on the homeworks/exams until I was called into the guidance office  to "explain' myself. I said for them to give harder problems or for them to leave me alone.
       - My math teacher didn't like me using pen on the exam. She said I'd loose 5 points every time if I did. I just kept doing it. I think my highest grade from that marking period was a 95.
       - I gained access to the schools camera/DVR system and used it to find my friends between class. Principle threatens to call the cops and I just gave them all the info I had and told them I was sorry.
       - I didn't do any of the homework or classwork for my English class one semester, scored AP on all the standardized exams and 80+ on all the class work. They put me into a remedial class for English where I put in the same amount of effort but ended up getting an A.
       - I managed to get a D in gym class some how. I don't even remember how that happened.
       - Pre-Calc my senior year I again didn't do anything except now we where allowed TI NSpire's so I ended up installing Pokemon on my calculator. I played that.
       - My last two years I was able to take programming classes, I helped the teachers clean up their material since they where teaching from books. Nothing good ever comes from that.

I've probably got more stuff I'm not remembering but you might be seeing a common trend. High school is basically just a place to get you used to working in a factory and making sure you wont drool on yourself in public. It was a huge waste of time that basically kept me away from learning about the stuff I wanted to: _computers_

Anything that carries over from that shit show into academia is again a huge hint that you've got a large problem. I also don't think my time should be wasted _learning things I don 't need_ nor do I want to pay for it.

I'd understand if most people actually remembered the materials taught in these classes. That's one thing. But that is seldom the case.

There are very limited things that college has been good for:

       - I've got a lot of debt which makes me now applicable to some government loans/small business programs.
       - I've met 1 or 2 professors who are actually good at what they do AND want to share their secret sauce
       - I have access to a library with academic subscriptions (although the library won't subscribe to JOM... bastards. I pay them 15k/year they can spend a bit of that on important reading material)
       - I can help people build things that I like

Without these I'd just drop out. I'm 100% sure this isn't worth what I'm paying but I'm in so much debt now that the FAFSA will finally help me a bit so I might as well just hate my life a little longer, struggle through the BS, and at least get a piece of paper that _other_ people will think is impressive.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> Writing bug reports took me 5 minutes to figure out how to do in the real world (or maybe an hour, or even a day, but not too long). This is not something you need to take a class to figure out.

<comment><USER13> I don't think writing bug reports is as simple as it seems. Sometimes it actually takes time (and experience) to learn how to communicate an issue them properly. Writing steps to reproduce, which systems, etc

<comment><USER7> "A minute to learn, a lifetime to master."

Seriously though, do you feel you missed out because your CS degree didn't teach you how to write bug reports? I mean, really?

<comment><USER13> I didn't personally, but I do think introducing more software development processes into the curriculum would've been beneficial.

</comment></comment></comment></comment><comment><USER14> Sounds like a cool course, not sure I'd call it computer _science_ , though.

</comment><comment><USER15> While there are people commenting on how the techniques sound a lot like a software engineering class, as opposed to a computer science class, I think this approach overall would be fantastic for computer science. Writing tests and documentation are great discipline for assignments. Once these software engineering practices are in place, they can serve as a framework for future assignments.

The HTTP server as a starting point is an excellent idea. This allows for students to see the results of their efforts in an interactive, visual, tangible way. Successfully implementing a search algorithm for the first time is great, but how much more rewarding would it be to see an unsorted list on a web page, a "sort" button", and watching the list sort before your eyes?

Students become trained in one of the most underrated skills in software: communication. They also gain practice in building prototypes to help with job hunting or demonstrating to managers. Does this reframe the curriculum in the context of industry rather than academia? Yes, but I feel it would be incorrect to orient CS around the minority of students who will pursue academic careers anyway.

</comment><comment><USER16> (Besides this not being "CS" as people are pointing out)

This is good to give some ideas to people that like to tinker and learn by themselves, who are the people needing instructions the least.

The thing is, if students don't have a step-by-step instructions they will fail and complaint, you can tell the author is not a teacher.

Anecdote time: I did MS in CS in an university in the US, in one course we had to set up some XML web service in Java, the prof lifted all the instructions from official web site and gave us the slides with step-by-step commands but he missed one step, so next week nobody except me (who bothered to look up the error and RTFM) had the service set up, this was a 500 or 600 level course.

</comment><comment><USER17> This is very close to the iteration loop I designed for the onboarding team I am currently running: I'm getting fresh CS grads and need to add the software engineering into their skillset.

I can't say I'd really change up the status quo, though: I wouldn't substitute any of the time they spent on CS to be reduced to include more 'real-world' items: you can focus on those afterwards and they tend to be organization- specific. Give me folks with a solid theoretical foundation and I can work on their client-interaction and big-codebase-team-programming skills.

</comment><comment><USER18> Sounds like a Software Engineering course. Probably want to add in the rest of Computer Science if you really want to teach Computer Science though.

</comment><comment><USER19> You've laid out a plan to teach software development. Computer Science might be more accurately named "Computing Science".

</comment><comment><USER20> This is applicable to an Intro to SOFTWARE ENGINEERING course. As an exercise. Not the primary content. It is not Computer Science.

</comment><comment><USER21> This is "code monkeying", not "computer science". A valuable skill, to be sure, but let's not mix terms.

</comment><comment><USER7> Seems like a good start for a class. If he keeps it up, and does a lot more work, he'll end up with a good program.

</comment><comment><USER22> So go teach CS :-)</comment>


Marissa Mayer accidentally fires dozens of employees - <AUTHOR> http://nypost.com/2016/01/30/yahoos-marissa-mayer-accidentally-fires-dozens-of-employees/ <comment><USER2> _"There is zero truth to this rumor," a Yahoo! spokeswoman commented._

A most fascinating "rumor", if true.

Would anyone with direct knowledge care to confirm or deny?</comment>


Twitter sells multi-billion tweet archive - <AUTHOR> http://rt.com/news/twitter-sells-tweet-archive-529/ <comment><USER2> "Twitter has sold billions of archived tweets believed to have vanished forever. A privacy row has erupted as hundreds of companies queue up to purchase users' personal information from the new database."

Is there actually any information in this? What do they mean by believed to be vanished forever? According to the BBC new article [1] "private accounts and tweets that have been deleted will not be indexed by the site."

Historically Twitter have been pretty good about ensuring, in their licences at least, things like deleted tweets are deleted even from external archives. It's what makes compiling a database of tweets - even for research purposes - quite difficult.

[1] <http://www.bbc.co.uk/news/technology-17178022>

<comment><USER3> Normal people believe that information that is nearly impossibly difficult to find is as good as gone forever. (This is mostly as these same "normal people" also often don't understand that website scraping can be automated; a sad misapplication of almost-reasonable cost heuristics to a system they don't understand.)

However, on Twitter there is an extra wrinkle: neither the site nor the API allow you to go back more than 800 tweets for any view, whether it be "search results matching X" or "tweets that mention me" or "tweets posted by user Y" (the one exception being "your own tweets", where you can go back 3200).

This means that if you tweet a lot, it is impossible for another user to go back very far into your history. Even you may not be able to go back that far in your own history. As an example: if you send 20 tweets a day, your history will be inaccessible to you within 6 months, and inaccessible to other users within 6 weeks.

Given that this information is seemingly just gone--inaccessible, unable to be found from the user interface of any client, or Twitter's website, or searches on Twitter--while you and I know that they didn't delete it (in fact, Twitter even implies as much in their documentation somewhere: that the 800/3200 are only "temporary" limits), normal people are going to consider that data "vanished forever".

<comment><USER4> If you know the id of a tweet you can still access it I believe. <https://api.twitter.com/1/statuses/show.json?id=20> still works, which allows you to construct <https://twitter.com/#!/jack/status/20> which also still works. So, it's only searches which don't go that far back.

<comment><USER3> Right. You can also find a lot of old tweets using Google (which is, of course, hit or miss). As I said, you (a general you of "people on HN", not just the person I responded to) and I know that it isn't deleted. You and I know all sorts of things about websites that the normal person does not, which means we honestly can (and do) come off as if we know deep hacker magic secrets for demonstrating what is, to us, rather obvious things. When we design websites (and privacy policies...) we need to remember this.

Remember: for a normal person, those somewhat scary-looking URLs are likely opaque. To the extent that people spend any time pulling them apart, it turns into a game of "guess the really long number, by hand, typing attempts into the URL bar of their web browser". They are unlikely even to figure out that it is monotonically increasing (which may or may not even help given the volume of the site); and, even if they did, for them the probability of guessing one of those numbers would still be effectively zero.

</comment></comment></comment></comment><comment><USER5> Wait, so this "article" makes a bunch of claims against Twitter based on zero authoritative links and a bunch of unsourced quotes from ... the Daily Mail?

And we're supposed to take this seriously? Come on, doesn't it take more than a bunch of unsubstantiated claims for the HN community to jump on something and just take it at face value?

<comment><USER6> The only thing that annoys me is twitter won't sell my own archive back to _me_! I'd happily hand over money for that

</comment></comment><comment><USER7> Am I the only one not shocked or offended? I post publicly on Twitter. Anyone can do that anyway. … Unless I'm missing something.

<comment><USER8> The one possible privacy problem that I can see is that they are selling tweets that users can no longer control - if I said something a year ago that I wish I could take back ("Hi everyone, just to let you know I'm gay" or whatever), I'm now unable to delete it, or even review what it was I said, but it can still be sold and tied to me.

Still, not something I personally have an issue with, and I suspect not something most people would have an issue with.

</comment></comment><comment><USER9> As long as they don't sell DM's or private account tweets, I don't really see the big issue.. By saying that, I mean I'm comfortable with companies having what was already public in the first place.

<comment><USER10> If you were publicly tweeting and then went private just before this database was closed off, would those tweets get out?

What if you switched back and forth between private and public a bunch of times? Were those private tweets lost or did they reappear when you went public?

My gut says _everything_ stays in the database and it's all being sold.

</comment></comment><comment><AUTHOR> Related: [http://blogs.loc.gov/loc/2010/04/how-tweet-it-is-library- acq...](http://blogs.loc.gov/loc/2010/04/how-tweet-it-is-library-acquires- entire-twitter-archive/) Library of Congress already has an archive of public tweets.

</comment><comment><USER11> Twitter is a business, just like any other business, trying to turn a profit. Protect your account if you don't want your __public __data being pulled. Anyone can make a timeline API request...

</comment><comment><USER12> "privacy betrayed" -> any of this data was ever private. it wasn't.

<comment><USER13> Unless you opted to have a private profile. I wonder how if those private tweets are included in the bundle.

I agree, however: if you want to keep your thoughts private, don't post them on the Internet. When do you do that, they don't belong to you anymore.

<comment><USER14> > I wonder how if those private tweets are included in the bundle.

<http://www.bbc.co.uk/news/technology-17178022>

"private accounts and tweets that have been deleted will not be indexed by the site"

<comment><USER13> Thanks! I admit not reading TFA.

</comment></comment></comment></comment><comment><USER15> Millions of web apps crawling your tweets and you're worried. If you want privacy don't use social medias.

</comment><comment><USER16> Once upon a time it was the consumer who was confused about what they owned. We all bought vinyl records because it meant we could hear the music we wanted to. We thought this meant we could do what we liked with the music and even though we couldn't the limitations of the technology meant the artist and record company profits never really suffered. One day digital music came along and suddenly our assumptions about what we could do with the music we owned became a serious problem for record company profits and the whole planet shook.

Now we have all become artists; our words, our emails, our tweets and posts the new music. The Twitters and the Googles are the new record companies and once more the confusion between music and vinyl has arisen.

</comment><comment><USER17> Is there a crowdsourced public archive of tweets? If not, we should build one.

<comment><USER18> And then sell it to the big corps for 10% less than twitter... excellent idea :)

</comment></comment><comment><USER19> 95% of these tweets are ones with links to "enlarge", "boost", "find a adult partner", "xxx" :))

</comment><comment><USER20> OMG. They'll know everything I ate the past two years!

</comment><comment><USER21> I wonder how it gets over this [1].

[1] <http://tweetcc.com/>

<comment><USER22> Easily.

<https://twitter.com/tos>

> By submitting, posting or displaying Content on or through the Services, you > grant us a worldwide, non-exclusive, royalty-free license (with the right to > sublicense) to use, copy, reproduce, process, adapt, modify, publish, > transmit, display and distribute such Content in any and all media or > distribution methods (now known or later developed).

> You agree that this license includes the right for Twitter to make such > Content available to other companies, organizations or individuals who > partner with Twitter for the syndication, broadcast, distribution or > publication of such Content on other media and services, subject to our > terms and conditions for such Content use.

> Such additional uses by Twitter, or other companies, organizations or > individuals who partner with Twitter, may be made with no compensation paid > to you with respect to the Content that you submit, post, transmit or > otherwise make available through the Services.

You can put a CC license on your tweets, and it'll grant those additional copyright rights to anyone, but it doesn't limit what Twitter can do with the content you posted one bit.

</comment></comment><comment><USER23> I don't get what you can do with twitter data...

<comment><USER23> Instead of down voting can someone give some examples...

<comment><USER24> Company C launched product P on date D.. did mentions go up? Are tweets about company/topic/place/store positive or negative? What do people tweet about when inside our store?</comment></comment></comment>


Democrats and Schools - <AUTHOR> http://www.nytimes.com/2009/10/15/opinion/15kristof.html?_r=3

<comment><USER2> There is so much hate towards the teacher's unions swirling about these days. Is it really deserved? What's the story from their side? From what I've read, it sounds like the single most important solution to fixing education is to abolish all teacher's unions, but is that really reasonable?</comment>


Ask HN: Killer idea, no cash to build an MVP, what to do? - <AUTHOR>

Besides the obvious "ask friends, ask family" what would you do?
I'm asking in part because I have a killer idea for a subscription-based model in a multi-billion dollar industry. It would be the only player in this industry, and the model has proven itself over and over across dozens of different industries.
I've had my share of success from an early age as an entrepreneur, but they have all been software or web plays. This is different, and my network of people aren't interested in this sort of thing.
I'm out of ideas. <comment><USER2> Is this software? Can you build it yourself? What kind of investment would be needed? Is your credit good enough that you can get a personal loan? Would it require more money than that?

Your other option, of course, is to seek angel investors and VCs. You may have some success there if you have some knowledge of the industry or product that they can't immediately duplicate. If you choose this route, be careful how you word this:

 _"It would be the only player in this industry"_

That's usually a big red flag that the start-up doesn't know who their competition is. Adding "subscription-based" to the front doesn't instantly mean you are the only one in your industry.

<comment><USER3> Being the only one can also mean there is no market... like being the only company to offer flood insurance on the Sahara...

</comment></comment><comment><USER4> Your question is really vague as you didn't give enough details about what you're building or what you'll like o achieve. Still, i'll try to answer.

You need:

0\. Can you do it manually? Without any code can you provide this service? If yes, start here.*

1\. Feedback - this is not easy without a product but draw something, sketch something or create a model in autocad. Show people and talk to them about how you plan on making their lives easier with it... Are they excited?

2\. Product - if its a physical product, go and find money an then post again.

If its software, build a website, create a mockup of your app and start selling pre orders.

3\. Reduce your product - Kill everything else except the core feature that makes you awesome. That's your MVP. I'm serious, just ONE feature.

4\. Hire a developer - or start looking for a tech-cofounder. you should learn to code, but you should also build your business while you do it. Your pre- orders will make developers more welcome to your approach.

</comment><comment><USER5> Even if it's not software, you should learn about the relevant tech (assuming there is some). You'll have an easier time hiring talent later, you'll need less upfront costs, and investors like co-founders who have a good understanding of the technical aspects of the business.

If it's tech, but rather material cost, then crowdfunding is a good bet AFTER you have locked down a good marketing plan and secured some early traction in the form signups / commitments.

You can do tests and "fake door" type experiments to get user signups, or even commitments from potential customers to further validate your understanding of the model and relevant addressable market.

Once you've gone through that testing and validation process, try building out a small MVP yourself, or use what traction you mustered to try and recruit an equity partner with the relevant experience / network / talent necessary (and/or go get some angel money).

good luck

<comment><AUTHOR> There is some relevant tech that I'll have to look through. A lot of logistics has to happen for everything to go smoothly. And, like always, it's better to do it right the first time rather than playing catchup when money's knocking at the door.

I like this fake door idea. Good words, thanks.

</comment></comment><comment><USER6> I would agree with the other comments so far.

If your idea is in fact without competition then include who are possible competitors no matter how slight. To not have any competition is a HUGE red flag. By including even the slightest of competition then you are showing that you have done your research. Also, make sure you have a rock solid way of explaining how long it will take for investors to get their money back.

Contact your group of contacts and ask them why they do not want to back you. You may be surprised at their responses. But take their advice and alleviate their concerns. Because their concerns will be the same as potential investors.

Find a way of doing it on a smaller scale that you can afford to finance yourself. You will need a proof of concept anyway so start working on that. People are more likely to invest in things they can actually see not ideas alone.

<comment><AUTHOR> I should have mentioned that this plays on the Netflix model. And, with that, well, how long did it take before we had DVDs by mail? A longggggggg time. So yeah, there's the typical retail outlet for this stuff, you're right. And this market specifically is ginormous and will _always_ be there. But there's currently no member of this market that's decided to go along with the Netflix model. And, at least to me, I see that as a huge opportunity.

<comment><USER7> Netflix for power tools?

<comment><USER8> netflix for baby clothes. every mo. send old box back get a new box.

</comment></comment></comment></comment><comment><USER9> Im guessing you should look locally first. In my town just had a tech week where alot of local investment firms where eager to fund some fresh ideas as long as there was some meat behind it e.g other funding , site developed , or in your case a tested entrepreneur. Start there S.C.O.R.E is also a good source as well to look at

</comment><comment><USER10> downsize the idea

upsize your skills

start blogging and beta signups

try and find a way to presell it

</comment><comment><USER11> If you have no competitors, are you sure there is a market for it ?

Do your research and since you haven't said much about you will be doing I can only tell you to find out if your are going to need the amazon model or the Ben & jerry model:

<http://www.joelonsoftware.com/articles/fog0000000056.html>

</comment><comment><USER12> Why do you need cash for the MVP? Is it a physical product? Do you have to hire someone to build it?

<comment><AUTHOR> Gotta stock the warehouse shelves somehow.

<comment><USER13> Not necessarily. If, by "Netflix model", you mean rental, then you're probably right. If instead you actually mean purchase, then you might be able to get away with presales and drop-shipping.

</comment></comment></comment><comment><USER14> So, you have an idea for a killer app. No way to pay a developer. If the idea is all you are bringing to the table, then you have nothing to offer.

</comment><comment><USER15> How much do you need?

</comment><comment><USER16> Why are you so vague about this killer idea?

</comment><comment><USER17> Is it related to medical field?

</comment><comment><USER18> crowd-founding is your friend.

</comment><comment><USER19> Run a validation test.

</comment><comment><USER20> sell your body.</comment>


Billions in bearer bonds could be lost due to Hurricane Sandy: sources - <AUTHOR> http://www.nypost.com/p/news/local/manhattan/sunken_treasure_R1WidDOAwSBvWbYgSIoflJ <comment><USER2> It's kind of similar to people who had uninsured art in safe deposit boxes in the World Trade Center on 9/11.

In the old days you took $10,000 to your bank or broker and got a bunch of certificates. Then, as coupons become due, you detached them from the bond (they were actual, paper coupons) took them to your bank and deposited them like checks. Then, when the bonds came due, you presented them to the bank for redemption. If you sold the bonds, workers in the bank's vault a/k/a the cage handled shipping certificates from the seller's bank to the buyer's.

But bearer bonds stopped being issued in the early 80s. Now, the issuer's transfer agent keeps an electronic registry of who owns what and who is due interest payments. When you sell bonds, the transfer is made electronically on the books. There should be very few bearer bonds still outstanding.

Also, they got wet, it's not like they went up in smoke. Bottom line, I wouldn't expect losses from destroyed certificates to be a big number like tens of billions. If they can't salvage them, sounds like it could impact some people, and could be a legal scramble to see who ends up on the hook between DTCC, the banks, the customers, and their insurance companies.

<comment><USER3> There are still a few places where a person, so inclined, could create or purchase this wonderfully nefarious financial instrument. [http://www.panamalaw.org/issue_your_own_corporate_bearer_bon...](http://www.panamalaw.org/issue_your_own_corporate_bearer_bonds.html)

</comment></comment><comment><USER4> How did they prevent fraud with bearer bonds? (The wikipedia page is remarkably silent.) Since no records of ownership are kept, the only evidence of ownership is the bond itself. And given their value there is a large incentive to make fraudulent ones.

<comment><USER5> Issuers don't have ownership records, but they do know the identity of every bond issued through the bond's serial number.

So the only way to create a fraudulent copy, would be to copy an existing bond and it's serial number. Of couse, since the original bonds were as good as cash, they were/are kept under pretty tight security.

Not impossible of course, but it did make it difficult to make counterfeit bonds. Also, many bonds had unique security features associated with the bond itself, similar to currency.

<comment><USER4> If it wasn't a sequential serial number, but rather a long random string then that would make a lot more sense. If your serial had been cashed in fraudulently then you would only find out when you tried to cash in the legitimate bond. There is still provides a massive incentive to steal numbers either from the bonds or the issuing company.

I'm somewhat sceptical of the security features. Obviously some would exist, but the huge value of the bonds makes forging them attractive. It mentions the bonds being held for many years (possibly decades) so the security features would have to last that long. In the UK they regularly change the bank notes withdrawing old ones from circulation and they are no longer accepted except at the Bank of England. The US doesn't seem to do this.

<comment><USER6> I think thats why people collect old bonds, as they were very ornate to make forging harder. Access to quality printing was less widely available, but I am sure there was fraud. However as you had to present coupons for interest and certificates for maturity, I suspect they would check them all together to check for duplicates, manually. I know a few people who worked in that kind of area who are old enough to remember will ask.

</comment></comment></comment></comment><comment><USER7> After reading this article, I'm almost in tears when I realize what the mitigation step would have been for protecting those bearer bonds from moisture: Tupperware containers.

<comment><USER8> Or, you know, not storing large amounts of money in a long-obsolete financial instrument that you can't back up.

<comment><USER9> Bonds are never obsolete. My dad knew a guy whose family owned some sort of bond with a 150 year maturity. It was used to build a long-defunct racetrack in the Bronx, and is now a NYC obligation.

Is cutting out coupons a little silly? Sure. But the money is quite real!

<comment><USER10> If you think 150 years is a while, wait to you hear about perpetual bonds. The United Kingdom still pays out interest, four times annually, on bonds which predate the existence of the United States of America. (They could theoretically call most of them, but owing to unilateral changes in the terms over the years, the coupon is so low as to make calling them a losing proposition as opposed to paying down more conventional debts of the nation.)

<comment><USER7> Citation: <http://en.wikipedia.org/wiki/Consols> (to save others the search)

First issued in 1751.

"Consols still exist today: in their current form as 2½% Consolidated Stock (1923 or after), they remain a small part of the UK Government's debt portfolio. As the bond has a low coupon, there is little incentive for the government to redeem it. Unlike most gilts, which pay coupons semi-annually, Consols pay coupons four times a year because of their age. As a result of their uncertain redemption dates, they are typically treated as a perpetual bond.

...

Given their long history, references to Consols can be found in many places, including literature such as Pride and Prejudice by Jane Austen, David Copperfield by Charles Dickens, Howards End by E. M. Forster, Vanity Fair by William Makepeace Thackeray, Of Human Bondage by William Somerset Maugham and The Forsyte Saga by John Galsworthy and in economics."

</comment></comment></comment></comment></comment><comment><USER11> Don't keep bearer bonds at a street called water. Clue is in the name.

<comment><USER12> I realize you're just being funny, the thing I don't get is why the 'vault' isn't air tight. I looked at renting a space that had been a bank, the old vault was literally welded open because it _was_ air tight and if the door closed and locked it would take longer to re-open then a person could survive on the air inside.

</comment></comment><comment><USER13> This is precisely why I didn't locate my cloud storage company on Fatal Disk Error St.

</comment><comment><USER14> This would make a great plot element in a movie about money laundering.

<comment><USER13> Looks like we will need to do some dry cleaning.

</comment></comment><comment><USER15> _"In 2010, DTCC settled nearly US$1.66 quadrillion in securities transactions."_

If you are interested in how financial markets operate and have not heard of DTCC I highly recommend you take a look at their "about us" page.[1]

[1] <http://www.dtcc.com/about/business/index.php>

</comment><comment><USER16> Ziploc bags.

Also great for travel if you have anything in your luggage that might break or leak.

</comment><comment><USER17> 55 water was hit amazingly hard by flooding, offices in 55 water will be closed another 3-4 weeks.</comment>


How to be a good open-source citizen - <AUTHOR> https://gist.github.com/nolanlawson/d5334678848aaf11ba39

<comment><USER2> After Chris Siebenmann's viewpoint:

If you expect feedback, be it tickets or patches, make submitting it as pleasant experience as possible. Merely demanding feedback is simply being an asshole.

If you want feedback, it's your fscking duty to cater for people you expect it from. After all, it's them who go out of their way here.

<comment><AUTHOR> Totally agree. I could write an even-longer essay on "How to be a good open- source maintainer."

Too many projects have poor documentation/tests, or they don't make it clear how to contribute. Something as simple as a CONTRIBUTING.md file can be really valuable; IRC and mailing lists are also good resources to offer.</comment></comment>


Problems with Amazon Refund/Return Process - <AUTHOR> Recently, I bought an item from Amazon and requested a Refund. The Refund was granted but it took around 2 weeks to get credited to my account. Has anyone else faced problems with the Refund/Return process? <comment><USER2> That is not a problem. They probably waited your package to refund you

<comment><AUTHOR> But they know that my package will reach them. Why can't they give me the refund earlier, so that I can buy a new item again.

<comment><USER2> \- How could they know that you are not going to screw them by asking a refund and then not sending back the item ?

\- They may want to inspect the item before refunding you. Maybe you broke the item, void the warranty for some reason and want a refund.

And the list could go on and on. There is nothing wrong with that attitude. If it takes too long (over a month), contact them.</comment></comment></comment>


Candy Wrappers Are Listening (2014) - <AUTHOR> https://spectrum.ieee.org/tech-talk/consumer-electronics/audiovideo/your-candy-wrappers-are-listening <comment><USER2> Fun tidbit: Three letter intelligence agencies have known about this attack vector since before this paper was published, and are worried it could be exploited in the wild.

[https://www.theguardian.com/world/2013/aug/20/nsa-snowden- fi...](https://www.theguardian.com/world/2013/aug/20/nsa-snowden-files-drives- destroyed-london)

 _[British government officials] expressed fears that foreign governments, in particular Russia or China, could hack into the Guardian 's IT network. But the Guardian explained the security surrounding the documents, which were held in isolation and not stored on any Guardian system._

 _However, in a subsequent meeting, an intelligence agency expert argued that the material was still vulnerable. He said by way of example that if there was a plastic cup in the room where the work was being carried out foreign agents could train a laser on it to pick up the vibrations of what was being said. Vibrations on windows could similarly be monitored remotely by laser._

<comment><USER3> I've actually done this in a lab with a laser - it's a fun trick. What the original article talks about though is passively measuring sound from objects using a camera - no laser. Although they're measuring the same thing (physical vibrations of objects) the way they're doing it is actually quite different.

<comment><USER4> A friend of mine used that technique while working in an entomology lab studying the mating habits of cockroaches. They were trying to figure out what kinds of vocalizations the cockroaches were making while mating, and bouncing a laser off their shell was by far the easiest way to record those very quiet sounds.

It's been a few years, but I _think_ this was the manufacturer: [https://www.polytec.com/us/vibrometry/products/](https://www.polytec.com/us/vibrometry/products/)

I wouldn't be surprised if the non-laser techniques eventually also show up as off-the-shelf products too, simply to reduce costs - a simple camera could be cheaper than a laser, and might have advantages in being able to record sounds off multiple points at once.

<comment><USER5> Also, I think a big advantage for the camera-based solutions is that they're totally passive, while laser-based need to interact with the object.

<comment><USER6> To make a camera-based solution practical, it seems like one would neeed a specialized camera, for modest resolution, but very high frame rate. Without enough frame-rate, you can't capture high frequencies. Even if speech could be discerned from a spectrum that rolls off at 300hz, well under the peak energy of a typical human's speech, you would still need many hundreds of frames per second.

<comment><USER7> If you watch the video at the end, you'll see that they actually exploit the fact that CMOS pixels are read out sequentially and use the data from each row to extract surprisingly decent high frequency data from even 60 Hz video!

</comment></comment></comment></comment></comment></comment><comment><USER8> Bill Freeman, the PhD supervisor on this project, is a really creative computer vision researcher. Read through his CV, he has a great ability to pick interesting problems slightly outside the mainstream. I wish for that ability.

</comment><comment><USER9> Also a really cool application of this rolling shutter is video of guitar strings:

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

(Note that real guitar strings don't vibrate in this way; they vibrate across their entire length, with limited higher order harmonics; the visible waveforms here are an artifact of the CCD capture process).

</comment><comment><USER10> This will help to solve debates like the one about the moon landing. Use this video ([https://www.nasa.gov/multimedia/hd/apollo11_hdpage.html](https://www.nasa.gov/multimedia/hd/apollo11_hdpage.html) \- the highest HD I could find) of the flag moving and extract sound. Then extract the sound (if there is any) [http://people.csail.mit.edu/mrub/vidmag/](http://people.csail.mit.edu/mrub/vidmag/) is the site that he mentions at the end or the ted talk given that goes into more about the workflow.

Not a programmer so not sure how to use the code to implement it. Any takers?

<comment><USER11> This is going to do nothing to solve the "debate". Moon landing deniers will find an excuse to dismiss this evidence like they have for the rest.

<comment><USER12> The conspirators purposefully made the flag from nylon, rather than candy wrappers, in order to foil future attempts of sound extraction.

</comment></comment></comment><comment><USER13> For more details, full paper can be found at [https://dspace.mit.edu/handle/1721.1/100023](https://dspace.mit.edu/handle/1721.1/100023)

</comment><comment><USER14> Laser vibrometers are neat. They can also be used to sniff keystrokes remotely by pointing them at a laptop lid. Research also released before this paper.[1]

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

<comment><USER13> The linked article describes a passive monitoring system achieving the same result, no laser required.

</comment></comment><comment><USER15> Even more "scary" (if it really works): using reflected microwaves in a windowless room in a similar way: [https://www.eetimes.com/document.asp?doc_id=1274746](https://www.eetimes.com/document.asp?doc_id=1274746)

</comment><comment><USER16> I wonder how much archival footage we might be able to give a second look knowing what we know now.

</comment><comment><USER17> I'm assuming it would need to be extremely high frame rate video to extreact decipherable voice data. Because even at 60 frames per second, which I understand is at the high end for normal video, that gives you a maximum frequency of only 30Hz, which is nearing the low end of human perception.

So it's interesting and a definite risk if an attacker is supplying their own camera, but definitely does NOT mean you can pull voice data from the vibrating tablecloth in a YouTube video, right?

<comment><USER18> Not from a YouTube video, due to the video compression obliterating the small details needed to get the frequency. But the article notes that a rolling shutter allows even a 60fps camera to capture higher frequencies. Each scan line of the captured video is at a sub-frame time slice. If the object occupies a hundred scan lines, then you have 100 slightly shifted 60 hz samples that you can combine to reconstruct higher frequencies.

</comment></comment><comment><USER19> I thought this was as old as continuous-wave lasers, albeit the original idea was bouncing it off a window.

</comment><comment><USER20> If smartphone accelerometers become more advanced, perhaps they can be used in the same way :)

<comment><USER21> I'm trying to work this one out in my head ...

You've left a smartphone lying around and you want to read accelerometer data to determine what was said in proximity. Just turn on the mic instead.

You've left a smartphone lying around to remotely read light bouncing off it ... accelerometer not required. Also, just turn the mic on instead.

<comment><USER20> Apps don't have mic access universally. It has to be granted by the user.

<comment><USER21> The user leaving the phone behind for the purposes of snooping on the room.

</comment></comment></comment></comment><comment><USER22> Well fine, but who do you listen to? Is face to face interaction still a thing?

</comment><comment><USER23> What is a viable defense against this attack? Some kind of white noise machine?

<comment><USER24> A private windowless room.

</comment></comment><comment><USER25> see also [https://news.ycombinator.com/item?id=8131785](https://news.ycombinator.com/item?id=8131785)

</comment><comment><USER26> creepy</comment>


Show HN: SoundCloud Radio - <AUTHOR> http://radio.sc

<comment><AUTHOR> One of my favourite centres is:

<http://radio.sc/stream/11499>

For generally more acoustic stuff I also like:

<http://radio.sc/stream/3315939></comment>


Ask HN: As a developer/engineer what is the least you like about your job? - <AUTHOR> In my almost 20 year long career as a software developer I have come across both good and bad jobs.
Somehow the bad ones are sticking out the most in my mind.
The things I really have a hard time accepting in my job is:
Poor leadership Constant goal changing Bad QA Little customer transparens Poor backlog descriptions One man show decisions even though rest of the team disagrees
Just the top of my head.
What are some of your experiences ? Thanks for sharing. <comment><USER2> Politics obviously. People with least amount of skill making the most important decisions.

</comment><comment><USER3> Lack of transparency from management.</comment>


Show HN: Privacy conscious, discovery focused search engine – Whize (Alpha) - <AUTHOR> https://alpha.whize.co <comment><USER2> Well for now I sadly don't see any use above the github search.

What will the first dedicated "discovery" feature be?

Focusing on discovery sounds amazing, but just adding noise to a "perfect" google-like ranking would just degrade the search result overall.

edit: I could imagine ranking harshly for quality of content and a focusing less on direct relevance (e.g. keyword occurrence) but rather "proximity" of the results. With proximity I mean topical or social relation between your query and the result. Look for Wordpress, find other CMS' and WP-plugins.

But quality and proximity are both so much harder to measure than just pulling the keyword matches to the top.

edit2: for visibility of startups I could rather imagine a hand-curated and sorted list of tools

<comment><AUTHOR> So to the point of your first edit that is basically what we demo here in regards to GitHub we have some metrics in regards to the repos we've been tracking and we have various knobs that control how fast a top result would degrade from it's position while trying to maintain topical relevance in the results. The difficult part is with GitHub you have some canned metrics you can use as an approximation for quality and novelty that aren't immediately obvious for the rest of the web. We have some thoughts in mind though of how we can tackle that.

For number 2 it's interesting that you mention that, our initial inspiration for this was the awesome lists which if you look those up are hand curated lists of different topics that people have put together. We wanted something wider in that we want to be able to accommodate a much wider array of interests and we though by figuring something out algorithmically we could do it for anything we've crawled. What we didn't like about those lists is they're static, the top item in the list is going to stay that way we wanted to create something that will refresh itself and provide continuous use in discovering new things about some topic of interest.

<comment><USER2> maybe you could show what is novel about the search result a bit better?

<comment><AUTHOR> So like some human understand able description from the metrics we are using? "This website is fairly new and is seeing a lot of active contribution." "This website's content is different from other websites in the same category."

<comment><USER2> Exactly.

Or if you mix them in a smart way maybe explain that: ("we promote projects that were at least a bit active within the last x month and ...").

Maybe "top lists" could work? most active, most unique, most collaboration

</comment></comment></comment></comment></comment><comment><AUTHOR> To give some context, for this demo we crawled the entirety of public GitHub to show off our idea of what we mean by novel. We chose GitHub because we figured HN might like to see some cooler repos for things they are interested in.

We have the capability to crawl about a hundred million sites a day and are figuring out where to go from here.

If you want to learn more about what we're doing. [https://medium.com/@iantbutler01/existing-search-engines- fai...](https://medium.com/@iantbutler01/existing-search-engines-fail- independent-and-small-businesses-enter-whize-404958949534)

<comment><USER3> > entirety of public GitHub to show off our idea

Well, I tried searching for my public repo and end up with 0 results. Same with my username.

<comment><AUTHOR> Worth noting too you may just not meet our idea of novel if your score is sufficiently low you are not ranked.

<comment><USER3> > meet our idea of novel

Thanks for letting me know.

<comment><AUTHOR> Always welcome to build a competing service with your idea of what is novel.</comment></comment></comment></comment></comment>