Hacker Newsnew | past | comments | ask | show | jobs | submit | neoeno's commentslogin

Love to see fixed format mode in use :)

For those who are unaware — you can use COBOL in two modes: free mode and fixed format mode.

Fixed format mode is (afaik) the original, based on punch card affordances, and specifies specific columns for specific purposes:

* The first 6 columns for line numbers

* Column 7 for the indicator character (notably: * for comments as you can see here https://github.com/jmsdnns/webbol/blob/main/file-structs.cpy )

* Column 8-11 for special division markers, though they can extend beyond (visible in this file: https://github.com/jmsdnns/webbol/blob/main/webserver.cbl)

* Columns 12-72 for ordinary COBOL statements

* Columns 73-80 for programmer comments or whatever notes you like

All the columns are undoubtedly a bit taxing to the modern developer and their tools, so 'free mode' which discards all the above is the suggested default.

But, I think fixed mode is very charming, and if you're going to write COBOL in 2025, you may as well try to get the most authentic experience!


Cols 73-80 were sometimes used for sequence numbers so when you spilled your cards on the floor you could run them through the sorting machine.

This may help you get the feel (pick the COBOL card at the top). [0]

For an even more authentic experience, write the program on a coding form first, then give it to an assistant for keypunching. [1]

[0] https://www.masswerk.at/keypunch/

[1] https://www.mainframestechhelp.com/tutorials/cobol/coding-sh...


Early versions of Fortran also had a fixed column layout, although the columns were different. The only commonality thst I can find right now is ignoring columns 73 to 80 to make space for card sequence numbers.

I never wrote a program on punch cards, but I'd definitely drop card stacks accidentally or get them into a jumble somehow. Having numbered cards and a card sorting machine (radix sort in hardware!) would be extremely helpful then.


Old-timer tip: take a marker and draw a diagonal line across the top of your card deck, from the column 1 left side edge of the first card to the column 80 right side edge of the last card. When you drop the deck, just reassemble the line.


Which sorting algorithm do you use when reassembling? Does it work well with "eyeball it and stick it near correct-ish spot and then fiddle with it later"?


Depends how much bleed your paper has with your marker, but in general it’s quite accurate to eyeball it. I’ve never used it on punch cards, but I have for large documents.


I liked this too, but interesting that the Makefile uses the `-free` flag for cobc


I assume fixed is a subset of free? So perhaps a few lines somewhere aren’t perfect.


the code is similar to fixed format, but the location of the comments gives away that it is actually in free format.

* comments use *> at start of line, though I'm not sure i'll keep that

* indentation is flexible, but i prefer how fixed looks

* no column restrictions


First, understand that you are trying to control them.

This might sound odd, but it's true. You're trying to change their behaviour because you'd prefer it another way. Maybe that's because you want to be a good person or it hurts you to see them fail, but ultimately you have selfish motives.

Secondly, realise that many people in their life have tried to control them before. They didn't all have pure motives. Many of them may have been wrong, in some ways significantly.

From these two thoughts — deduce that _it is absolutely critical that this person can defend against bad advice._ Without that skill, they will be totally lost. Gullible, open to confusion, even abuse. You are fighting their social immune system and you need to prove that you can be trusted. If you fail, accept that you have failed for a good reason.

Finally — and this is the most difficult part — frame your advice as a piece of information that will be believable and useful in the world of your listener rather than your own. How do you do this? Ask questions, seek to understand what they think, why they behave the way they do, their goals, their fears, who and what they respect. Once you've done this, reformulate your advice to fit the world you have discovered and try it out. This may include showing rather than telling. If it still doesn't work, try to understand what they heard and why it didn't add up to them.

If you can do all of this, people will follow your advice much of the time. The catch is that you might find yourself changing your own views just as often.


I came to post - don't be so invested in the advise you offer that you get upset when they don't follow it - but you explained it much better.


> ultimately you have selfish motives

Uh, I don't believe that. What if you just want to help them?! What you say sounds very close to psychological egoism, the ethical position "that all behaviors are motivated by self-interest," that "all motives are selfish motives".[0]

[0] quick read: https://www.qcc.cuny.edu/socialsciences/ppecorino/ethics_tex...

lengthier read: https://plato.stanford.edu/entries/egoism/#PsycEgoi


Advice is not an attempt to control someone, it's sharing your perspective, which may be incomplete, and trying to provide additional useful information for making a decision.

Persuasion on the other hand is certainly an attempt to influence someone's behavior.

Persuasion and advice are not the same thing.


Self-motivation is much harder than people give credit. I believe that we’re mostly not cut out to work alone. Our motivation comes from other people — either leading, following, or serving them.

If I’m right, you’ll probably find that the more you pursue this vision alone, the harder it will feel.

The dilemma you‘ll face, and the compromise you’ll ultimately have to find — is that the vision will never truly be yours if you let other people in, but it will ultimately never be meaningful if you keep them out.


Totally agree.

It's better now that HN has been giving some really great feedback, either on the specific work itself, or mostly from answering all my other questions surrounding it. This exchange of thought and ideas and different perspectives has been super helpful in getting myself to move forward.

With regards to the vision itself, my belief has been that, when I'm able to communicate my ideas enough to get others on board, will only be when I am done writing the essay itself! As in, the content of the work itself explains all the reasons why the work exists. If that makes sense.

But so far, I think having some people roughly get my idea has already been really helpful, so I don't feel nearly as isolated about it as a few months ago!


Software engineering education is a good job market right now and (I believe) has better pay and working conditions than public sector teaching. If she’s up for that path, she could learn some technical skills and then teach them.

I’m probably the wrong country (UK) to help directly but I lead a team of technical educators and happy to have a chat about the path of useful. Email in bio.


When I just graduated CS I started teaching a bootcamp. I was one of the best teachers and some of my students are having better careers than I do as a software engineer.

If I've learned anything: technical skills need to be medium, teaching skills need to be high. I also observed about 5 teachers (sitting in on their classes with their permission) and have seen teachers that have:

- high programming, high teaching skils (e.g. compiler construction, web-design, SIMD stuff, reverse engineering with x64, PHP, C++, trees with cycles, it didn't matter, he could do it)

- high web dev, low teaching skills (he got fired)

- high web dev, medium teaching skills, from a macho culture (he got fired, as I come from a more egalitarian/feminine culture)

- medium web dev, high teaching skills (he aced it)

- Myself


I was developing some architecture training recently and had this very same question. It’s not easy to find realistic architectures.

The best I found was the German contact tracing app — Corona Warn App. It was done by a group of consultancies in collaboration with the German govt, and went from inception to launch in around fifty days — largely if not totally open source.

Here’s the repo that has all the architecture in: https://github.com/corona-warn-app/cwa-documentation

It’s got full git history so you can see it evolve over time, along with the implementations (also on Github).

There’s a pretty fascinating short talk by one of the people who led the project on youtube too — more about the process side though: https://youtu.be/5y1sHSkPWRg?t=1770


Did a similar thing but made my flat. And it’s gen 1 :) https://herostrat.us/gary


This is really nice! I like the combination of the aesthetics and the dialogs that combine mundanity with deepness.


WOW super cool!


Did you also used phaser 3?


I didn’t — I made it from scratch and tried to get as close as I could to the original behaviour. But I bet I also lost a fair few more weekends than OP…!


I’m Thinking Of Ending Things by Iain Reid.

Without wanting to spoiler you — it’s about a few introverts, and it’s narrated in a way that focuses heavily on the inner world, on their thoughts, the culture they enjoy, their deliberations, what they say and what they hold back.

It is a horror too, sort of.


You mention you have borderline. If you’re interested in exploring that more it might be helpful. The feelings you’re describing are familiar to a lot of people, but particularly troublesome for those with personality disorders. If I’m right — you might feel a lot of the other advice seems to ‘miss the point’ or you know it’s true but it doesn’t help.

Personality can be thought of as the immune system for the mind. It helps us achieve stability despite all the chaos around us. They do this by giving us ways of coping and responding to challenging emotional situations (eg the success of others) that will preserve our emotional safety. This is why personality is so hard to change and usually changes only on big life events where people are faced with things their ‘personality machinery’ was unequipped to face.

However there are different ways we & our personalities can defend us from these threats, and some have some nasty side effects. Faced with the success of others where we have failed, we can imagine a few responses:

1. Admiration and respect. What a marvellous achievement. It goes to show what you can do if you put your mind to it — I am going to make time for my project now, this has really motivated me.

2. Revaluing. What an amazing project, this is really cool. Sometimes I wonder about making things like this too, but what with the kids it’s hard to make time. But I wouldn’t give up my kids for the world, best thing I ever did.

3. Idealisation. These people are really something else. It’s truly amazing, they must be a different kind of person altogether. I’d love to work with someone like that — where do they work again?

4. Dismissal. It’s not really that hard. I could easily do that, but I’ve got much more important things to do. Imagine having the time to waste on something like that!

5. Despair. Everyone is doing such amazing things and I’m just sitting here. I’m such a failure. I’ll never do anything like that because I never even try.

Each response does the job of responding to the threat in a way that preserves the self. However they have quite different side effects. Most of them make the person feel good. Some of them inspire the person to be better. Some of them affirm a previous decision. The last one is a very upsetting one for the person but it isn’t that much different to #4 in its results.

However, they each to a good job in different situations. Let’s say you are a child bullied by highly capable older siblings — any attempt towards growth will yield more bullying, and idealisation is even more dangerous. It can be safest, from the child’s perspective, to identify with the bully’s understanding of you and try to avoid bringing any further harm to yourself. All of the other responses, in that situation, could really hurt. So #5 isn’t ‘wrong’, it’s just not helpful in all circumstances. Later when that child grows up they might be so stuck in their response that it affects their whole attitude on life, even though it was really only useful for that small few years of childhood.

Not everything is based on childhood experiences, there are other reasons, but maybe you get the idea that personality disorders are collections of these responses that harm or limit us, and that are hard to change.

You’ll also notice that each of the above responses, as they speak about the other person, also imply a belief about who _they_ are. They position themselves in relation to the other person. #1, #2 and #4 value themselves, #3 and #5 devalue themselves.

There’s a guy called Masterson who called these disorders ‘disorders of the self’ and he said that they damaged the following ten capacities of the self:

1. The capacity to experience a wide range of feelings deeply

2. The capacity to expect appropriate entitlements

3. The capacity for self-activation and assertion

4. Acknowledgement of self-esteem

5. The ability to soothe painful feelings

6. The ability to make and stick to commitments

7. Creativity

8. Intimacy

9. The ability to be alone

10. Continuity of self

If those things are issues for you and seem to connect with this challenge, you might want to consider working on your borderline condition. This work, which (I think) is best done in talking therapy, can help you rebuild the parts of your personality that are hurting you. This takes some time to do.

You have a real strength here. You have a desire to do work that makes you proud, and a respect for the achievements of others. This can be a powerful motivator. For me it was helpful to view myself as containing the seeds of growth, in the form of these persistent hopes to do useful work and to relate to others. Even if they kept going wrong and I gave up, it showed me that there was some potential inside me for change.

Or, maybe, I’m way off :) If it doesn’t resonate, discard it, but sharing in case it does.


One use: I was teaching some developers COBOL, and I wanted to illustrate for them how the Y2K bug came about.

So I gave them a project to do parsing a file with contemporary dates in. Then towards the end I quietly supplied them with a similar file containing dates from the year 10000+.

Whether or not the devs of years past felt it similarly unlikely that their software would live to the year 2000 as we do the year 10000, I don’t know. But it was a fun exercise!


Don’t forget that when Y2K problems were being created the hardware was _way_ less performant than the hardware of today. There was a reason to be wary of how much memory you are using, now there isn’t much.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: