Royal palace discovered in area believed to be birthplace of King Arthur - <AUTHOR> http://www.telegraph.co.uk/news/2016/08/03/royal-palace-discovered-in-area-believed-to-be-birthplace-of-kin/ <comment><USER2> Forget the castle, where is the lake & the Lady?? We want the sword, even though: "...strange women lying in ponds distributing swords is no basis for a system of government. Supreme executive power derives from a mandate from the masses, not from some farcical aquatic ceremony..."

<comment><USER3> Which sword though, aren't the Sword in the Stone and Excalibur different swords? :-)

<comment><USER2> Hmm... I thought it was one and the same... But you could be right... Drawing the sword from the marked him as the true King, but I recall Excalibur was handed to him by the lady in the lake later... I might have to consult Malory's tome again...

<comment> josh-wrale Pretty sure he cast Excalibur into the lake and the Lady of the Lake cared for it before returning it to him later. (making the stone sword Excalibur).

<comment><USER2> I do recall Sir Bedevere(?) throwing it back in the lake in the end after Arthur is mortally wounded, but I can't recall the bit where Arthur first throws it to the 'watery bint' before that. Having trouble locating my Arthurian books to research that bit...

<comment><USER4> Well, according to the wikipedia page on Excalibur, depending on the story, sometimes the Sword in the Stone and Excalibur are one and the same, and sometimes they aren't.

</comment></comment></comment></comment></comment></comment><comment><USER3> _He fed black ravens on the rampart of a fortress

Though he was no Arthur

Among the powerful ones in battle

In the front rank, Gwawrddur was a palisade_

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

I can strongly recommend Michael Wood's book _" In Search of England"_ which has a chapter on Arthur.

[NB I can see _Din Eidyn_ out of the window as I write this].

[https://en.wikipedia.org/wiki/Edinburgh_Castle#Early_Middle_...](https://en.wikipedia.org/wiki/Edinburgh_Castle#Early_Middle_Ages)

</comment><comment><USER5> > believed to be the birthplace of King Arthur.

believed by who? I thought it was pretty widely agreed that he never existed.

<comment><USER6> As depicted, no, but if take a squinty-eyed view of a "king" uniting squabbling nobles into one land (where "land" == "bigger territory than was normally allied"), and perhaps throw in some level of violent?/sexual?/usurping? family dysfunction, well....you get a lot of "king arthur"s.

Much like Count Dracula (the evidence saying he was inspired by Vlad the Impaler is awfully thin and largely rests on everyone assuming an initial theory was correct and then laughing at anyone that wanted to say otherwise because "everyone" knows). If you go looking for nobles in that area that fought the Turks and were notorious...well, take your pick. You can filter by "son of the dragon/devil" (Dracula), but I've heard that "Dracul" was sort of an honorary title that wasn't shy among, you know, nobles that fought Turks, so that filter isn't likely to help much.

<comment><USER7> I'm Romanian and incidentally I vacationed several times in the close vicinity of the Bran castle. Vlad the Impaler (Vlad Tepes or Vlad Draculea) was very much a real person (and the Bran area is pretty nice, I definitely recommend visiting). While the vampire connotations are indeed mostly fabricated, he was known for more mundane gruesome acts, like affectionately poking people with a stick (see pic).

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

[http://www.livescience.com/images/i/000/071/430/i02/Impaled....](http://www.livescience.com/images/i/000/071/430/i02/Impaled.jpg)

<comment><USER8> Vlad, the Poker.

<comment><USER9> Vlad, the pentester.

</comment></comment></comment></comment></comment><comment><USER10> _They believe the one-metre thick walls..._

"Merlin! I can't get on the damn wifi again!"

<comment><USER11> "Merlin, the 6ft wide doors for the Great Hall have arrived, but they don't fit the space in the metric-specced walls!"

<comment><USER12> On an audio tour around a castle in northern France, they had actors "reconstructing" lines from the past, including one that went:

"The tower had to be strong, so we built the walls 1.85 meters thick!...."

Soooo authentic.

<comment><USER13> You wouldn't have been able to understand what they were saying if it had been 100% authentic. And if you translate the language why not translate the units?

<comment><USER14> Why not say "make 'em really thick"? Or say "an arm span". The precise units are entirely unnecessary.

</comment></comment></comment></comment></comment><comment><USER15> I'm fascinated that the royal palace has a team of archaeologists on staff. That some top notch genealogy from the royal family.</comment>


Show HN: Better Bilingual Texts for Language Learning - <AUTHOR> http://smallworld.press/show_hn.html?hn <comment><USER2> Very interesting work. Good luck with it. As a father of a bilingual child I was happy to stumble on this while browsing hacker news.

</comment><comment><USER3> This is really awesome, I absolutely love it.

I've been trying to read dual text books in Polish and I did have the problem of Polish sentences being about 500 times longer than English. Personally, I solved it parsing the text for paragraphs and realining everything with shorter sentences.

Your solution definitely works better.

In case you're looking for feedback, I wouldn't use color as it both looks highlighted, and wouldn't allow highlighting. How about a 1px black outline to differenciate?

<comment><AUTHOR> Thanks!

Previously, when making materials for my own use, I used to put the paste the texts into spreadsheets, with one sentence per line/cell. It works well.

This layout is only used for printed books (at the moment). Without the color it looks more elegant, it's true. I'll try the outline.

<comment><USER3> > Previously, when making materials for my own use, I used to put the paste > the texts into spreadsheets, with one sentence per line/cell. It works well.

Yup. I created a script that would parse paragraphs, and create an HTML table automatically, with one row/sentence. This way at least you know where you are in the sentence :-)

Are you interested in language learning, or was this a one-time project?

I have a crazy project in mind, if you'd be interested in joining forces perhaps it would be more feasible to do it.

<comment><AUTHOR> I've got a lot of language projects. The latest one is a very low-cost, programmable audio player (no screen even, but lots of buttons and colored LEDs). You create non-linear, interactive materials. I was going to make another 'Show HN' when I have the firmware ready.

Send me an email (on my profile), I'm interested to hear your idea.

</comment></comment></comment></comment><comment><USER4> Nice; added to my wishlist. Thanks!

"The El Principito / The Little Prince Spanish/English Bilingual Edition with Audio Download (English and Spanish Edition)" [https://amzn.com/dp/1999706110/](https://amzn.com/dp/1999706110/) $18.69 paperback

</comment><comment><AUTHOR> Here's a project I spent quite a lot of time on last summer. I filled quite a few notebooks with doodles and half-ideas and spent a lot of time staring at nothing with (likely) a confused look on my face.</comment>


Show HN: Lagom – A simple homepage for your browser with a new design every day - <AUTHOR> http://lagom.io <comment><AUTHOR> Some more of the designs: [http://imgur.com/a/Eyb6P](http://imgur.com/a/Eyb6P)</comment>


IBM will offer free COBOL training - <AUTHOR> https://www.inputmag.com/tech/ibm-will-offer-free-cobol-training-to-address-overloaded-unemployment-systems <comment><USER4> It's a trap.

The problem with those old codebases that governments, hospitals, big businesses are struggling with is not really the language, it's the engineering practices of that time with regards to constraints of old technology. The language is not the problem - lack of comments, bad variable naming, bad structure (little or no procedures or readability), and just sheer volume of it, is.

It would be very interesting to see the old systems rewritten in a modern language, with modern engineering practices, but keeping the old UI and UX (which often is incredibly ergonomic) - so as to limit scope and not mess it all up by trying to introduce mouse navigation and windowing mess.

<comment><USER5> Not to mention GOTO. If your one of the people who hyperventilates when you see a goto because you learned that it was considered harmful in programmer school then Cobol might not be for you. ;)

You might be surprised about the comments though - depending on the age of the codebase. Mainframes were rented back in the day, you paid by resources consumed, terminal time was precious, and mainframes were often turned off outside business hours.

Because of this a lot of the development actually happened between terminal sessions in flowcharts, pseudo code, documentation, and peer review before the programs were ever modified and run.

If you ever run across really old comp-sci books you'll typically see them divided into three sections - first section was usually a guide to the author's terminology and symbology, second part was usually a guide to flow charting and documentation (IBM had standardized forms for developers to use), and then the remainder of the book was the content with lots of explanations of how to work the datasets hugely larger then the memory available to you.

But as time passed and computer time became cheaper many of those formal development practices started to get lax.

<comment><USER6> The New York State Civil Service exams for IT positions (meaning anything involving software development as well as other stuff) still have a flow chart section.

I actually quit the interview process with an insurance company a year or two ago after they wanted me to take a test involving reading flow charts, but now I'm in the position of having to pass something similar if I want to get promoted.

However, I don't _think_ people use flow charts on the job anymore, even in state government.

<comment><USER7> I've found that flowcharts are enormously helpful for software design and communicating the design decided upon. Maybe in your role you don't have a need to communicate how software should be written?

<comment><USER6> I like to make hierarchical text outlines.

I feel like once you need a general graph sort of structure, you're too far down the road to spaghetti and/or excessive detail.

</comment></comment></comment></comment></comment><comment><USER8> The IRS, treasury, and others locally are looking for COBOL programmers. I can explain why they're struggling to find any just by looking at the pay scale: $30,113 - $86,021 (GS-5 through GS-12, and most won't get the top end of the GS-12 scale). The $30K GS-5 starting is almost as low as working for their call center which is farcical.

By contrast state, county, and even city government are paying $65K - $85K starting going all the way up to $100K at the top end. And these are jobs where you're doing modern development, not COBOL.

People will start learning COBOL as soon as it makes rational sense. As it stands a lot of organizations aren't looking for any COBOL developer, they're looking for CHEAP COBOL developers. It doesn't make sense to learn when you'd lose money for taking those jobs.

<comment><USER9> This is exactly true. The pay is this low because there is a glut of cheap cobol developers in the US due to decades of off shoring. There have been 2000+ cobol developers laid off here over the past 5 years alone (medium midwest metro).

<comment><USER10> There cannot simultaneously be a surplus of COBOL developers and a shortage of COBOL developers.

Well, supposedly there could be one in the Midwest and one in NJ, but theoretically those who do not have a job in the Midwest would be motivated to move, since their only options are:

A) Remain jobless in Midwest.

B) Switch careers in Midwest.

C) Move to NJ for immediately available position.

The bigger question is why does a COBOL dev accept work for 60k when they could make 120k in Javascript?

<comment><USER9> Low salaries on offer convincingly reveal the true narrative. The question is why is the false narrative being promoted? Rather effectively at that.

</comment></comment></comment></comment><comment><USER11> Here is the official description & link to the course:

"Open Source COBOL Training – a brand new open source course designed to teach COBOL to beginners and refresh experienced professionals. IBM worked with clients and an institute of higher education to develop an in-depth COBOL Programming with VSCode course that will be available next week on the public domain at no charge to anyone. This curriculum will be made into a self- service video course with hands-on labs and tutorials available via Coursera and other learning platforms next month. The course will be available on IBM's own training platform free of charge."

[1] [https://github.com/openmainframeproject](https://github.com/openmainframeproject)

SOURCE: The full IBM press release is here:

[2] [https://newsroom.ibm.com/2020-04-09-IBM-and-Open- Mainframe-P...](https://newsroom.ibm.com/2020-04-09-IBM-and-Open-Mainframe- Project-Mobilize-to-Connect-States-with-COBOL-Skills)

<comment><USER12> I'll also add the Open Mainframe Project blog post here as well...

[https://www.openmainframeproject.org/blog/2020/04/09/open- ma...](https://www.openmainframeproject.org/blog/2020/04/09/open-mainframe- project-helps-fill-the-need-for-cobol-resources)

A few other bits to clarify things ( coming from me being Director of the Open Mainframe Project )...

\- The coursework itself is being contributed to a new open source project being hosted by Open Mainframe Project ( CC-BY-40 license ).

\- We would have liked it to be ready at the time of announcement, but it literally got approved by the Open Mainframe Project TAC as a new project about an hour before the blog post went live ;-). Have no fear, it should be landing next week ( there will be a bit of work to come on translating docx files to markdown, in case anyone wants to help ).

\- Right now the course work focused on VS Code as an editor, but the project is very open to contributions that leverage other IDEs ( such as Eclipse Che, Atom, etc )

\- Open Mainframe Project is part of the Linux Foundation, with IBM being one of the 30+ sponsoring organizations.

\- On the notes I've seen around "hey let's rewrite all that COBOL code in some modern language", I won't add more fuel to that fire ;-). I will however say there is some interesting work in a project hosted by Open Mainframe Project called Zowe ( [https://zowe.org](https://zowe.org) ), which basically makes connecting to mainframe apps and data on z/OS much easier ( think REST APIs, CLI interface you can use on your laptop, App framework for creating browser based apps, etc ).

Anyways - hope this helps! Feel free to ping me if you want more details or help getting engaged ( @jmertic on Twitter ).

</comment></comment><comment><USER13> My first serious computer job (early 1990's) was COBOL.

I last used it in 1997, then moved on to Oracle PL/SQL, Java, Oracle's Java software stacks and now iOS ObjC/Swift.

Now I'm 52 years old. I have my own apps now on the store, don't need the money but I am looking for a new challenge - something a bit more social than working for myself.

I think I'll do this COBOL refresher. Only issue is I'm in Australia but I see there may be some demand here too. Nothing to lose - plenty of time at the moment to do the courses. Good for a laugh anyway.

<comment><USER14> Serious question, why do you use COBOL and "looking for a new challenge" in the same post? I found it a trivial language with a syntax that goes on for pages. It's entirely uninteresting. The only challenge is understanding any business requirements, and that's not a language thing.

<comment><USER15> It's interesting to me that systems could be written that function correctly once they go live and don't have to be taken offline for decades... the architecture, not the language

<comment><USER13> This really, really interests me as well, and I've written my iOS apps the same way too. They have no server side, no real dependencies, all client based and fully automated internally - so as well as being fully contained they schedule required notifications etc into the future without my intervention. As long as the user runs the app once about every four months (which isn't an issue given they get many notifications during that four months) then the app will work for a very long time and bring in passive revenue. I consider this a holy grail of software.

I like pure solar powered calculators for the same reason. If you were to send one back in time it would continue to work and be useful without requiring intervention or dying.

<comment><USER16> >(which isn't an issue given they get many notifications during that four months)

I assume users can turn notifications off though? Almost nothing on my iPhone is allowed to send me notifications.

<comment><USER13> Yes, they certainly can. Apple allows any apps notifications to be switched off at the OS level - it isn't optional. My users love the notifications though, and they commonly customise to get _more_ notifications. The reason it is 4 months is because iOS only allows 64 notifications to be scheduled in advance for any app, and if they want users can configure to schedule that many in a 4 month period.

</comment></comment></comment></comment></comment></comment><comment><USER17> From the article: * State unemployment agencies are notoriously underfunded*

And there's the problem summarized in less than a single sentence. Yes, they need help, but it's the same kind of "help" as in "I want a BMW but I only have a dollar, please help"

There would be a ton more COBOL coders if companies paid the equivalent of FANG companies - I say this as a former COBOL coder myself

<comment><USER16> Leaving aside what they're willing to pay or not pay for COBOL developers, does anyone seriously believe that a bunch of developers can waltz into an old code base and speed it up by a large amount in a relevant timeframe? Which seems to be what these articles are at least implying.

<comment><USER18> The government doesn't know that. That's why they're calling it COBALT.

I honestly can't wait until all the old non tech people retire.

<comment><USER19> Do you think that new non tech people are better?

</comment></comment></comment></comment><comment><USER20> There are three main efforts in the official announcement[0]:

\- Forum for COBOL programmers to express interest in volunteering or hiring[1]

\- Forum monitored by experienced COBOL programmers to help developers[2]

\- Open source COBOL training materials from IBM[3] (Available "in the coming days")

[0]: [https://www.openmainframeproject.org/blog/2020/04/09/open- ma...](https://www.openmainframeproject.org/blog/2020/04/09/open-mainframe- project-helps-fill-the-need-for-cobol-resources)

[1]: [https://community.openmainframeproject.org/c/calling-all- cob...](https://community.openmainframeproject.org/c/calling-all-cobol- programmers/15)

[2]: [https://community.openmainframeproject.org/c/cobol- technical...](https://community.openmainframeproject.org/c/cobol-technical- questions/16)

[3]: [https://github.com/openmainframeproject](https://github.com/openmainframeproject)

<comment><USER21> I'm working in IBM (Europe) in a project that has the main business app in COBOL. Using Java and jt400.jar we just expose via web services the business. Even now we have in team COBOL programmers that creat new programs.

I find the main issue when you want to learn COBOL is the access to a machine as close to real one an not a simulator. Maybe openmaineframeproject is the missing link between learning and practice.

<comment><USER22> I agree. I have attempts to learn COBOL on a few occasions, but it's always stopped by the fact that there are, as far as I can tell, only three ways to do it without investing sometimes insurmountable amounts of money:

The first is GNU Cobol. It's quite functional for its intended purpose: To port mainframe applications to Linux. However, when writing a new application on Linux you usually want to do things like access arbitrary files (without hardcoding the filename in the source) or make network connections. It does have nice interactive screen support though.

The other option is to run MVS 3.8j in Hercules. This is a predecessor to the current z/OS which runs on mainframes today. The problem with this is that it's stuck in the 70's (which is when the last free version of MVS was released). A lot of work has been done by the community to keep it up to date, but the Cobol compiler is the language of 40 years ago, not modern Cobol.

None of the above options are really appealing unless you're like me and have a thing for messing around with stuff in their non-native environment.

The third option is: [http://mtm2019.mybluemix.net/](http://mtm2019.mybluemix.net/)

When signing up, it gives you access to a z/OS account where you have a surprising level of access. It's probably running on an emulator (it's quite slow) but it does give you access to modern software, including compilers for Cobol, C, Java etc. It also has DB2 installed.

However, the purpose of this option it to learn z/OS, not necessarily learn Cobol. And developing using the ISPF editor isn't particularly nice. They do give you ssh access to the Unix-compatibility environment though so maybe it's possible to edit files using Tramp in Emacs locally. I haven't tried that.

In any case, what is needed is a proper Cobol development environment that you can run locally on your workstation. As far as I understand, that's how Cobol developers normally work. IBM would do well by releasing such a product for free. However, I'm not having high hopes given the fact that the mainframe division seem to be actively hostile to any free software (look into the difficulty the community has to get even the smallest community-made improvements accepted by z/OS, or releasing some small tool for the MVS community).

<comment><USER23> >> They do give you ssh access to the Unix-compatibility environment though so maybe it's possible to edit files using Tramp in Emacs locally.

It's a UNIX shell. You can always use ed :)

<comment><USER22> You can actually ssh into it and use vi. That's probably the easiest way to do it. However, the edit-compile-test cycle is somewhat complicated.

You need to first edit the file, fine, you can use vi. Then you need to go into ISPF (or TSO) on a 3270 terminal to submit the batch job that compiles the code (and possible runs it). Then you need to go into SDSF to view the results of the compilation.

Back in the 70's this was an acceptable way of working, but not what a modern programmer would expect.

<comment><USER24> You can submit jobs to JES2 from USS with a shell script. Easiest way I found was to fuse-mount a working directory, edit everything with VSCode/Vim With COBOL Extensions and have two shells, one constantly reading the output data file and another for submitting job cards.

<comment><USER22> Thanks for the information. I assume actual mainframe developers do these things. But can you do that from the environment provided to me you by master the mainframe?

On the MVS 3.8j side, I can submit a job directly via the virtual card reader and then read the results directly from the printer and feed it into Emacs. That's the most efficient way to work with Hercules but you'll be stuck with a very old version of Cobol.

</comment></comment></comment></comment></comment></comment></comment><comment><USER25> Had to recruit for COBOL engineers 8 years ago. Almost impossible finding someone with less than 10 years of experience. Most were 15-20+ years of experience and about to retire. Many with COBOL experience moved to cloud tech that would never move back to COBOL that would cause them to be outdated. New people in the field seemingly only got trained because they were willing to learn it at a bank.

It's a struggle to hire these people cause there are so few people and many companies only want to hire local talent (within 20-50 miles, and don't want to do VISAs).

There's money to be made on supporting tech this old, likely more on the consulting side than becoming an internal employee.

</comment><comment><USER26> This isn't the first time the world has needed lots of new COBOL programmers to burst on a single project. I'd suggest the same solution as last time: pay people $500-$1,000 per hour on short term contracts to do so.

<comment><USER27> As a healthcare worker who also has an interest in programming - why does this comment not surprise me in HN? If a worldwide pandemic doesn't make you reflect on problems in our societal structure - that our key workers are the most poorly paid, but part of a necessary backbone of any country, and that the most over-paid workers are often the least 'key' at times like this - <USER2> I guess nothing will. But sure, the solution is just to pay programmers more money, because that is all they care about.

<comment><USER28> How will you get them otherwise? There are way more jobs than qualified developers. Why would anyone want to work on an antiquated technology stack like Cobol? By the time they get up to speed on fixing the Cobol systems, the pandemic will be over. The real solution is to think long term and rewrite all of these antiquated systems so that the next time there is an emergency it will be much simpler to find qualified developers.

<comment><USER23> >> Why would anyone want to work on an antiquated technology stack like Cobol?

Because it's actually a hell of a lot of fun. I did a year in a Cobol shop as a graduate developer at a large financial corporation. Working on a mainframe was the most fun I had on that job. And why not? You're logging on to a gigantic computer with millions of users and billions of transactions daily, with a text-based user interface that looks like it was designed by Tarn Adams. And I say that 100% as a compliment.

Seen another way, the "antiquated Cobol stack" is like a deep dive into the history of computer science and programming languages. You can see with your own eyes how stuff used to be done 50 years ago. And there is so much to learn. It's not just Cobol: there's a whole bunch of other languages like Rexx for example that is like javascript on a mainframe, or like, well, JCL which is an absolute horror to behold of course. There's a whole new operating system to learn, or three and there's a whole new computer architecture to become familiar with. How is that not absolute programmer heaven?

I mean, seriously, when I first got all the permissions and so on that I needed to work on a mainframe, I was giggling to myself like a little girl. "Really? They gave me access to all _this_?". It was like someone had given me the keys to the playground.

The job sure got a bit boring after a while, which is the reason I left, but for a few months it was just sheer tomfoolery, poking at things and finding how things worked.

>> The real solution is to think long term and rewrite all of these antiquated systems so that the next time there is an emergency it will be much simpler to find qualified developers.

That is not a sustainable solution. Fifty years from now people will be making jokes about "that antiquated Python stack" and state agencies will be ringing alarm bells for the lack of experienced young Python programmers. You can't just keep throwing out all the old code and replacing it with whatever new language is cool right now.

<comment><USER29> > Fifty years from now people will be making jokes about "that antiquated > Python stack" and state agencies will be ringing alarm bells for the lack of > experienced young Python programmers.

I wonder how many people realise Python is more than 30 years old already.

</comment></comment></comment></comment></comment><comment><USER30> This whole recent COBOL surge reminds me of a friend I had who was upset that he had a Bachelor's in Computer Science but still couldn't find a job while his friend with no college degree taught himself COBOL and got a job at a local bank.

<comment><USER31> Yeah, the devs I met with the most stable and laid back jobs are all AS400, COBOL/CICS or IBM RPG experts

<comment><USER32> That's probably because they work in isolation from newer technologies which are constantly adding business rules. Most of the mainframe work I see involves maintaining old code bases and handling batch processing.

<comment><USER33> good guess. if the rest of the organization bends over backwards to ensure that you never have to update your code to accommodate, say, more than 8 ASCII characters in a password, or hashed passwords, and the rest of the org puts their security at risk to make sure your codebase never has to change... yeah, it might be a bit laid back... :)

</comment></comment></comment></comment><comment><USER34> "Why? Because coding a percentage in COBOL would take an estimated five months."

Five months to code a percentage, or five months to add the calculation, integrate that data point with other systems (does this need to be shown as its own field on any unemployment forms or reports? etc.), test it to the point where it has been demonstrated stable enough to be included in a critical system, and then deliver this change?

I don't know the first thing about COBOL but the fact that government is (for good reasons) slow to move, the stability needed in critical things like unemployment processing, and all the other things that go into "coding a percentage", explain that timeline a hell of a lot more than what language was used.

</comment><comment><USER35> I'm sure after you finish the training you'll find all the ads looking for people with 5 years experience.

Assuming the demand for people still exists by then.

<comment><USER36> No, they need senior programmers so 10+years experience.

In the same way they ask for 10+years programming experience in Swift or Rust

</comment></comment><comment><USER37> Young COBOL specialists are being fired here and there. They can't find a job. They can't "volunteer" either they need to get paid at the end of the day.

I see Fiserv firing all their 3-6 years COBOL juniors (last in, first out.) They retain only the most expensive 15-25 years pros.

</comment><comment><USER38> Next: COBOL 30 day bootcamp with guaranteed job at the end.

<comment><USER39> I'd say yes to that in a heartbeat. Thirty days is probably not enough to someone new to programming, but to experienced programmers in various other languages it's probably enough to get the basics down and get over the "know just enough to be dangerous" hump.

If these orgs desperate for devs want to put their money where their mouth is and start a program like that, hit me up. Sure.

<comment><USER17> I'd sign up for something like that in a heartbeat.

I used to do COBOL, but the problem is that possibilities for advancement are very limited - there's far more jobs available - and promotion pathways - <USER3> a Python or Java coder than there is for a COBOL coder.

In exchange for a refresher in COBOL and a guaranteed job, yes that is a much better deal.

</comment></comment></comment><comment><USER40> Personally I would like to be paid to learn such a technology.

<comment><USER41> There are techs people would accept pay cuts to work with and there's cobol.

</comment></comment><comment><USER42> I'd imagine a lot of the problems are due to the increased volume. So that would show up as abends due to exceeding data set size definitions in JCL, VSAM, IMS or DB2 (or even IDMS and the other database technologies in use 20 - 30 years ago.)If the unemployment system is adding a covid related unemployment code then they would need someone to crawl through the code looking for where the logic needed to change in calculating benefit amount, duration of benefits and such.

</comment><comment><USER43> COBOL programs are divided into paragraphs that start with a paragraph name and have a group of statements within the paragraph. A program starts at the first paragraph and continues sequentially through multiple paragraphs until a STOP RUN statement is executed or it executes the last statement in the last paragraph. Easy peasy.

Well, not so fast. If you PERFORM a paragraph, then it's like a BASIC GOSUB statement, or "jump and store" in assembly language. Sort of like a function call, but with no local variables.

Or you can do PERFORM A THRU B to jump to paragraph A, continuing sequentially until the end of paragraph B.

Or you can do PERFORM A THRU B VARYING X FROM 1 BY 1 UNTIL C, which is sort of like a for loop.

The nasty thing about all this is that looking at a paragraph (block of code), you can't tell shit about how it gets executed. Does it fall through to the next paragraph? You can't tell: that's determined dynamically at runtime. Is it a loop? Can't tell. That's one of the things that makes large COBOL programs _really_ hard to understand.

Another fun COBOL statement is ALTER:

[https://riptutorial.com/cobol/example/19820/a-contrived- exam...](https://riptutorial.com/cobol/example/19820/a-contrived-example- using-alter)

If you think GOTO is bad, it's a walk in the park compared to the lethal combination of ALTER + GOTO. Basically, when you say GO TO A, it can go to some other place based on a previous ALTER statement. Now we're having fun!

</comment><comment><USER44> All this, Cobol programmers are in short supply and now let's train new ones, sounds like a sort of technical debt bailout.

As some have noted management has failed to look to the future and now their business has a major problem they are struggling to deal with. Same as we debate not bailing out, financially, companies that failed to plan for future disaster or catastrophies I would argue we don't bail out these companies that failed to maintain their own internal technical architectures by planning for upgrades and future maintenance.

It's akin to the BS ISPs argue about not being able to afford to maintain it upkeep their infrastructure. It's largely BS. Put less in the upper managements pocket and more in the business and all of a sudden the business works and has resiliency against unexpected events. If you don't think these "vital" banks and hospitals can't afford it then you haven't been paying attention.

</comment><comment><USER45> What other languages can we expect to see a similar surge in demand? FORTRAN? In the data analysis space my bet is on SAS

<comment><USER46> Fortran (standardized without caps for at least the last couple decades) is current to the 2018 release. I haven't come across anybody who cares or is using it. You do eventually see a lot of older code in it in symbolic and algebraic maths in the deeper code bases still because the algorithms are complex and nobody really wants to touch someone else work if it can still be wrapped in something like R or Python and is nearly as performant as C/++.

<comment><USER46> I guess the thing about Fortran, to circle back to your question, is that it isn't common in critical infrastructure.

<comment><USER47> I work at a place that writes new Fortran code today. Also c++, Python, Julia. Scientists will choose the least impedance mismatch to a library, some needed data set, or their brain.

<comment><USER46> To be sure. And I don't think that modern Fortran is overly obscure that you couldn't basically pick it up over a weekend from the language specification.

Every modern Linux distribution has a current gfortran bundled.

</comment></comment></comment></comment></comment><comment><USER48> Unemployment claims processing is something that each State does and yet each has its own unique way of handling it. This approach is followed for every multimillion dollar endeavor, building costly, redundant solutions to the same problem. This has been great for the private sector but costly for the public.

</comment><comment><USER49> It's very frustrating to me that we're even talking about these COBOL programs today. During Y2K there was suddenly a huge demand for COBOL programmers to come out of retirement and young programmers to frantically learn it. The claim I remember at the time was that those systems should have already been rewritten, but the departments were underfunded, and they were finally doing it since it was an emergency. And yet, all they did was a little hacky patch and 20 years later it's still running. So we're 40-60 years on with these pieces of software. Look for whatever hacks they made for Y2K to be biting people in the butt again in 20-40 years, and programming historians to be pulled out of universities to patch again.

</comment><comment><USER50> This month I wrote 2 Rexx stored procedures 1\. Does a db2 bind 2\. Executes any DML, DDL, DCL and selects in Db2

These stored procedures will be triggered by REST APIs & Endevor(version control). What makes me happy is, these will work for another 10+ years without any upgrades or me tinkering the code again for new version.

Well if it was any web technology or cloud application, I would be getting a mail from them saying they are going to decommission a version of language so either you need to rebuild your code only to know it fails in new version(every 2 years). Well that doesn't happen in mainframe.

</comment><comment><USER46> Do you really want to end up in a situation where you're in a position of maintaining someone else's ancient codebase? I guarantee you this is not a path to anywhere but misery.

<comment><USER51> As a freelancer who does this 2 out of 3 jobs, I can tell you is definitely fun if you like challenge as in debug for 3 hours to only realize the old coder in 80's never initialized a structure and a newer tool was used to create the modern platform. And when you come on-board for maintenance/upgrade you are not told this from nobody. So misery or challenge, depends on your point of view, but the other side of the coin is..well, the coin itself, it's huge :). You get paid handsomely.

<comment><USER46> Reportedly, there are definitely more interesting challenges. We are seeing this in academia quite frequently where the older professors have some hard worked program in BASIC from whenever and they try really hard to get someone to maintain it's existence since otherwise their efforts really do disappear. For the person taking this on it's tedious, thankless and of dubious tangible merit to the participant who should be focused on their own contemporary work.

Have the reports of high pay been confirmed, AFAIK the push now is for volunteers.

</comment></comment></comment><comment><USER52> Forget the talk about pay too high, too low. This is a way to help our neighbors who are hurting, a way to help with our skills.

A question I'll ask is, someone like me; retired from a long development career, experience in many languages but not COBOL. Could I take this course, or a similar one, and be useful to prop up a rickety code base on a volunteer basis? If yes, are any of these states allowing remote work on it?

</comment><comment><USER53> I looked out of curiosity and there are less than 10 Cobol jobs where I am (4 mln metro area, USA) seems like this is mostly marketing?

</comment><comment><USER54> I'll likely run they this course. I've always been interested in this kind of tech, I did mastering the mainframe previously

</comment><comment><USER55> The article mentions a training class but i don't see any link to it actually. Would love to see this announcement from IBM

<comment><USER56> [https://www.zdnet.com/article/ibm-open-mainframe-project- lau...](https://www.zdnet.com/article/ibm-open-mainframe-project-launch- initiative-to-help-train-cobol-coders/) seems to have more information but the course itself ([https://github.com/openmainframeproject/cobol-programming- co...](https://github.com/openmainframeproject/cobol-programming-course)) is just an empty Github repository.

edit to add [https://www.openmainframeproject.org/blog/2020/04/09/open- ma...](https://www.openmainframeproject.org/blog/2020/04/09/open-mainframe- project-helps-fill-the-need-for-cobol-resources) is the actual announcement.

<comment><USER55> Thank you for this

</comment></comment></comment><comment><USER57> Unless they are going to pay me way above my current pay to compensate for dealing with an obsoslete language and the programming practices of its era, no way.

This is a great non-monetary example of one of the biggest issues we are seeing in our time. That is, as a civilization, we have become terrible at investing in future contingencies. In the last few months, we have witnessed how our biases prevented most of us(and businesses) from building up a meaningful savings for stormy weather, and the COBOL situation is hardly different. Banks could have invested in gradually switching from older mainframes to modern ones with software built with any modern language, and they were(or should have been) in one of the best positions to do this. Instead, they said "whatever" or simply were complacent in where technology was headed, and did little or nothing.

As a society in it's current state, we need to seriously look at ourselves in the mirror.

</comment><comment><USER58> Okay so I can learn it, but can I run it? Is there a mainframe simulator out there?

</comment><comment><USER59> I would not have attended one even if I got paid for it. Why should I flush my career in toilet, sentencing myself to dig into piles of 50 y.o. crappy code. Stop riding dead horse.

</comment><comment><USER60> meanwhile, in the 24th century... [https://abstrusegoose.com/323](https://abstrusegoose.com/323)

(gonna keep posting this on all the COBOL threads haha)

</comment><comment><USER61> That's a bit like Tom Sawyer offering free fence painting.

</comment><comment><USER62> Let it die

</comment><comment><USER63> The site is horrendous with ads

</comment><comment><USER64> I don't want to sound condescending but why can't these systems be rewritten in a modern language? Now is obviously not the right time to do this; I am wondering are there technical limitations to do his?

<comment><USER65> Here's some simple COBOL code:

[http://www.csis.ul.ie/cobol/examples/Conditn/Conditions.htm](http://www.csis.ul.ie/cobol/examples/Conditn/Conditions.htm)

        identification division.
        program-id. letters.
        data division.
        working-storage section.
        01  Char               PIC X.
            88 Vowel           VALUE "a", "e", "i", "o", "u".
            88 Consonant       VALUE "b", "c", "d", "f", "g", "h"
                                     "j" THRU "n", "p" THRU "t", "v" THRU "z".
            88 Digit           VALUE "0" THRU "9".
            88 ValidCharacter  VALUE "a" THRU "z", "0" THRU "9".
        procedure division.
        begin.
            display "Enter lower-case character or digit. No data ends.".
            accept Char.
            perform until not ValidCharacter
                evaluate true
                    when Vowel display "The letter " Char " is a vowel."
                    when Consonant display "The letter " Char " is a consonant."
                    when Digit display Char " is a digit."
                    when other display "problems found"
                end-evaluate
            accept Char
            end-perform
            stop run.

(I removed some chaff which GnuCOBOL doesn't need and fixed an apparent bug.)

So... where is it actually testing what kind of character you input? Where is the code for that? You input a specification for what a Vowel is, for example, and you write explicit code for what to do when a Vowel is input, but where is the code which goes through the specification and decides, yep, that's a Vowel?

COBOL is kind of an odd language. It's verbose in some respects and quite concise in others. Rewriting COBOL into something else would take actual human effort if you wanted the "something else" to look like code a human wrote, as opposed to the intermediate pass of an optimizing compiler, which is what the C GnuCOBOL can output looks like. Re-writing the COBOL might be the best move in some cases, or replacing it with entirely new code, but it isn't something you'd be able to do "for free" in any sense, especially with regards to time.

<comment><USER23> "when Vowel" is not very different to bog standard switch-statement magic. Actually in this case it looks like Cobol is almost doing a kind of pattern matching. Which is cool. Although (my Cobol is a bit rusty) I think there might be a more elaborate way to write "when Vowel" that hides less of the actual process? Not sure.

Cobol is really not such a bad language. It's just got a lot of ...ceremony. All those forced divisions and sections. But that's a feature: in the olden days, structured programming was a big thing. And an experienced Cobol programmer can take a quick look at a big Cobol file and find where everything is in a blink.

<comment><USER66> Java similarly imposes a lot of structure that allows you to more easily find where everything is, but the trade-off is that there is _a lot more_ of this everything to find, whereas in a more flexible language you would have less code to read through and therefore less need for organizing it.</comment></comment></comment></comment>


Run any Linux application natively on Windows (Vista and 7) without Cygwin - <AUTHOR> http://www.informationweek.com/news/showArticle.jhtml?articleID=192503618 <comment><USER2> _Run any Linux application natively on Windows_

Sure except for anything that uses dbus, X, pam, framebuffer, sound, usb, /proc, CUPS etc. etc.

POSIX is a useful standard but it's a porting tool not a no effort port. Services for Unix Applications (SUA) will reduce the time it takes to get something up and running but only the most generic of applications will compile out of the box.

</comment><comment><USER3> At work we developed a tool once to run Linux programs on Windows, but it took a different approach. Basically it was an application that you could point at a Linux binary. It would allocate memory in the application's space, load the Linux binary in that, and start running it. It would trap attempts by the Linux application to do system calls and service them.

This was in the early 2000s. Using it, I was able to take most of the RPMs from whatever desktop version of Red Hat was current then and load them onto a Windows system, and most of them worked (assuming I had a Windows X server available). Bash, vim, and most of the usual command line tools worked, as did things like GIMP, major GUI email and web clients, and the like.

We tried a couple approaches to dealing with case sensitive vs case insensitive file systems. One was to just ignore it--that actually turned out to work quite well. In a normal Red Had desktop install, I think I only ran into one thing that had trouble and it was easy to work around (the two conflicting files turned out to have the same contents, and were read-only).

I don't remember how fork was implemented.

We looked at making this into a product, but we never found a good niche for it. Then, reviewing code that we got from some contractors we had outsources to for some of the implementation, I found that they had copied some from the Linux kernel (they were supposed to just use it for a reference if they needed to figure out what something did). Since other parts of it were written under the assumption that it would NOT be a GPLed product, and had used commercial code not compatible with GPL, that pretty much killed the chance we'd ever revive the thing.

<comment><USER4> Sounds similar to 'Line'. From the wayback machine (current website seems to be gone):

[http://web.archive.org/web/20021125163113/http://line.source...](http://web.archive.org/web/20021125163113/http://line.sourceforge.net/)

Sourceforge project still exists: <http://sourceforge.net/projects/line/>

</comment></comment><comment><USER5> Article is from 2006. SFU was officially dropped by Microsoft circa 2009. Last version I could find doesn't even list Vista/7 as supported OSes. WTH?

<comment><USER6> It's mentioned in the article: "Microsoft is transitioning the product line again, integrating it directly into Windows, with the Posix component being renamed to Subsystem for Unix Applications (SUA)."

It's included in Windows 7 Ultimate and Enterprise editions, you can enable it from "Windows Features" dialog.

</comment></comment><comment><USER7> "Want to run best-of-breed apps under both Windows and Unix?" should be more like "want to run best-of-breed apps under a not so best-of-breed OS?"

Now, more seriously, faced with unsupported hardware I have to use, I think I would prefer to run a Linux virtual machine inside the Windows server and take time to get ready for the day when the server hardware is well supported and then migrate the VM to the bare hardware. It will take a performance hit, of course, but only a temporary one.

And, after that, it would look like a new hardware upgrade.

And, also, I bet it would be much less work.

</comment><comment><USER8> One page - [http://www.informationweek.com/shared/printableArticle.jhtml...](http://www.informationweek.com/shared/printableArticle.jhtml?articleID=192503618)

</comment><comment><USER9> Quite a misleading headline: SFU/SUA doesn't allow one to run native Linux binaries on Windows, which would require emulating Linux's syscall interface, libc, dynamic linker, etc. It allows one to port (i.e. recompile) POSIX- compliant applications. Linux (as the term is popularly used) is a significantly-larger superset of the interfaces and utilities specified by POSIX.

</comment><comment><USER10> From what I read, you can get Debian and Gentoo system running with this.

<http://www.gentoo-wiki.info/HOWTO_Gentoo_on_WINDOWS>

<http://www.debian-interix.net/>

Would love to try get Gentoo but MSDNAA offers Professional rather than Ultimate.

</comment><comment><USER11> How is this different from Cygwin? Cygwin's software repositories are free so it seems superior, at least in that respect. Everything else the article describes sounds exactly like Cygwin.

<comment><AUTHOR> This approach is higher performance, officially supported by Microsoft and comes with all Ultimate Vista/7 installations. Cygwin runs as a user-mode app that emulates the POSIX environment using the underlying Windows APIs. SUA is an integrated subsystem that is on the same level in the kernel stack as the Windows subsystem (that's being used by every Windows app out there). By being so close to the kernel, SUA is able to use undocumented APIs within the kernel to achieve greater performance than Cygwin.

<comment><USER12> As far as I'm aware, Interix (SUA) uses _no_ undocumented interfaces. The kernel subsystem interfaces are actually quite nicely documented; I was working on a Darwin subsystem for a while, using SUA as a nice reference ("along with Windows Internals"), and it's really quite nice.</comment></comment></comment>


Ask HN: What income sources can a developer create outside of work/freelancing? - <AUTHOR>

I know that as a developer I can work for a company (which I am) and freelance (which I'm hesitant to take on), but what non-traditional sources of income could I create? I know teaching is one and making an app is another, but are there other more obscure ones most developers don't consider? Could you share examples you as a developer have done? <comment><USER2> 1\. Make Udemy courses (and sell elsewhere also). There are lots of topics which still don't have good courses on Udemy, even though they claim to have tens of thousands of courses. Example: [http://www.businessinsider.com/rob- percival-online-coding-co...](http://www.businessinsider.com/rob-percival- online-coding-courses-2015-2)

2\. Other forms of content - like eBooks. If you can write about a technical topic or a business topic, there is money in it. example: [http://nathanbarry.com/samuel-hulick-37000-self-published- bo...](http://nathanbarry.com/samuel-hulick-37000-self-published-book/)

3\. Mobile apps - don't know much about it. This seems to be a hit or miss thing

4\. Affiliate sites using various affiliate programs like Amazon, eBay etc.

5\. Teach in person - this is awesome if you can pull it off. I've seen people do a weekend course and make 5k or more depending on the topic.

These are some interesting resources that I've recently started following:

[http://www.sidehustlenation.com/side-hustle- show/](http://www.sidehustlenation.com/side-hustle-show/)

[http://www.smartpassiveincome.com/category/podcast/](http://www.smartpassiveincome.com/category/podcast/)

But the best is probably to build a SaaS application. Hard part is finding a need :( Here is a beautiful example [https://blog.pinboard.in/2014/07/pinboard_turns_five/](https://blog.pinboard.in/2014/07/pinboard_turns_five/) ($200K per year with bookmarking site).

</comment><comment><USER3> I don't know if you would consider it "income", but in the spirit of hacking I am an active travel hacker and have accumulated millions of miles and points over the past 3 years or so through a combination of credit card bonuses, strategic spending, and "manufactured spending."

I consider miles a valuable currency at this point in my life because I would otherwise spend a lot of real money on personal travel. I can't remember the last time I paid for a flight and can easily accumulate dozens of free hotel nights a year.

Worth looking into if you value travel.

<comment><AUTHOR> Thanks for the info, this is something I've always wanted to learn a bit more about, would appreciate any resources you could point me to.

<comment><USER3> Flyertalk.com has a very active manufactured spending forum. I'd start there.

</comment></comment></comment><comment><USER4> Free apps with ads on iOS or android. Consulting- similar to freelancing without needing to build or maintain anything but relationships, can consist of advising people on what solutions exist and then refusing to implement them.

Rental property and the classical passive income routes like dividend bearing stocks or stuff like lendingclub.com.

You could get a real estate license and sell real estate. You're a normal person, you have normal person options outside of work/freelancing.

Specifically for development, you could also learn enough patent law to go for relevant patents but that'll probably cost more than it earns.

You could offer your services to another company to help them hire developers. Review their code and design interviews and such. But those are pretty much all varieties of 'freelance,' so it depends on what about 'freelance' work you're hesitant to take on.

</comment><comment><USER5> I write about interviews and have made $2 to $100 every month. I plan on writing about other subjects and maybe doing youtube solution to interview questions. [http://kelukelu.me/interview/](http://kelukelu.me/interview/)

I sold art through redbubble. I've made around a whole dollar. But at least my art skills are getting much, much better. [http://www.redbubble.com/people/kelukelu?ref=account-nav- dro...](http://www.redbubble.com/people/kelukelu?ref=account-nav-dropdown)

The goal of both is to improve my writing and drawing, but it's nice when people decide to support me. :)

If I were more serious then I'd buy rental property.

<comment><AUTHOR> Very interesting! How exactly does writing about interviews get you the income? Is it ads, affiliate links, etc?

<comment><USER5> Hi, it is all from affiliated linked to Amazon for interview related material.

</comment></comment></comment><comment><USER6> Put 20% of your salary into an ETF. Check back in 5 years time.

Alternatively, write an ebook.</comment>


Start Your Own Business as an Amazon Delivery Service Partner - happy-go-lucky https://logistics.amazon.com/ <comment><AUTHOR> Do NOT search for how Amazon is reported to treat employees and contractors.</comment>


Ask HN: What is the best rating system? - <AUTHOR>

Bonjournal is a journaling app that helps you document and share your travels.
https://bonjourn.al
We are thinking of adding a rating system so that users can rate the places they visit. Think journaling meets Yelp / Foursquare.
Obviously no rating system is going to be perfect. Yelp uses the five star system. Foursquare uses a 10 point scale. We are leaning toward letter grades.
Why I like letter grades:
1) Precision: A, A-, A-/B+, B+ 2) Less ambiguous: I have a strong understanding of what a B vs a B+ means...not so much with 6.5 vs 7 or 3.5 stars vs 4. Perhaps that is just me. 3) Widely adopted: http://en.wikipedia.org/wiki/Grading_systems_by_country
However, we're not 100% sold, and wanted to ask the HN community.
* What rating system do you prefer and why? *
Some references:
http://techcrunch.com/2009/09/22/youtube-comes-to-a-5-star-realization-its-… http://www.quora.com/Is-there-a-better-alternative-to-the-5-star-rating-sys… https://www.quora.com/How-reliable-is-the-100-point-scoring-system-for-choo… <comment><USER2> Shannon Appelcline has a great overview of rating, ranking, and other systems in the article series "Collective Choice": [http://www.skotos.net/articles/TTnT_/TTnT_178.phtml](http://www.skotos.net/articles/TTnT_/TTnT_178.phtml) . The key points are that most people want to be nice so you'll have far more activity in the top half of the ratings (3-5 for 5 stars, 6-10 for 10 stars); explicitly describing what each level means makes people more accurate; and instead of using a simple average you should weight it towards the site average to prevent items with few ratings from being misrepresented (e.g. an item with one 5-star rating is not the best ever).

</comment><comment><USER3> Whatever scale you use, this article has good advice on how to compute each item's total score for sorting purposes:

[http://www.evanmiller.org/how-not-to-sort-by-average- rating....](http://www.evanmiller.org/how-not-to-sort-by-average-rating.html)

<comment><AUTHOR> Thanks. This is a great find.

</comment></comment><comment><USER4> aside: I was going to refer the goodfilms blog post[1] but decided to check quora first (I've stopped using it because of their login/read only first answer) and there it was! (and it appears that quora has removed the gating)

Also, can you make your references clickable?

[1] [http://goodfil.ms/blog/posts/2011/10/07/a-better-way-to- rate...](http://goodfil.ms/blog/posts/2011/10/07/a-better-way-to-rate-films)

</comment><comment><USER5> I think it would be better to ask the user to compare a place against a few others he has visited and use that to automatically compute a rating. But thats not as usable.

Another option would be to ask him to fill in a few questions.Then compute the rating using that.

</comment><comment><USER6> Building Web Reputation Systems:

[http://shop.oreilly.com/product/9780596159801.do](http://shop.oreilly.com/product/9780596159801.do)

</comment><comment><USER7> I like how Amazon does it, with stars and comments. That way you can look at the stars given and then add in the grain of salt by the quality of the associated comment.

<comment><USER8> Amazon also gives (or used to give) you a helpful tooltip of what they want each star to mean. I think they were: I love, I like it, It's okay, I don't like it, I hate it. I've started using it for 5-point scales and a with a slight adjustment for 10-point scales. If I would say one of those things about an item that is the rating I give.

Another good thing about Amazon's ratings is that you can see a breakdown of points. A 3-star item with 20 3-star reviews is likely to be quite different to an item with 10 1-star and 10 5-star reviews.

Although if I was a "professional" doing reviews, I would probably use a grade system of A-C and F.

</comment></comment><comment><USER9> I actually like 5 star rating system for simplicity with an added ability to rate at 1/2 star intervals if wanted to.</comment>


Culture Clash - <AUTHOR> http://techcrunch.com/2012/08/19/culture-clash/

<comment><USER2> She of course is "putting more emphasis on colleges, grades and testing for hires". Because that makes so much difference.</comment>


700,000-Year-Old Horse Found in Yukon Permafrost Yields Oldest DNA Ever Decoded - <AUTHOR> http://westerndigs.org/700000-year-old-horse-found-in-yukon-permafrost-yields-oldest-dna-ever-decoded/ <comment><USER2> I love seeing modern 2-legged dinosaur depictions with feathers. I wondered why, growing up, everyone didn't see that they were just giant birds with teeth and weird little arms.

<comment><USER3> When I was growing up, I thought crocodiles were the closest thing to dinosaurs. I'm fairly sure that's what I was taught in school. Then came all the drawings of dinosaurs with feathers and my mind was blown when I read that birds are actually more closely related to dinosaurs than crocodiles are.

</comment></comment><comment><USER4> > the half-life of a DNA molecule is estimated to be about 521 years. By this > reckoning, even under the best conditions, DNA could remain intact for no > more than 6.8 million years.

I just love how they skip inferences...

<comment><USER5> If its an exponential decay process, as it supposedly is, then its more of a statistical game where the median helix would have cracked into 1 base pair at 6.8Myr.

That would really suck if you only had one single helix to work with. However I'd think theoretically given an infinite amount of genetic data (unlikely) you could analyze every molecule in the sample separately and then put it back together.

There's a radiation analogy... if you've got a speck of Co-60 of a certain almost infinitely small size, its not too hard to do the math to prove that after 1M years theres less than one atom left of Co-60. Say you want a 1 Kg pile of Co-60 thats 1M years old. Yes, indeed, it is very true that if you start with exactly and only one speck of Co-60 the odds exceed 50% chance that there will be less than one atom left. The solution is simple, start with a bigger piece than an infinitely small speck and use a lot more than one speck.

This isn't a silver bullet, being exponential, if I were not so lazy I could work out that if you wanted the DNA from the first known life on the planet, you'd need a multiple of the entire mass of the universe as a starting sample size or something crazy like that.

Just saying if you want 6.80001 Myr DNA its not impossible its just going to be a huge expensive PITA compared to existing techniques for stuff merely 100 years old.

The guy who divided 6.8e6/521 I think is trying to tell you how many base pairs long an average DNA helix probably would be, I think, sorta? So the average 1/2 life of a base pair is 521 years, and half of an entire helix is 6.8M years.

<comment><USER6> "Just saying if you want 6.80001 Myr DNA its not impossible its just going to be a huge expensive PITA compared to existing techniques for stuff merely 100 years old."

That's kind of an interesting problem. I wonder how much material you'd need to get decent coverage of a averaged sized organism (few gigabases) given the decay rates they calculated.

</comment></comment></comment><comment><USER7> Where can I read more about "Single Molecular Sequencing", looks very interesting..

<comment><USER8> Based on the sequencing read archives for that publication[1], it looks like they used Helicos[2]. PacBio[3] is another form of it.

[1] [http://www.ncbi.nlm.nih.gov/sra?LinkName=pubmed_sra&from_uid...](http://www.ncbi.nlm.nih.gov/sra?LinkName=pubmed_sra&from_uid=23803765)

[2] [http://en.wikipedia.org/wiki/Helicos_single_molecule_fluores...](http://en.wikipedia.org/wiki/Helicos_single_molecule_fluorescent_sequencing)

[3] [http://en.wikipedia.org/wiki/Single_molecule_real_time_seque...](http://en.wikipedia.org/wiki/Single_molecule_real_time_sequencing)

<comment><USER6> The Helicos stuff would have to be pretty old, they've been effectively out of business for some time (having filed for bankruptcy in 2012).

The paper suggests they mostly used Illumina, with one guy using Helicos:

"J.S. did ancient and modern DNA extractions and constructed Illumina DNA libraries for shotgun sequencing"..."X.W. did Illumina libraries on donkey extracts"..."A.S.-O. performed Illumina sequencing for the Middle Pleistocene".."Ji.M. and X.W. performed Illumina sequencing for the Middle Pleistocene and the donkey genomes at BGI".."J.F.T. headed true Single DNA Molecule Sequencing of the Middle Pleistocene genome"

It's worth noting that while Illumina sequencing isn't true single molecule, you are getting a read signal from a single fragment of DNA.</comment></comment></comment>


Gear VR: Today's best virtual reality - <AUTHOR> http://arstechnica.com/gaming/2015/01/gear-vr-for-todays-best-virtual-reality-strap-a-phone-to-your-face/

<comment><USER2> I'm really wondering why Samsung would want to rush with this product to the markets, and more specifically why Oculus would want to agree to this. I mean, the Oculus hardware is still under development, the SDK is under development, and consumer software is just getting into grips what it is to develop for the VR platform.

Probably a deal between Oculus and Samsung, as Samsung is their display provider, in order for Samsung to continue providing them displays and other hardware ?

What I've heard (from CCP Games, developer of Eve Online for the Oculus, primary developer for Oculus) Oculus is focusing on making the best possible product, so it doesn't make any sense to publish what is in sense a beefed up DK2 to the public, other than that it was part of their Samsung deal.

I'm excited about VR, but I'm not at all excited about the Gear VR, there is no killer application yet even and it's just meh, pretty cool for maybe watching movies and such 3D -content, but what I hear the battery life is pretty poor too, and it's gonna be pretty obsolete once the consumer version of Oculus Rift comes out ..

Anybody have any more insight into this ?

<comment><USER3> I've been following this stuff fairly closely:

This is rooted in a deal between Samsung and Oculus. The DK2's screen is literally Galaxy Note 3 screen. The screen is a critical part of virtual reality, so a good partner already in the space is a major win. At the same time, Samsung wanted to get into this space with a Gear VR like device. Samsung already had some work done on it before showing it to Oculus. I'm not sure who approached who (I think it was Oculus to Samsung about the screen and Samsung replying that they would like help with the Gear VR.) This was also when John Carmack got involved, and has been the chief person responsible for getting the intensive software requirements to work on a mobile device.

As for why now? You gotta start shipping eventually. The current Gear VR is labeled as an "innovator edition", which a way of saying it's a dev kit without actually saying that. I'm guessing the Gear VR system will be attached to the update cycle of the Gear line of phones.

As for Gear VR vs Oculus CV1, the CV1 will be better in almost all aspects. However, you can't say use it to watch a movie on a plane ride.</comment></comment>


Hilariously Bad Web Design - <AUTHOR> http://havenworks.com/

<comment><USER2> Their JavaScript is y2k compatible...seriously, view the source for yourself.

        function y2k(number) { return (number < 1000) ? number + 1900 : number; }

</comment><comment><USER3> My eyeballs just killed themselves, and now my soul aches.

</comment><comment><USER4> wow. just wow.

</comment><comment><USER5> I think everyone in the office just had a good laugh.

They are missing blinking bright vivid colors.</comment>


[Objective] C++: What Could Possibly Go Wrong? - <AUTHOR> https://realm.io/news/altconf-peter-steinberger-objective-c++-what-could-possibly-go-wrong/ <comment><USER2> A lot of good points about the language. I use Objective-C++ too, and it has been very convenient even before Clang came along.

One problem though (which I found years ago but I believe is still true): Objective-C exceptions did _not_ properly call C++ destructors. This can hose RAII objects when an NSException shows up unexpectedly. The work-around I found was to essentially add a "@catch" in key areas and manually tear down key objects but I never found a perfect solution.</comment>


[INFO] New LinkedIn Privacy Policy - <AUTHOR> http://www.chriscolotti.us/technology/info-new-linkedin-privacy-policy/ <comment><USER2> Just checked my account and I was opted out. I don't know if this is an old entry, there was no date on the page, and perhaps I'd already previously opted-out?</comment>


PayPal Redesign - <AUTHOR> http://bruceackerman.com/paypal-redesign/ <comment><USER2> Just a quick usability issue I noticed: The numbers in the Gross (Amount?) column are only differentiated by their color. Red-green colorblindness is pretty common, so it may be hard for colorblind users to distinguish between the two. Adding a minus sign before negative amounts would probably help a lot for them.

<comment><USER3> So true, I am red-green colorblind and I didn't notice the difference until I read your comment, they look almost the same to me.

</comment></comment><comment><USER4> Paypal has one of the most broken UIs I've ever seen. Not only is it horribly dated it is completely inconsistent across all of their portals. As a web payments pro member, developer, standard user there is a huge break down in consistency. The developer portal, paypal manager, standard portal, and home page all look totally different. The standard portal I can rarely find the setting I need without searching online.

Having relied on paypal to ship packages (do you sell on ebay?) it is amazing there is no button to just make a shipping label (without getting money from a specific person). You can do it, you just need to know the hidden URL (why is it hidden?).

<comment><USER5> I think it's because they expect you to follow the happy path, which is sell item, then collect payment, then ship. Shipping something without having a matching, paid-for transaction isn't a typical user path.

(disclaimer, I work for eBay inc, but not on the teams that decide that stuff. This is my personal opinion.)

<comment><USER4> I agree, but a button or link somewhere (anywhere) would be nice. Instead I have to google to find out how to do it. I've bookmarked it now ;) (I believe it is /shipnow)

</comment></comment></comment><comment><USER6> Not to be too harsh, but the final design looks like a rushed Bootstrap prototype. I like many of the decisions made and agree with others here who think the navigation needs some love, but it just feels like every other flat, blue site I've seen.

</comment><comment><USER7> Chrome says this is a reported phishing page.

<comment><USER8> It's for the favicon of all things: [http://bruceackerman.com/paypal- redesign/img/favicon.ico](http://bruceackerman.com/paypal- redesign/img/favicon.ico)

Holy cow, Google, this is pretty good for automatic protection. It looks like Google sees that the guy is hosting the Paypal favicon (or something very close to it)... why would any legit site do that? Even the redesign doesn't need to show the Paypal favicon. So Google errs on the side of caution.

Wow, that is really cool. Good job Google!

For comparison, the actual Paypal favicon: [https://www.paypalobjects.com/en_US/i/icon/pp_favicon_x.ico](https://www.paypalobjects.com/en_US/i/icon/pp_favicon_x.ico)

</comment></comment><comment><USER3> Nice redesign, I often wonder why many successful companies neglect the aspect of their websites. Take IMDb for example, it has a dated design and it could be made more useful and accessible. Is it a technology problem (UI closely tied to the backend, very broad scope) or there's another reason?

<comment><USER9> My experience with this has been an aversion to disturb the existing user-base (and normally within organizations with deep-seated users). A lot of sites where you'd _previously_ seen this type of reluctance (IMDb, eBay / PayPal, Craigslist, Amazon, Google) seem to be some of the older sites on the top end of the internet spectrum. However, luckily that attitude seems to be shifting (to varying degrees from incremental fixes on Craigslist to broad changes with Google products). In some cases, there are certainly technological constraints but I've never seen anything that seems entirely insurmountable.

</comment></comment><comment><USER10> I'd settle for not having to click through three screens of "yes I'm sure" and opt-in doublespeak every time I want to "really, really, I promise you" use my credit card.

<comment><USER11> I'd just like to see more than 20 transactions at a time. I'm sure the sheer number of table rows isn't the reason it takes 6-10s to load the page! (Kudos to OP for mentioning the endless scroll.)

</comment></comment><comment><USER12> My PP homepage and Bruce's PP homepage look really different — it almost looks like PP went through a redesign process while he were doing his redesign, and came to similar conclusions!

<comment><USER13> Yes, they're rolling out a new design right now. I have to say it's much better than before!

</comment></comment><comment><USER14> My issue with the PayPal dashboard is not that I can't get the information I need quickly.

My issue that I can't quickly get to where I need to go to do some specific task.

I already know my account balance and transactions from things like Xero, and when I login to PayPal it is to:

1) Manage user subscriptions

2) Withdraw money

3) Manage the API and callbacks

And I'm sure that other people doing the same.

The thing begging for a re-design at PayPal is their entire navigation and menu system.

It's so damn hard to find the right page to do the thing you want to do, and that's the problem.

<comment><USER15> I have a similar usage pattern. My issue is that it is so slow. I agree, it is a confusing, but that wouldn't be a problem if it didn't take 30 seconds between clicks to see if you clicked the right thing.

The first thing I would implement is a search that accepts most things like a profile_id, transaction id, or email, and returns results within a few seconds. Right now it is about 13 clicks, and 30 second wait only to find out you didn't select the right combination of option buttons. The system is awful when you have a customer on the phone and are trying to figure out what is going on.

</comment></comment><comment><USER16> Don't like the new design. And what the fuck is "retina design"? Can we stop making up new stupid ways to describe stuff.

<comment><USER17> Design with images that are retina display ready.

</comment></comment><comment><USER18> I'd reduce the size of the "hero banner" (is that what the large dark blue section is called?). It totally dominates the page and is hugely distracting. I'm more interested in my activity than I am in money saving tips. If that was 1/3 the size then I could warm up to it.

</comment><comment><USER19> This reminds me of the PayPal mobile application, both in terms of organization and information priority. Both this concept and the mobile app headline account balance, simplify actions to four items, and allow the transaction log to make up the body of the content.

Look-and-feel aside, I think this concept aligns with the intent to bring parity between the mobile experience and desktop. I do worry, however, that the use cases for the desktop application may differ (particularly for bigger sellers) from the mobile, and this flow may fall apart for them.

</comment><comment><USER20> This would be such a beautiful website for such a terrible company.

</comment><comment><USER21> As a matter of fact, Paypal is beta testing a new design - I accepted it for one of my accounts (strangely, it's one that I use very little) and it looks quite nice.

It's not as modern as the design proposed by Bruce, but it's better than before, easier access to everything, easier to view transactions (though still limited by how far back you can go), easier to manage invoices.

I'm guessing the final version will be quite good.

</comment><comment><USER22> My problem with PayPal isn't the ux, but their archaic process' and how they between eBay and PayPal have literally fee'd me to death.. I quit using heir service and had them cancel my accounts awhile back.. Adapt or die, I prefer paying for things on the net with bitcoin.

</comment><comment><USER17> Why is the 'Search for transactions' field so far away from the list of recent transactions?

</comment><comment><USER23> The paypal screens all changed for me the otherday when I was paying through it. I had to stop for a second and check it wasn't just a bad phising site, payment sites changing makes me lose trust in them :s

</comment><comment><USER24> Is there a reason that they didn't use the HTML5 placeholder attribute for their input fields?

Maybe I'm a little OCD, but it bugs me when I'm able to select the word "Password" in password boxes.

</comment><comment><USER25> I like the design. I'm particularly fond of large, thin typefaces.

</comment><comment><USER26> Paypal's redesign sucks. I use to just go back to the old design when ever it gave me the option to do so. Now it seem even the option to use the old design is gone.

</comment><comment><USER27> Can copyright law actually allow PayPal or another company to sue people who try to post such "redesigns"?

I doubt it, but just wanted to make sure.

<comment><USER28> If Paypal wanted to be shitty about it, they could file a DMCA notice against the host or bring up trademark infringement.

Most companies wouldn't, as these sorts of redesigns are done in good faith. There's always that one company though.

<comment><USER27> I wonder if it would hold up in court. It seems like this is fair use... but of course fair use is up to the courts...

<comment><USER28> Most of the time, it doesn't have to hold up in court.

[http://www.chillingeffects.org/](http://www.chillingeffects.org/)

</comment></comment></comment></comment><comment><USER29> The paypal redesign I want is where they stop showing splash ads while they take 3% of transactions for doing nothing.

</comment><comment><USER30> They should hire you.

</comment><comment><USER31> Hopefully, this gets someone fired too.

</comment><comment><USER32> It will accept Bitcoin?</comment>


Fortran for Speed, Python for Comfort - <AUTHOR> http://fwrap.sourceforge.net/

<comment><USER2> What distinguishes this from F2PY?

<http://www.scipy.org/F2py></comment>


Favorite Keyboard for Coding? - <AUTHOR> What is your favorite keyboard for coding? <comment><USER2> I use the Microsoft Sculpt Ergonomic Keyboard.

[https://www.microsoft.com/accessories/en- us/business/sculpt-...](https://www.microsoft.com/accessories/en- us/business/sculpt-ergonomic-keyboard-for-business/5kv-00001)

It feels the way I want it, has the natural type shape that feels good to me. I've worn out one keyboard and replaced it and I have one for home and one for work.

The only downside is that it only comes in wireless and the wireless for it can be a bit ... weird at times and I have to unplug and re-plug in the dongle to make it work. I wish there was a wired version.

I'd love to try out some of the other fancier keyboards but the upfront prices scare me off as I'd have to get one for work too and that just doubles the price too...</comment>


'Plain old untrendy troubles and emotions' (2008) - <AUTHOR> https://www.theguardian.com/books/2008/sep/20/fiction <comment><USER2> He was a great talent, I wish he had found a way to make it to 50 without (proverbially) shooting himself.</comment>


Resetting passwords to keep your files safe - <AUTHOR> https://blogs.dropbox.com/dropbox/2016/08/resetting-passwords-to-keep-your-files-safe/ <comment><USER2> This is a very non-standard and unique thing Dropbox has done. Dropbox's concerns for their users are:

1\. legacy accounts with bad passwords

2\. people who used bad passwords then and have not changed it

The people who are helped are people who had bad password hygiene and now have good password hygiene.

What it doesn't fix is people's legacy accounts who don't log in anymore. In my opinion it would be far more helpful to:

1\. lock accounts that have not been logged in for a long time.

2\. push users in the right direction who still do log in by analyzing password complexity etc.

That way you don't punish people with great 34 character passwords.</comment>


Running your own secure communication service with Matrix and Jitsi - <AUTHOR> https://matrix.org/blog/2020/04/06/running-your-own-secure-communication-service-with-matrix-and-jitsi <comment><USER2> Thanks to your video I've got my server running in no time. But in the end you end up with a jitsi installation that is public and can be used by any visitor without login. Is that by design? Seems a bit odd. Wouldn't that create a burden on my server if everyone would start using that jitsi to host video conferences for free?

</comment><comment><USER3> Thanks for the video & the article. I followed the steps in NixOS and blogged about it here - [https://kaushikc.org/posts/matrix-jitsi- nixos.html](https://kaushikc.org/posts/matrix-jitsi-nixos.html)

</comment><comment><USER4> The article describes how to add your own Jitsi server to your self hosted Riot. But does this affect my desktop and mobile clients as well? And how do I set up my own Jitsi server when I use only the mobile and desktop apps from Riot?

<comment><AUTHOR> We're currently updating the mobile & Desktop apps to be able to use self- hosted Jitsi properly - sadly it hasn't landed yet :(

<comment><AUTHOR> Desktop support is now in PR: [https://github.com/matrix-org/matrix-react- sdk/pull/4348](https://github.com/matrix-org/matrix-react-sdk/pull/4348)

</comment></comment></comment><comment><USER5> Hello There! I've installed matrix and it's great, but it's there any way to set up jitsi authentication with synapse?

And by that I mean using the same user that we created on synpase (I know jitsi can auth against prosody but that would require us to create 2 users in two places everytime you need a new account).

Also, are there any plans for an admin dashboard or something like it?

</comment><comment><USER6> First of all congratulations on the article, very interesting and instructive. My question is the following, I use Proxmox, which has ports 80/443 open to its private IP.

When I want to do the tutorial, I cannot perform the certificates, since, in my case, I have a Nginx proxy reverse, it can help me in what should be my configuration, thanks.

</comment><comment><USER7> Jitsi can be configured to support authentication with JWT. Is it possible to generate JWT token in Synapse?

</comment><comment><USER8> Gotta win the speedrun with NixOS!</comment>


Seeing things: Researchers teach computers to recognize objects - <AUTHOR> http://www.physorg.com/news174646349.html <comment><AUTHOR> Anyone know how to get the paper for this? It sounds really interesting. Is it really new?

Also I just finished reading "On Intelligence" by Hawkins. This really reminds me of how he thinks the brain works: looking at things in a sequence and predicting what comes next.</comment>


The History of Python: Python's Design Philosophy - <AUTHOR> http://python-history.blogspot.com/2009/01/pythons-design-philosophy.html <comment><USER2> This quote caught my eye:

The ABC group strived for perfection. For example, they used tree-based data structure algorithms that were proven to be optimal for asymptotically large collections (but were not so great for small collections).

That seems like a common thread in my own experience. It's too easy when you start a project to over-engineer to meet some imaginary future need for scale. Fix it later, and 2^32 is big enough for most things :P.

<comment><USER3> Complexity is always easier to design and with CS, it is easy to get away with as computers make it easy to hide from the end user.</comment></comment>


Applied Thinking for Intelligence Analysis: A Guide for Practitioners (2014) [pdf] - <AUTHOR> http://airpower.airforce.gov.au/APDC/media/PDF-Files/Air%20Force%20Publications/AF13-Applied-Thinking-for-Intelligence-Analysis.pdf <comment><USER2> Interesting. Chapter 5, on "Knowledge, Information, and Evidence" is probably the most useful.

There are two things I looked for there and did not see. These are standard issues in intelligence analysis.

1\. Duplicate confirmations. If you have two reports which agree, are they from different sources, or from the same source via different paths? If the latter, it's not a confirmation.

2\. The difference between noise and deception. Some information is noisy, and statistical methods for filtering may help extract signal from noise. Some information is deliberately deceptive, and noise filtering will not help. The average will still be biased.

We've reached the point in politics where you need to know this just to read news.

The paper does mention the strong human tendency (all the higher mammals, really) to see patterns in noise. This is a useful survival instinct, in that fleeing before you're certain there's a threat is a benefit. It's a big problem in complex situations. It's also the basis of religion. There are so many classic examples of that in intelligence history. The paper mentions over-analysis of V-1 bomb targets, although I'm not sure that was a real thing at the level of people who had access to maps of the hit points. The inaccuracy of the thing was clear; "Greater London" was about as good as it could do. Air bases were never attacked; too small a target. If the V-1 had been accurate enough to hit air bases, it would have been used against them in the Battle of Britain.

There is, however, a classic example of that mistake. During the 1960 Cuban Missile Crisis, US analysis of aerial photos of the missile sites showed a layout more suitable to the Russian tundra than a tropical island. So there was a theory that the USSR now wanted the US to recognize them as missile sites, following a long period of deception as the equipment was moved into place. That was considered an open threat.

In 1987, there was a sort of Cuban Missile Crisis reunion, with people from both sides present. That subject came up. The officer who'd been in charge on the Soviet side said, "No, we just did it that way because that was what the field manual said to do". Everyone on both sides who'd ever worn a uniform nodded in understanding.

</comment><comment><USER3> I have not seen this one (AUS-based) but can strongly recommend a similar piece from a US intel analyst pairing- Critical Thinking for Strategic Intelligence, by Katherine Hibbs Pherson and Randolph Pherson. Niche domain but for discussion of the work of strategy production of any kind, very valuable.

</comment><comment><USER4> Good guide.

The late Dick Heuer (referenced a few times in this paper) wrote the Psychology of Intelligence Analysis, the gold standard: [https://www.cia.gov/library/center-for-the-study-of- intellig...](https://www.cia.gov/library/center-for-the-study-of- intelligence/csi-publications/books-and-monographs/psychology-of-intelligence- analysis/PsychofIntelNew.pdf)

</comment><comment><USER5> Great resource, just added it to the reading list wiki for Open Synthesis: [https://github.com/twschiller/open-synthesis/wiki/Reading- Li...](https://github.com/twschiller/open-synthesis/wiki/Reading-List)

</comment><comment><USER6> Thanks for sharing</comment>


I did what any sensible Lisp hacker does: I wrote my own object system - <AUTHOR> http://mikelevins.livejournal.com/3678.html

<comment><USER2> Blue Rondo a la Turk is a great song to write an object system to.

<comment><USER3> I was just listening to that song when I read your comment (and the article)! What a weird coincidence.

</comment></comment><comment><USER4> I wouldn't mind seeing the author's code. I decided to use Clojure for a project, and while it has generally been a good experience, I do miss the ability to strategically apply CLOS in places.

<comment><USER5> I'll be ecstatic if it is well done; I'd love for Clojure to be multi-paradigm (even if the object system was a bolted-on one).

</comment></comment><comment><USER6> _It's an article about how representation, behavior, and taxonomy are distinct concepts that can be handled separately, despite the fact that object-oriented languages tend to confuse them._

I don't think "confuse" is the right word. A class-based object system is not an affirmation that behavior and taxonomy are the same thing, just as a hammer is not an affirmation against the existence of screws.

</comment><comment><USER7> exactly why i don't like Lisp: every Lisp hacker makes his own object or whatever system, making it hard for other people to understand his work.

<comment><USER3> Writing unmaintainable crap is really the fault of the programmer, not the language, isn't it? You can write unmaintainable stuff in any language and I think Lisp is particularly good at helping the developer keeping the code clean and easily readable (despite it being very powerful so it's easy to do very stupid things, I must admit that.)

<comment><USER8> It's easy to do very stupid things, which at the time seem brilliant, and you don't realize they're stupid until they're so intertwined with the rest of the project that they're harder to fix than to just deal with.

<comment><USER9> Good point. But you can't reach the simplifying insight by any other road than your own initial stupidity. It's the way you learn Lisp. At least Lisp breaks you with grace -- quick and painful. Most other languages spare you the pain of insight.

And I'm consistently surprised by how easy it is to root out my stupidities once I've recognized them, thanks to the repl, a functional style and a small code base. Lisp teaches you to face your fears.</comment></comment></comment></comment>