Ask HN: How can I become a proper Project Manager from a Programmer? - <AUTHOR> I was satisfied as a programmer, but sometime you have to manage some project, I want to be ready when I got a chance.<p>So, what should I do/learn ? Is there any roadmap/checklist for a programmer ? <comment><USER2> The best project managers I've had have identified and removed obstacles for me (including things like - attending mandatory meetings, so the devs don't have to).

Other good managers have also reigned in my ideas enough so that we implement what is attainable.

Bad project managers have had an obsession with statistics, spreadsheets and tools like Jira.

Most project managers I've had have been bad/indifferent, but with about 2 or 3 out of around 16 roles/projects being good/great.

<comment><USER3> If it can't be measured, it can't be managed.

Remember that your manager is accountable to someone else higher up the chain. They don't know how dev works, but they want to see quantifiable progress. Statistics, spreadsheets, and tools like Jira are how that progress gets communicated. Like it or not, this is an essential part of the business.

<comment><USER4> The best measure of how a project is going is using the software it is producing. Instead of using questionable data from Jira and the like, just try to use the software. Ask for a demo, or run the code yourself, or look through unit and acceptance tests.

<comment><USER3> Direct supervisors can do that and get a detailed feel for how it's going. But that's too touchy feely, too many variables. C-level execs want to know "are we on track to ship version 3.0 by the end of the quarter?" and they need a yes/no answer, justified by numbers and graphs. They don't know about unit tests, and can't be bothered to walk through the software itself.

</comment></comment></comment></comment><comment><USER5> I've recently gone from Developer to Technical Product Manager, and I believe the following traits are important:

1) Communication on both a technical and product level. This allows you to act as a bridge between sales/marketing/management and the developers. See #2

2) Speaking two languages: Code and Product. This is where being a former developer comes in quite handy, as you can only learn Code through writing it, but you can implicitly pick up the Product by thinking like a non-techie and paying attention to what they care about.

3) Keeping a focus on the big picture during a project duration. As a Product/project Manager, you need to understand timelines beyond 3-6 months and make sure you're not shooting yourself in the foot for later. This is tangential to what you may have read in the Pragmatic Programmer.

4) Product/Project Manager can be squishy terms, meaning that the responsibilities can vary by company. Often you'll be left to ensure all the ends of a project are wrapper up: testing, documentation, communication on releases, etc.

There are probably many more things, but those are off the top of my head. Good luck!

<comment><USER6> What motivated your transition from Dev to Product manager? I am looking to make a similar switch, would it be okay to reach out to you for guidance? Advice on the transition would be incredibly useful!

Cheers!

</comment></comment><comment><USER7> 99% of the time "Project Manager" means "Project Facilitator."

The key aspects of project management are gating, communicating up, and communicating down.

Gating: Keeping things that aren't The Project from becoming The Project without being properly defined (time, deliverables, budget, resources).

Communicating Up: Letting business owners and stakeholders know the status and cadence of the project, what the project team needs to get the job done, what ambiguities need to be cleared up, etc. It's very difficult to hold someone's who is generally your boss feet to the fire, but it's am important skill to learn.

Communicating Down: Deliverables, roadblocks, obligations, morale, etc.

The most important skill in a project manager is humility. Many PMs see themselves as captains of some giant see-faring vessel, but have no respect for the vessel or the sea.

<comment><USER8> To add one more: a sense of urgency. Your job isn't to whip the team, but you should provide a steady drumbeat of progress, and be able to instill urgency and speed into the team.

<comment><USER9> "you should provide a steady drumbeat of progress, and be able to instill urgency and speed into the team."

Just goading the team to go faster gives an air of testdriving ones new position unless there is some obvious, real, time pressure.

Rather - people often behave as they are expected to behave. Treat them as responsible, adult professionals, you get adult professionals. Treat them as galley slaves, you get galley slaves.

Mind you, all this is just introspection and armchair psychology.

</comment></comment></comment><comment><USER10> You don't have to transition. Think hard before you do.

I became an engineering manager at around 26, and did it for another 5 years, and thought that was my future. But I transitioned jobs and ended up getting back into development, and realized a few things:

\- I hate meetings, and PMs go to meetings. A lot.

\- PMs have less control then you probably think.

\- Writing code means I get to actually make stuff. At the end of the day, as a manger, it was often hard to point to anything as a real accomplishment.

I'm 37 now, and have no desire to go back to being a manager. Now, maybe being a PM is what you really want to do, and if so, I wish you the best of luck. We could use some PMs with actual development skills.

<comment><USER11> I think it can be useful to have demonstrable working experience in management, even if it wasn't your career choice.

<comment><USER12> This. Seriously it does help when more senior coders understand the pressures on project/product managers.

</comment></comment></comment><comment><USER13> I'm in a similar position at the moment. Basically what you want to do is ask for more responsibility from your PM, specifically to do work they'd normally do. Over time, that work will become part of your responsibilities. As you gain more confidence from doing those tasks, and as your team begins to recognize you moving away from programming and taking on more leadership, you'll put yourself in a good position to manage a sub-team on a small project. If you can pull that off, you can build on that for a bigger project/promotion to PM/SDM.

For example, we work in an Agile environment, so I've started running some of the 'Agile ceremonies', such as story refinement, estimation etc. From there my plan is to try and fully manage a sub team for a smaller project, as mentioned above. On top of this, I've arranged to go on a Project Management course in a few months. Doing all this should put me in a good position for a PM/SDM role.

Hope this helps and good luck!

<comment><AUTHOR> Thanks, I think you are the lucky one. Our company got ~100 emp, but IT dept only got 2 backend(includ me), 1 frontend, 1 android, 2 ios.There is no one I can learn from,so,there is no real world practice or example.This is very common in China, just get things done, we got people.

<comment><USER13> Ah ok, sorry to hear that. With such a small development team, it sounds like it could be hard to move into management. However, this should also present opportunities: if you see something that needs to be done and no one's dealing with it, do it yourself, accept the responsibility and try and make sure some one notices that you've gone to that effort (or ideally, point out the fact that you're going to do this to whoever you report to).

</comment></comment></comment><comment><USER14> You will have to pick up some general management skills and for that I can not recommend enough The Mobile MBA by Jo Owen. Thin book, no BS, no fillers, practical and useful advices from a successful manager. That book should have been named MBA 101 for programmers.

</comment><comment><USER15> I think it would be a great exercise to shadow your Project Manager(if you have one) for a while. If you don't have one, maybe just try to virtually manage the project you're working on. You'll find that the PM job is not really what you expected to be.

I'm a sysadmin and I've tried to simulate this kind of change and I found that there are a lot of bureaucracy tasks which I don't really like :). If you ask me, the proper career path has the "team lead" position as the first step, which brings you closer to a "* manager" feeling.

Good luck!!

<comment><AUTHOR> I can feel that at work, but the PM skill is required to improve myself, maybe I don't need that skill in my work, I got some extra project out of work, I hope I can manage that well, then we may build a studio or something.

Be ready is never ready.I just want to know what I'm missing and how to get it.

</comment></comment><comment><USER16> Decide if you really mean Project manager, Product manager or Programme manager.

I don't see why there would be a specific list for programmers... but try and see if you can take on greater control of the tasks in your current job to build experience.

<comment><USER17> Also, ensure it's one of the above and not an Engineering Manager. The expectations are quite different for each roles. I have been burnt by my mistakes when I tried to do everything whilst being a Technical Lead of a project. It burnt me out, but taught a valuable lesson.

</comment></comment><comment><USER18> My favorite books on project management:

1\. "Project Management for the Unofficial Project Manager" is a high-level but pretty complete introduction. It has good good examples from non-technical projects based on the Project Management Institute's infamous "Project Management Body of Knowledge" (PMBOK). [https://amzn.com/194163110X](https://amzn.com/194163110X)

2\. Scott Berkun's "Making Things Happen: Mastering Project Management (Theory in Practice)". Scott was a program manager at Microsoft and describes some of the less process-oriented, more "in the trenches" aspects to managing a project. [https://amzn.com/0596517718](https://amzn.com/0596517718)

3\. Steve McConnell's "Rapid Development: Taming Wild Software Schedules". It's more of an encyclopedia of software project management and is now a bit dated (1996), pre-dating Scrum and Agile but all those ideas have been known for a long time. [https://amzn.com/1556159005](https://amzn.com/1556159005)

</comment><comment><USER19> There are two aspects to project management. The first aspect is being able to manage the methodologies and techniques popular at your employer EG managing a sprint, building a gantt chart, creating the necessary project artifacts etc.

The second harder part is the mind set. Ultimately, you are responsible for the success or failure of the project. That means you need to do what ever it takes to make the project successful, and to be relentless in making this happen. Sometimes that will mean persuading business sponsors, sometimes it will mean chasing up why Developer Jane as the wrong version of the IDE installed on her laptop.

As Stuaxo has said, if you have a good team a large part of the job is removing obstacles for your developers. Another part of the job is attacking project risks and ambiguity around the project.

You also have to be prepared to frequently give bad or uncomfortable news to your senior management, and even tell them "No" sometimes.

I'd say learn what you can on the PM techniques, and then ask to shadow a good PM for the latter.

</comment><comment><USER20> If only life were so easy then a roadmap or checklist would solve everything.

Experience is critical. Knowing what works is useful but more importantly knowing what doesn't work is essential. Focus on solving the issues and not on welcoming good news.

Start small. Do you have personal programming projects? Did you _project manage_ them? No? Then start by critically managing your own work. Stand back and introspect.

Do you want to manage any type of project or are you targeting technical projects, client projects, web projects? There will inevitably be a mixture so you need to understand that. Don't trust anyone. Keep asking for justifications and proof. Remind everyone about the different responsibilities that are present in any project and be specific about each individual's responsibilities.

What are you waiting for?!

</comment><comment><USER21> My only advice is to not simply jump into a management role because it is the only career path you see. You can still be technical and progress your career! I definitely encourage you to try and experiment different roles, though, as this brings you versatility and understanding the lifecycle of a project.

<comment><USER22> Project management isn't really a management role. They are usually peers, often on a lower payscale than engineers.

<comment><USER21> Totally agree! I guess this is the point I tried to make. :)

</comment></comment></comment><comment><USER23> If you'll be managing a technical product and other developers I'd recommend reading 'Managing Humans' by Michael Lopp (aka rands) - [https://www.amazon.co.uk/Managing-Humans-Humorous- Software-E...](https://www.amazon.co.uk/Managing-Humans-Humorous-Software- Engineering/dp/1430243147)

Short chapters so you can read it in chunks, its entertaining and based on his experiences.

Included it in this list of start-up books I wrote ages ago but you've reminded me its worth re-reading - [https://medium.com/@KatAlexPas/an-hour- and-a-half-a-day-of-r...](https://medium.com/@KatAlexPas/an-hour-and-a-half-a- day-of-reading-business-books-db503a79fa0f#.t023t1oai)

</comment><comment><USER24> It's tricky. As with any career (or just job-title) change you can try to manipulate your current / next role into including the key responsibilities of the new job title you're after -- in this case a PM -- and then try to leverage that work experience into a formal PM role.

You may need to entertain taking a backwards or sideways step into a precursor role - local vernacular doubtless varies, but maybe explore Project Officer or Project Admin job titles. Or, of course, both.

You could start reading up on PMBOK, PRINCE2, Agile/Scrum, etc -- obtaining accreditation on these tends to be expensive and a little tedious if you're not actively using the methodologies (in my experience).

</comment><comment><USER25> I highly recommend to improve your writing skills. You can start from here.

[http://www.covingtoninnovations.com/mc/WriteThinkLearn.pdf](http://www.covingtoninnovations.com/mc/WriteThinkLearn.pdf)

<comment><AUTHOR> Thanks, english is not my native language, as a normal family in China the ability to read or write english is learned by myself, I will read and learn what your suggest.

</comment></comment><comment><USER26> Do you mean project manager as in time keeping, planning steps, pipelining operations to avoid roadblocks, and dealing with other teams?

Or, do you mean programming manager? (i.e. less nitty gritty, more design, more delegation, presenting to higher ups)

</comment><comment><USER27> See if there are any certifications your organization prefers. My work values people with PMP certifictations, or at the very least a Masters Certificate in Project Management (which they offer on site).

</comment><comment><USER28> Understanding the types of things that prevent programmers from completing their duties is the core of PM. That can be resources/access, requirements understanding, scheduling, productivity, etc. It's most helpful if you can achieve a deep understanding of the business objectives while understanding technical capabilities and limitations. Most programmers are required to do that anyhow, but it's especially important in PM because you'll be one of the earliest people on the tech side to influence new projects.

For example:

\- If you're going to do an API integration in the coming days/weeks, make sure you provide an account with access, documentation, and consider reading the docs yourself to look for blockers. Don't focus too much on the implementation or architecture, focus on the business goals.

\- If you're going to make a modification or new addition as the result of a new business requirement, make sure you are intimately familiar with the business domain and how the problem applies. It's important for the PM to understand what the business _actually_ wants, not simply what they _say_ they want.

\- Minimize task switching by maintaining a clear strategy with the business side. When you hand off a task to a programmer the task should be in such a prepared state that nothing further can be accomplished without writing code. If business has an "emergency" that isn't, urge them to hold off until the current development task is completed.

\- Build relationships. You want to be close to business and close to dev. I would often talk to developers about their day, off-work activities, family events, etc. They were more than happy to discuss their hobbies for a few minutes, I feel like it's time much better spent than group meetings and it gives them reprieve from work. Get to know them, having that connection is great for them when they can openly make requests and likewise for you. Sometimes they need vacation on short notice. Sometimes you have legitimate emergency tasks and need to ask a little extra of them. Having a real relationship to fall back upon is tremendously helpful, just be sure to reciprocate.

As a PM you can advocate for engineers and protect them from waste like excessive meetings and ensure they have everything they need to do their job. You're in a position to suggest raises, hardware upgrades, etc. Sometimes you have to fight for what they need.

You can practice many of these things before being a PM. Some of them are better left for your first opportunity managing a project. Where that line is drawn depends on the specifics of your circumstances. I was promoted to management fast after making recommendations which dramatically increased revenue, which doesn't seem like a bad way to make yourself more visible. Solve business challenges or provide new revenue streams if you're extra ambitious. If you want to manage, show initiative.

It's also worth considering you might not be happy as a PM. No longer coding, it was easy for me to feel like I never got anything done. Entering tasks/todos/bugs, talking with the business side, and writing emails doesn't feel productive after programming. Being ready for that possible eventuality is my best advice.

</comment><comment><USER29> Learn that you are merely a coordinator and are not "in-charge." Too many TPMs try to be the boss.

</comment><comment><USER30> I can recommend the book: The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win

</comment><comment><USER31> Depends on whether you really like to "manage" the "expectations" of stake holders [https://en.wikipedia.org/wiki/Project_stakeholder](https://en.wikipedia.org/wiki/Project_stakeholder)

<comment><AUTHOR> Isn't it stakeholder is the result of good manager ? What's the different ?

<comment><USER32> >According to the Project Management Institute (PMI), the term project stakeholder refers to, 'an individual, group, or organization, who may affect, be affected by, or perceive itself to be affected by a decision, activity, or outcome of a project' (Project Management Institute, 2013).

As a PM, I usually refer to the stakeholders as the people that requested the project, the people that pay for the project, and the people that need to be informed about any changes related to schedule, scope, cost, impediments, etc.

>What's the difference? A Project Manager is rarely a stakeholder, though it could happen if the stakeholder is actually managing all aspects of the project.

It may benefit you to read the PMBOK and read some books on Agile and Scrum techniques. There are still many projects that use waterfall methodologies and are successfully on-time and on-budget. I was once a Portfolio Manager for a large insurance company in charge of data migrations from acquired insurers...there is nothing that stand-ups and scrum could have done to make the migration process any faster or better. Point: learn the basic methodologies first, then build on your knowledge. Agile and Scrum in the wrong hands can be terribly destructive. Knowing which methodologies may work best for different teams/projects/situations is key. Sometimes the overhead and bloat of Agile isn't necessary for simple projects. I once briefly worked as a subcontracted developer for a crappy consulting/recruiting company. The company wanted to "provide value" to the client by mandating that the client's IT Director and I had daily conference calls with the company's scrum master who only had 6 months of PM experience (I had 8 years of exp at the time). Which wouldn't have been unusual except I was the only developer, the IT Director wasn't involved other than "get it done" and gave two shits less about the daily stand-ups and agile process to design a 3-page site and a couple of forms, all of which had excellent requirements docs. I ripped through the work and got out of there in a week. Why apply such a ridiculous process/methodology to something so simple?

</comment></comment></comment><comment><USER33> Always remember: You work FOR the developers... not the other way around.

</comment><comment><USER34> I'm in the process of making this transition. One of the most important things I'm trying to hold on to is a passion for programming that goes beyond writing code. I see my new role as leveraging the 13+ years of professional development I've invested in by providing my team with guidance and critical feedback while ensuring business takes on less risk by making sure the software my team produces follows industry state-of-the-art practices and meets our deadlines. I tend to look at software development as an ongoing process and I hack the process itself to get the results I want rather than relying on my own immediate intuitions and knowledge about programming. In essence I set up the guidelines and processes that let my team be the best developers they can be and help them any way I can.

The other face of my role is being the intermediary between the stake holders and the team. While I am not a licensed engineer I try to behave as though I were: if I let bad code slide into production I might lose my license. The stake holders I collaborate with know this and they agree its an important position. However the business wouldn't move forward quickly if we were developing software like NASA. Instead I imagine there is an actuary assessing my technical decisions who will increase my insurance rates if I make poor decisions or lower them if I make good ones. This creates a risk-vs-reward balance that I need to consider when making decisions on behalf of the business... it might be worthwhile to accept some risk in choosing a software platform my imaginary actuary would asses as risky for the sake of the team who are familiar with it most. While I might enforce certain practices that will lower my rates like extensive fuzzing tests and formal specifications of critical components. It requires some balancing between correctness vs agility. While I don't see the two as mutually exclusive (in fact designing for correctness tends to make a team more agile in the long term) there is some give and take in terms of timelines and budgets that I need to be aware of. I act as the buffer between these concerns and the rest of the team whose focus should be on making software that fulfills our requirements and intentions. I attend the meetings and negotiate the timelines and handle the interactions with the rest of the business.

I think it's crucial for a manager of developers to have been a successful developer themselves with a wide range of experience. It's equally important to gain the trust of the team in your technical acumen: mandatory code reviews have been an invaluable tool in my experience so far. If you can give a good review it demonstrates your knowledge and wisdom while giving someone the opportunity to learn something new. It also lets you become familiar with everyone's skill level which is invaluable when trying to give estimates and quotes to stakeholders. Get out there and get some public credibility by contributing to open source projects, speaking at conferences, and even try your hand at writing. I've spoken at several conferences, have been a technical reviewer on a published book, and have contributed to the WebGL spec, Mozilla Firefox, Openstack, Python, and others. I'll be giving a talk at a local JS conference later this year. It will help if you can develop a reputation as someone trustworthy and wise.

Most of all... and this is universal; be aware of what you don't know. I've led teams in the past in the role of senior/principle/etc developer but I've always been sheltered from budgets, timelines, product scope, etc. I've been asked to interview people for positions but I've never been in charge of setting the policy on how we hire. I've learned how to adapt to social situations but leading people, especially creative and talented people, is like herding cats (I'm also quite introverted so it takes extra effort on my part to keep up). When you don't know how to deal with these things be honest and develop a plan of action to fill those gaps.

For me that means contacting people who I know are great managers (and not necessarily managers of technical teams either: one friend is a genius at running her fathers restaurant and her advice has been invaluable). It also means I keep a log of terms and advice I've been given that I don't understand. I use this log to do keyword searches and find books and blogs on the topics I'm missing out on.

Just keep at it and learn to look at the process of making software as one big software system itself. It can be quite entertaining and interesting.

</comment><comment><USER35> i recommend poisoning the current project manager and offering to step in. when you are a manager you cannot afford the luxury of a consciousness so this is a great way to start!

<comment><USER36> You probably mean conscience, not consciousness, but your word is amusing in a different way.

</comment></comment><comment><USER11> Please take a look at the IEEE's Software Engineering body of knowledge. It will give you an outline of the topic as well as pointers to what reference material you can consult.

[https://www.computer.org/web/swebok](https://www.computer.org/web/swebok)

<comment><USER11> I strongly encourage you to take a look at this book. It is a tour around software engineering including budgeting, planning, implementation, releasing... everything that you can think of. Always useful to take a look at it to find out where the gaps or weaknesses are in your knowledge.

Now, some people will try to tell you that project management is all about going to 3M with a forklift and getting multiple crates of stupid post-its. It's not. There's much more to it than just sticking post-its.

An engineering manager represents the ENGINEERING interests of a project, not only pushing features and saying "yes". Being a good manager is not about saying "yes", it's also about saying "no"... understanding tradeoffs and balancing them.

Saying yes to features all the time and discouraging quality will only create a culture of checked-out paycheck zombies.

</comment></comment><comment><USER37> Project managers and programmers are blood rivals. So firstly, never seek appreciation from your team. If you get some, always be skeptical of these possible sycophants. Secondly, never try to be their buddy - it will never work, and if it seems to, it just means that they are tolerating you. Thirdly, you should use the phrase "good job xyz" ad nauseum (Programmers know that it is BS most of the time but still expect it most of the time). Lastly, learn Excel, especially merging cells and bordering and coloring them..</comment>


Signal for Android Attachment Bug - <AUTHOR> https://whispersystems.org/blog/signal-android-attachment-bug/ <comment><USER2> Unlikely that a 4GB attachment is ever sent by a hacker or real person to a mobile device that may, oftentimes, not even have that much free storage or RAM.</comment>


FoundationDB is back - <AUTHOR> https://foundationdb.com/?hn

<comment><USER2> Nope, still has the message that downloads have been taken down and the repo's on GitHub are still private.

</comment><comment><USER3> Let's see whether Apple will open source fdb.</comment>


Strike the Game of Worker Rebellion – Trailer Video - <AUTHOR> https://youtu.be/i9wLETWiBC4 <comment><AUTHOR> I thought this was pretty interesting, and funny too. I have to admit that it's a cool idea for a game and that I chuckled a bit watching the video.</comment>


16 TIPS FOR RUNNING A SUCCESFULL PHISHING SCAM - <AUTHOR> http://www.troyhunt.com/2012/06/16-tips-for-running-succesfull-phishing.html

<comment><USER2> You've got it entirely wrong. Most of these "mistakes" are deliberate. See here for a link to the discussion on Quora:

<http://news.ycombinator.com/item?id=4009653>

And yes, I notice how your title is a clever mock of the things you're pointing out. It's all in capitals, and it has a spelling error. Very good.

It's also against the HN site guidelines.

And irritating.</comment>


Pirate Bay Finds Safe Haven in Iceland, Switches to .IS Domain - <AUTHOR> http://torrentfreak.com/pirate-bay-finds-safe-haven-in-iceland-switches-to-is-domain-130425/ <comment><USER2> What I wonder about, is they should be the "creators" and steering committee for the worlds own PnP DNS servers... I would gladly host a small portion of DNS spaces on my machines running at home...

<comment><USER3> DNS is probably the wrong word. You want some new method of name resolution, not DNS.

The thing with DNS is that it actually works pretty well as a distributed system. There are a bunch of different people responsible for different TLDs. If the operator of one TLD is censoring you, you can use a different one.

There are really two primary concerns with DNS. The first is that even if you have a domain using a TLD whose operators are unwilling to censor it, local DNS resolvers can still try to block it. This is not that hard to fix; either use a DNS server in a different country or (if your network blocking non-local DNS) do your DNS queries over Tor or some other secure proxy. It's also one of the things that DNSSEC or DNSCurve are supposed to prevent, if anyone would ever get around to implementing either of them. So this is solvable but non- ideal because it requires all the individual end-users to do something.

The second problem is that ICANN doesn't allow just anyone to operate a TLD, which means that the TLD operators themselves become choke points. Then censorial entities who see a TLD operator refusing to censor can put pressure on them (or their home country's government) to try to force the censorship.

So what you want is really to replace ICANN and the TLD operators with something more distributed, but the question is, with what? If you want a memorable but globally unique name then you need some method for everyone in the world to agree who it is that name should refer to. Right now the method is "if the name ends in .com, it refers to who Verisign says it does" and so on for other TLDs. You have trusted entities who can authoritatively determine who controls the domain.

I think (someone correct me if I'm wrong) that namecoin is trying to fix this with something along the lines of bitcoin, where whoever uses a name first gets to keep it. The problem there is that you need a way to make sure when it becomes popular you don't end up with a land grab and all the reasonable names end up in the hands of scammers and squatters, and I'm also not sure how they're addressing transferability and abandonment.

Just thinking out loud here, but how about this: Create a version of ICANN that works like IETF. No relationship to ICANN other than to refuse to issue TLDs that have already been issued by ICANN (and hopefully vice versa). Then, if you want a TLD, you can go to this group of people (who are maybe people like EFF members or well-known security researchers or activists) and they come to a consensus about whether you should get the TLD. So if EFF asks for ".eff" they get it. If ACLU asks for ".aclu" they get it. If La Quadrature du Net asks for ".lqdn" they get it. If Debian Foundation asks for ".debian" they get it. FSF gets ".fsf" on and on. But if some scammer asks for ".bank" they can go pound sand. Maybe make them sub-domains, so you end up with ".eff.foo" and they all end in ".foo" (insert whatever you like) to reduce possible collisions with ICANN. The idea will be to have domains outside the control of ICANN or anyone in particular and issue several hundred to generally well- known and trustworthy entities who are likely to resist censorship efforts. Then those entities can issue "wikileaks.aclu" _and_ "wikileaks.eff" to wikileaks etc., so censoring them requires censoring all the anti-censorship organizations.

Once the working group assigns a TLD, they no longer have any involvement. They don't operate any technical infrastructure. All they do is publish the name of the domain and the public key of the entity it's assigned to (which can be used to sign domains in the TLD), to serve as the authority for resolving namespace collisions. Once an assignment is made it's permanent and irrevocable. The assigned organization's public key gets published and browser and OS vendors start including it and using it to authenticate domains in the TLD, resolved using whatever distributed system you like (that part is basically a solved problem) to map names to addresses.

<comment><USER4> Could something like Namecoin address these concerns?

<https://en.bitcoin.it/wiki/Namecoin>

<comment><USER5> Most definitely. You are talking about the dot-bit DNS project in particular. See here for more details: <http://dot-bit.org>

<comment><USER6> This was most interesting, thanks for the link. I should have my hacker credentials revoked for not picking this up on my radar.

</comment></comment></comment></comment></comment><comment><USER7> I have been reading up on sub marine cables lately as the cable cuts in Egypt has reduced our international data transfer substantially here in Bangladesh.

This add from one of the companies in that market got me thinking that TPB should start a fundraiser to establish fiber connection to such an independent island and thereby gain greater independence.

[http://www.buysellbandwidth.com/groupbuying/deals_detail.php...](http://www.buysellbandwidth.com/groupbuying/deals_detail.php?deal=81)

<comment><USER8> Ooops, we accidentally dropped our anchor right on your cable! Sorry about that....

<http://en.wikipedia.org/wiki/2008_submarine_cable_disruption>

</comment></comment><comment> k-mcgrady It seems the switch to a new domain name has broken the ISP censorship in the UK. thepiratebay.se redirects to a site blocked page. thepiratebay.is works.

I'm sure it won't be long until they block it again but this domain change as well as the numerous proxy sites setup to bypass the block go to show that it's a waste of time to even try blocking stuff like this.

Does anyone know if the ISP's will be automatically required to block the new domain or if it would have to go through court again?

Edit: I'm using TalkTalk

<comment><USER9> Wait... Pirate Bay is blocked (out of the box) in the UK? That's rather draconian for a first-world nation...

<comment><USER10> The modern UK is essentially a police state.

</comment></comment></comment><comment><USER5> I wonder when they'll switch to thepiratebay.bit ?

To help make that happen, take a look at Namecoins and the dot-bit.org project.

</comment><comment><USER11> Is there any more to this "move" than any of their previous moves, including:

      * Sealand - proposed only (2007)
      * Netherlands - hosting (2009?)
      * Sweden - domain only? (Feb 2012)
      * North Korea - elaborate hoax (Mar 2013)
      * Greenland - domain only, quickly switched back (Apr 2013)

</comment><comment><USER12> already switched to kickass torrents.

people might one day share their bittorrent sync keys, it will be oh so fun

</comment><comment><USER13> Is the TPB accessible over Tor?

<comment><USER14> Yes.

<comment><USER13> To clarify, I meant if there was a hidden service. Not if there was functioning exit nodes that can access the website.

<comment><USER14> That I don't know. But if you're going for anonymity you probably shouldn't use torrents anyway, especially not public ones.

There are lots of interesting anonymous P2P protocols, although I don't think people care about it enough for any of them to have gained traction.

<comment><USER15> The Pirate Bay's hidden service is primarily for evading censorship, and it's useful in that sense, since no government can block hidden services.

</comment></comment></comment></comment></comment><comment><USER16> Can they actually hold off collective might of media houses and billionaires who actually call the shots and make politicians dance to their tunes, mostly because of they have taken the dirty money? What if the bullies resort to proxy arm twisting?

One must remember Iceland was invaded[1] by the British during WW2!

 _PS._ An invasion is an invasion even if it was said that the invasion was to pre-empt another invasion.

[1]<http://en.wikipedia.org/wiki/Invasion_of_Iceland>

[update: _invasion_ in a sense as to coerce a country to achieve desired result by hook or by crook]

<comment><USER17> I'm not really sure it's _bullying_ per se, to try and stop the mass illegal downloading of your content. It's not like they've got thugs at the door, they're just trying to shut down a site who's sole purpose is enabling the illegal downloading, and who has no interest in co-operating with even nicely worded, fair requests. I'm not a great fan of the entertainment industry, but if people were doing this to YC startups who focus on IP production, would the level of "support" be the same?

I mean, what alternative do people suggest for these companies? That they ignore it, thus tacitly approve it, until _everyone_ uses and doesn't bother with legal avenues? I hear a lot about "Well, find a new business model!", without explaining why a company should be forced to change based on clearly illegal activity. Even accepting the pragmatic argument that "It's going to happen anyway", I'm curious as to what business model people are suggesting?

<comment><USER18> Im going to try to keep it short, but its hard given the many different topic you touched on.

Any company that solely depend on government granted monopolies for their businesses model will have a hard time to claim a moral high ground or demand that the sovereign of foreign countries should be violated.

The business model I would suggest is one that do not solely depend on government grants. That would likely be to produce a product or rendering a service that others are willing to pay for.

<comment><USER17> Can you suggest a business not dependent on government grants? As far as I can tell, _every business in the world_ is. Any form of property rights is a government granted monopoly. The only natural law is "If I'm bigger than you, I'll take what I want". No matter what business you're in, you're relying on government protection to stop me just smacking you on the head and taking your stuff, whether it's tangible physical goods or IP. They only difference here is that the internet has rendered the head smacking part obsolete for IP, so people can skip straight to taking the stuff.

<comment><USER18> I have heard this argument before, but you are making a rather big claim when doing so. If all property rights is government granted monopolies, you are then saying that the government is the owner of all and everyone's property.

That mean you don't own that car. Its the government car that they have given to you under a granted permission to use it. Same goes for your house. All they need to render the third amendment void is taking back their granted permission. Basically we are now describing a capitalistic governed country like the US as if it worked like an communist controlled one.

So before I continue down this line, do you really claim that government is the rightful owner of everyones property? If not, then we must separate physical property with government granted permissions.

<comment><USER17> The government doesn't _own_ it, but it enforces the right that _you_ own it. Both for physical goods in the obvious way, and IP via the way of copyright.

<comment><USER19> Except that the notion of property ownership predates written records and organized government. Copyright was started in the 17th century to address the failure of previous censorship efforts in a world of new technology (the printing press), and eventually became a means by which printers could secure a competitive advantage.

We now live in a world where the machines needed to copy things are commonly owned by individuals. Copyright, having been designed to regulate industry, is massively out of date -- individuals do not have the resources needed to decide if they are abiding by copyright. Even the entertainment companies that cry about the importance of copyrights know this, which is why they keep pushing for DRM. No sane person actually believes that normal people are going to stop and think about whether or not they are obeying copyright laws; that is just not how people generally behave.

The truth is, in the 21st century copyright is nothing more than a red flag law that exists solely to protect obsolete industries.

<comment><USER20> > Except that the notion of property ownership predates written records and > organized government.

What people have in the absence of government is not property, but merely possession. No more or less binding on anyone else than a dog with a bone.

<comment><USER21> At least you are consistent: You make our rights a creation of government. This has the interesting side-effect of elevating intellectual property to the same level as real property.

You have to wonder if the framers talked about our actual natural rights in such disrespectful terms: "The saying there shall be no monopolies lessens the incitement to ingenuity, which is spurred on by the hope of a monopoly for a limited time, as of 14 years; but the benefit even of limited monopolies is too doubtful to be opposed to that of their general suppression."

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER22> Congratulations to Iceland! Keeping the dream alive!</comment>


Ask HN: A book about poker for hackers? - <AUTHOR> Startup folks, and hacker folks, often speak the praises of learning to play poker competitively, for fun and profit and social engineering. What should I read to get started? <comment><USER3> Brunson will cost you a lot of money now. Sklanskys theory of poker is WAY too tight and conservative (Note you havent seen him on any tv shows playing or in any tournaments for ages). Ed miller for limit is good but you will get so bored playing it. Tournament is fun but you need a gigantic bankroll to play games with people who can play ... The theory of poker evolved a lot since those books and is now about hand ranges based on prior action and stats you have collected (Well it hasn;t but the way it is expressed has and the language to talk about it has developed massively). Brunson, miller and sklansky never get into how you use software to systematically destroy people (because they were live players). The best advice is to visit two plus two forums and start reading there. Its better than any book - and i know i have bought and read a lot. Brunson, sklansky et all (ie 10 years old+) hurt my game. Assuming you intent to be someone who makes money and not gamble. Especially if you are playing at micro stakes (0.1-0.25 and under). the TAG style is good to learn but after 20k hands at 4 tables you will be bored - especially full tabling. Also tournaments vs cash game are entirley different games. In tournaments you _have_ to play sometimes beacuse of the blinds, in cash games the value of deception and lying in wait is much higher. In a tournament due to blinds vs stack size you often have no choice at all - <USER2> you do but only 1 correct play. In cash you can be a lot more patient. Also be aware that you need 20k+ hands before you can draw any conclusions about your play (assuming you didn't just go broke - but even then doesn;t mean you played bad)

</comment><comment><USER4> First step would be to join two plus two forums and start asking questions. There are so many books about poker but two stand out in my mind right now - Skalnsky's Theory of Poker and Ed Miller's series on Limit and No-Limit poker. There are many variations of poker and some of the latest flavors are pretty interesting, but No-Limit Hold'em is the most popular.

Poker can be very lucrative but it is a tough game mentally. I played full time for a year and packed it up. Too much stress, as crazy as that sounds coming from a software programmer. I tracked it all and my database proves I'm a winner but at that time the game was dwindling and it just seemed like a tough future. Online in the US now is pretty brutal. Live is still a cake walk if you know your game.

</comment><comment><USER5> If you're asking social engineering questions, you're already pretty well equipped for poker.

My picks in this realm were Hold'Em Poker for Advanced Players by David Sklansky and Mason Malmuth (which seems to be out of fashion now as it dictates a pretty tight game) and also Mike Caro's Poker Tells book is quite good about the most common types of tell behavior you will see at tables and tourneys. It's up to you to determine if they're real or if someone is putting on a show.

I wish I could learn all over again :)

<comment><USER6> I hardly think "Hold'Em Poker for Advanced Players" is a good book suggestion for someone who says they are just starting out. Mason's books, while excellent for what they are, are far from appropriate for someone wanting to learn the game from the ground up.

</comment></comment><comment><USER7> Super System by Doyle Brunson is great for both beginners and intermediate players. Really the best way to learn, like most things, is to get out and play.

</comment><comment><USER8> kill everyone. this book is awesome.

[http://www.amazon.com/Kill-Everyone-Strategies- Tournaments-S...](http://www.amazon.com/Kill-Everyone-Strategies-Tournaments- Sit-n-Gos/dp/1935396307)</comment>


How to Master Life - <AUTHOR> http://www.perhakansson.com/post/41280488866/how-to-master-life

<comment><USER2> I like the focus on value. Find what you value most and do only those things.

Great read.</comment>


Foreign Stem Graduates Are Being Shut Out of the U.S. Job Market - <AUTHOR> https://www.bloomberg.com/news/articles/2020-05-19/foreign-stem-students-are-being-shut-out-of-u-s-job-market <comment><USER2> That's kind of the whole idea, isn't it, if you want Americans to get those jobs.

For the typical country, it's fair. The typical country does not permit an American to easily go over there and take a job.

<comment><USER3> Well, Germany for one, at least in the BCV (Before Covid) times: [https://worldcrunch.com/world-affairs/39blue-cards39-and- quo...](https://worldcrunch.com/world-affairs/39blue-cards39-and-quotas- europe39s-search-for-a-united-immigration-system)

For STEM graduates (or people with years of work experience in that field), the EU's Blue Card program basically would give you a residence permit (to use the exact term; most visas are for stays less than 3 months) if the prospective employer offered you a contract where the wage is on a similar level to locals.

And I wonder, why not. The companies need the brain power, they've certainly vetted the candidates, the company increases its productivity and the country gets another taxpayer.

</comment></comment><comment><USER4> >> The program is commonly used as a bridge for high-performing students to enter the U.S. job market, especially in tech.

Is the idea that students on OPT or employees on H-1Bs are all high-performing geniuses a myth that is believed widely? The implication (or maybe I am reading too much into one sentence) is something that I have seen quite often. Every student from an accredited university is eligible for a one-year OPT. Every student with a STEM degree is eligible for the STEM extension. The field one works in does not have to do anything with the degree since the case is often made that the skills learned during the degree program are highly transferable. In my experience, it was very rare to not get an OPT or an extension approved. This made a masters degree the cheapest and the fastest path to immigrate into the U.S. Whether this is fair or not is a collective judgement call by U.S. citizenry but it would reasonably be given very low or no priority when millions of citizens are suffering economically.

</comment><comment><USER5> > If he returns home, Kore says, he worries he won't be able to repay the > $66,000 in student debt secured by his family's house.

I wish people didn't do this, not any more. Getting a full-time job (even on F1 STEM extension) had been increasingly difficult to get pre-coronavirus, even if you were pretty smart. I've had many employers reject even looking at my application because of potential visa issues, and big cos who can handle the visa process have a very hit-or-miss interview process. And this is just for software jobs; the going gets a lot tougher for people in non-software STEM fields.

Unless you can easily afford 2 years of tuition + living expenses and/or get full-ride scholarships, it is time to seriously reconsider going to the US to study. Almost all random events like the virus (and even known, regular events like political elections) are always going to make things even more difficult than they already are.

</comment><comment><USER6> To quote Humphrey Bogart from 'The African Queen' — "you pays your money and you takes your chances."

</comment><comment><USER7> They can join the 30 plus million other out of work people in America now.

</comment><comment><USER8> Good</comment>


Mo.js – motion graphics for the web - <AUTHOR> http://mojs.io/ <comment><USER2> This is really cool. I'd love to see some sort of visual front end where you can set up your timeline and change position, tweening, and the like. I wonder how practical an exporter for After Effects would be? If this is made more accessible for artists, that would be awesome.

<comment><USER3> I haven't used this, but you might want to check out Bodymovin:

[http://codepen.io/airnan/details/PqjwYM/](http://codepen.io/airnan/details/PqjwYM/) [https://github.com/bodymovin/bodymovin](https://github.com/bodymovin/bodymovin)

</comment></comment><comment><USER4> The tutorial section is broken as hell, unfortunately.

<comment><USER5> Works fine for me in Chrome.

<comment><USER6> This is motion graphics for the web, not motion graphics for Chrome.

<comment><USER5> My statement was to confirm which browser it does work in to narrow it down.

You may want to state which browser you're having problems with to the developer instead of making a useless remark like the one you just made.

</comment></comment></comment></comment><comment><USER7> It's interesting, declarative APIs are amazing for a demo... A single function call can make literally anything possible. But when you eventually want to do something interactive, a declarative API can't work, and you need to learn a separate imperative API anyway... At which point what was the point of the declarative one in the first place?

<comment><USER8> Hm? Can you give an example where you would need to use an imperative API? Plus, .run() is imperative.

<comment><USER7> Adding additional elements on tap?

</comment></comment></comment><comment><USER9> As always with front-end libraries these days, my first question is: Does it play nice with React?

<comment><USER10> let's just make a wrapper :D

<comment><USER9> React generally requires more than just a wrapper, since its virtual DOM is populated in a highly controlled manner that libraries need to follow. But you can try.

<comment><USER11> Actually it's pretty trivial. You can always just have your render function be just a static div, set a ref to the div, and do setup in componentDidMount and updates in componentWillUpdate. Since the render function will always return a trivially identical subtree, it will never change that DOM node. Of course, if your component moves in the HTML hierarchy, your animation may restart, but that's unlikely in most use cases.

<comment><USER9> Depends. Animation tends to be about transitions, so you want to transition between elements. For that you need to handle the virtual DOM.

Twitter's Velocity [1] wrapper is an example of something that works like this, though the authors admit their solution is not idiomatic React.

[1] [https://github.com/twitter-fabric/velocity- react#readme](https://github.com/twitter-fabric/velocity-react#readme)

</comment></comment></comment></comment></comment><comment><USER12> This is great. I've been wanting to play around with motion graphics for a while now but am kinda on the fence about learning process.

This is much more aligned with my style.

</comment><comment><USER13> Though animations like these are nice, can somebody give some examples of svg animations that are a part of the usable interface?

For example, we have animating buttons and panels and UX elements, which I can't imagine doing in SVG.

Waiting bubbles, etc. are great, I'm just not sure of the widespread value. Happy to be shown a different view though.

<comment><USER14> Shopify uses animated svgs in the admin panel ui, they even wrote a nice blog post about it.

>A lot of the feedback we've gotten from front-end developers has been along the lines of "that's cool! Did you use images or CSS for [that effect]?" In most cases, the answer was actually neither, because most of the fun graphics, animations, and effects rely heavily on SVG with a bit of JavaScript and some clever Rails helpers.

[https://www.shopify.com/technology/17105760-building-year- in...](https://www.shopify.com/technology/17105760-building-year-in- review-2014-with-svg-and-rails)

</comment></comment><comment><USER15> I remember seeing the initial demo of this back when it was debuted. Glad to see it worked on!

</comment><comment><USER16> its finally here. So excited to use this.</comment>


Ask HN: What text editor do you use and why is it your editor of choice? - <AUTHOR> <comment><USER2> Vim. There are vim like modal editing plugins in most IDE's but I use vim specifically for 2 reasons.

1\. The windowing. None of the editors/IDE's with full gui front ends handle windowing as well as vim (and emacs). Just this morning a was stuck in visual studio trying to track down an issue, swapping files everywhere and forgetting what I was trying to find by the time I got there. I opened up vim and could have it all in one screen, simplifying my mental load. It's also great for day to day things, like having a multiple views and a controller open at once in an MVC app.

2\. Scriptability. Vim script is the php of editor languages, it's very easy to get started and/or write some quick and dirty scripts. Most of my day to day pain points are scripted behind a couple of key strokes. Also like php unfortunately, it's warts become noticeable on larger plugins.

<comment><AUTHOR> What flavor of Vim do you use? e.g. terminal Vim, Neovim, GVim, etc.

<comment><USER2> Gvim, though I think I'm going to transition to terminal vim (via cygwin) at work. There's a lot of tedious manual stuff around here that gnu tools help tremendously with (think log files everywhere) and I'd like to be able to interact with them better from vim.

</comment></comment></comment><comment><USER3> Sublime Text for local work, because of:

      - Its speed
      - Standard system shortcuts
      - Its many great features (minimap, multi-cursors, etc.)
      - Packages that extends the core functionality even further
      - Python extension API, which is pretty easy to use
      - It not being a huge battery drain and a resource hog

Vi(m) on remote hosts, as its very powerful and always available.

</comment><comment><USER4> I use vi because: a) it is the standard editor on UNIX systems. b) I haven't invested the time to learn emacs yet. :-)

As a sysadmin, I have to deal with many types of UNIX systems, and it's nice to work with something's that's standard that's likely to be there, no matter how old or new the system.

I even teach vi professionally ([http://www.verticalsysadmin.com/vi.htm](http://www.verticalsysadmin.com/vi.htm)) and people enjoy how powerful vi is.

Modern vi (vim) has some many nice enhancements as well.

</comment><comment><USER5> \- Random text editing? Sublime text. Fast, multi platform, native, great plugins, and I've paid for it, else I might have used Atom ;-)

\- HTML/JS Coding? VS Code - not native but still pretty fast and has many things that make developing wonderful such as Intellisense and Git integration.

\- Remote config editing? Vi or Vim, it is fast and it is always there for you.

\- CLJS or Clojure tinkering? LightTable, with its immediate feedback is great for trying out Clojure ideas.

\- The power of the old gods + a bit of finger speed and sanity? Spacemacs. It combines the speed of Vim with the power of an Emacs Lisp environment, plus has many amazing plugins (looking at you, org-mode), and also works on a remote host.

\- On Windows? Well, Notepad++ is not bad. It can deal with pretty large files better than many other editors.

</comment><comment><USER6> Emacs for all coding, and general writing. I like it because I've grown very comfortable with it over the years, and the extensive library of lisp allows me to do nearly anything.

(Years ago I wrote a Registry Editor for NTEmacs! Much Lisp is available at [https://emacswiki.org/](https://emacswiki.org/) )

The only exception is writing email for which I use vim. Mostly this is because I use a text-based mail-client (which I wrote) over SSH. So having a daemon-process doesn't make quite as much sense. Vim allows me to easily reply/compose to emails with spell-checking, and that's about the only thing I've turned on.

<comment><USER7> It's interesting to hear that you regularly use both emacs and vim. Do you ever mix up keybindings when typing? I'd think the cognitive load that such switching entails would make it more worth putting that time into mastering a single editor rather than using both.

Can you elaborate on how you got into such a system and how it's worked out for you?

<comment><USER6> Honestly? No. The bindings for different editors are different, so for forward paragraph I use "}" in Vim and "M-}" in Emacs. But I just don't think about it. I guess the visual look is enough to make me know what to type.

When it comes to email the "editing" is pretty minimal anyway, I'm mostly deleting bits of quoted text and inserting my reply, or composing from a blank template.

As for how I started many years ago I used to pay for a shell hosting site, and they gave me PINE the mail-client which was console-based. I've stuck with console mail clients ever since. So much more efficient than graphical mail handling, and I guess at the same time I started having Linux desktops and used Emacs for development. I did use emacs at some point for mails, but found it slow to start-up. So I kept using vim when I eventually switched to using the mutt mail-client.

At this point I'd say I'm very very familiar with emacs, both with the internals (C & Lisp) and as a user. By contrast I'm pretty good with Vim. I do keep learning new things about both, but I don't expect I'll ever master either!

</comment></comment></comment><comment><USER8> 1st: Sublime Text. Multi-cursor editing built-in, fast, uses same shortcuts as all other GUI apps.

2nd: vim. Powerful, available everywhere, only real drawbacks to me are lack of native multi-cursor, and that all of the cool vim features don't carry over to all of the other programs I deal with text in.

</comment><comment><USER9> Dad taught me Vi, now I use Vim.

I work in the sciences and incidentally, a number of my colleagues say they use either Vim or emacs because that's what their PhD advisor used.

</comment><comment><USER10> 100% vim in a terminal (with gnu screen, naturally). it tends to be installed on just about every machine I am called upon to admin or work on. I even do day to day development in a term window because I like that when I shell into a server at 3am to fix something, it feels The Same As Always. I keep a fairly complex vimrc up on a public repo so I can have my config anywhere at a moment's notice.

I think I only chose vi over emacs (those were the only real options when I learned) purely because I couldn't figure out where the 'meta' key was. first big breakthrough was getting really good at jumping around files without a mouse. second big breakthrough was mastering multi window mode and keeping lots of buffers open like an IDE.

it might just be junk psychology, but I hate every IDE I have tried in 20 years because I can't tolerate the non-instant startup or the code not getting 100% of screen real estate.

</comment><comment><USER11> 1\. nano. standard in many distributions, easy to work with, I don't have to go through the complex commitment to muscle memory that modes require.

2\. geany. larger projects demand something a little more, and geany provides just that. light enough that I can keep it running almost 24/7 and feature- full enough to support large projects with dozens of files.

<comment><USER12> No complex commitment necessary. You'll be faster with vim in less than two days. You'll never look back.

alias nano='vim'

<comment><USER11> there's no actual evidence for this. the only upside is your historical bias, but thanks anyway.

<comment><USER12> Then I suggest you disprove my hypothesis.

</comment></comment></comment></comment><comment><USER13> Emacs with Evil-mode. Because Emacs is an awesome platform, which gives me the power of Lisp, and Vi is an awesome editor.

<comment><USER14> Evil-mode has been on my "I should check that out some day"-list for quite a while now. ;-)

I guess I should check that out some day. (Maybe over the christmas holidays...)

</comment></comment><comment><USER15> I use a hex editor and write in raw Unicode.

<comment><USER16> Obligatory xkcd: [http://xkcd.com/378/](http://xkcd.com/378/)

</comment></comment><comment><USER17> Emacs - it feels so natural that I have an unfortunate tendency to automatically use Emacs keypresses in other editors unless I consciously interrupt my thinking to use whatever they require.

On Windows I always drop Notepad++ in as a direct replacement for the truly execrable Windows Notepad.

<comment><USER14> > Emacs - it feels so natural that I have an unfortunate tendency to > automatically use Emacs keypresses in other editors

When I switched from vim to emacs, it took me about two weeks to stop hitting Esc-Colon-W-Enter every couple of keystrokes. ;-)

What's more annoying, though, is that on macOS, most (all?) text input widgets support a few emacs key shortcuts (Ctrl-A, Ctrl-E, ...), while at work I have to use Windows - it gets confusing sometimes. ;-)

</comment></comment><comment><USER18> Previously, I used Vim. Now I use Emacs via Spacemacs. I honestly probably can't give a reason for changing. I wanted to check out Org and Magit. I also got tired of maintaining and hacking my .vimrc, endlessly tweaking it to never feel complete, polished, or content. My configuration is now well tested and changes are decided on by a large community of users. I've messed with Sublime and even bought a license, but don't feel like it's a good idea to commit myself to learning it and would rather use that time to be better with something like Emacs or Vim that have stood the test of time.

</comment><comment><USER19> Vim:

        When being on the road (battery) & working on HPC machines.
        With a nice dotfile kit (https://github.com/rscircus/dotfiles)
        inside tmux.

Atom:

        When being plugged in somewhere. Also with a nice synced
        setup (https://github.com/atom-community/sync-settings).

Atom is nice to the eye. I.e., Markdown Preview, Minimap, etc..., however, it's just a huge battery drain and therefore I usually prefer Vim. I'd dare to say, that Vim is still more powerful, as the contact to the terminal (and its powers [1]) is very good.

And it's just plain FAST!

        [1]: ripgrep, git, fzf, ctags, piping stuff through this and that, etc...

</comment><comment><USER14> I have been an emacs user for about ten years now.

When I started programming, I used emacs, then switched to vim. I used vim for a couple of years, and I have fond memories of it. I think the occasion to switch back to emacs was my attempt to become familiar with Lisp, but I am not entirely sure any more.

But eventually I re-discovered emacs and its customizability and extensibility. The fact that you can run a shell, a Lisp/Python/Ruby-REPL or an SQL session in an emacs buffer helped.

Also, emacs comes with a builtin Unix-ish shell written in elisp, which is nice on Windows.

For quickly editing a file (usually some config file) I still use vi sometimes, although it is becoming less common since I discovered emacs' server mode.

</comment><comment><USER20> [http://geany.org](http://geany.org)

I used to use Visual studio code earlier, it took way too much energy and RAM. My MBP ran for around 6-7 hrs with it, with Geany it runs for 9+ hrs. Written in C and it is minimalist.

</comment><comment><USER21> VS Code on Node, go or random projects because I like the extension system and it's very light, simple and free. Used to use Atom but that crashed all the time and was slow.

For big PHP projects PhpStorm because it does everything

</comment><comment><AUTHOR> Some of the factors I value in an editor are customization, modality, efficiency, performance, and battery drain.

\- Eclipse -- I used Eclipse when I used to do a lot of Java programming. I hardly ever write Java anymore and my editor-oriented values have since also evolved. Pros: Works well out of the box. Many features for easily and efficiently writing and testing code. Cons: I'm not a fan of the bloated IDE environment. Speed is not a strong point. I don't recall it being very customizable.

\- Sublime Text -- All around solid editor and works well without any configuration. Pros: Looks and feels nice. Strong plugin ecosystem. Fairly customizable? Cons: For a while there was no development and the project seemed abandoned. I believe this has improved and there is at least more active development.

\- Atom -- Looks and feels great to use. Pros: Active development and strong plugin ecosystem. Very customizable. Also let's you get things done without configuration. Low learning curve. Cons: Sometimes slow and can drain your battery (Compared with other commenters, I haven't found slowness or battery drain to be that major of issues)

\- Vim (terminal) -- Hard to beat efficiency. Pros: Super customizable. Highly efficient text editing. Use from the terminal provides power (i.e. convenience) when work takes places predominantly in a terminal. Available on nearly all *nix systems. Convenient for editing files on a server. Easily git clone your config to a new system and you're good to go. Doesn't pose an issue for battery. Cons: Learning curve. Not so out of the box friendly (unlike most of the other editors I mention). I often see people using vanilla (or near vanilla) Vim without realizing how much they're missing out on the plugin ecosystem. Requires investment in order to get the most power out of it.

\- Visual Studio -- Used VS while writing C# for a few months. Pros: Works well out of the box. Very helpful code completion. Lots of features I didn't use but some might find useful such as managing a git repo through the GUI. Extensible. Cons: Felt unnecessarily bloated (for my tastes). Slow startup. Cluttered GUI. Not very customizable (though I didn't try too hard).

Text editors I'm curious about are Spacemacs, Neovim and VS Code.

</comment><comment><USER22> Textmate for projects at home. I use it because it's a decent editor for Mac and I used it a lot in my previous job.

Notepad++ and Vim at work. I am forced to use Windows and enjoy a lightweight editor over and IDE. Notepad++ is light but has decent support for plugins and code highlighting. I use Vim on Linux servers for remote editing and good highlighting. I've used Vim for like 20 years but never spent much time learning much more than the basics (insert, delete, regex search/replace, line numbers, and write/quit).

</comment><comment><USER23> I like Vim for editing markdown (I write books on Leanpub, and use Deckset for my lecture presentations, so this is serious work). I'm still learning it but I enjoy learning how to customize it. My advice: google and implement one change at a time, rather than trying to add ten different features to your .vimrc all at once.

For coding Python, I prefer PyCharm from JetBrains. In time I may get Vim to do everything a real IDE does, but time is money and I can't wait.

</comment><comment><USER24> I use Atom cause I can use thousands of extensions that make coding faster and sometimes easier. I sometimes use Brackets cause I can see instantly what I'm doing

</comment><comment><USER25> At work I use Windows and use Notepad to keep track of random notes (not a great solution actually, since I end up with dozens of unsaved notepad windows). Coding is all in Visual Studio, except maybe Atom for some smaller scripts.

At home I run Fedora and use Visual Studio Code for random notes and code snippets. I work on a PHP personal project at home so for that I use PHPStorm.

<comment><USER26> Definitely try Notepad++ as a replacement for notepad.exe. It will even autosave your unsaved notes. And it has tabs.

<comment><USER25> I actually have Notepad++ installed and for some reason just keep opening up Notepad instead. Old habits die hard! I have now pinned it to my taskbar and will try to force myself to use it instead.

<comment><USER27> Maybe you can replace the shortcut[s] for notebad with notepad++, maybe the .exe file itself even.

</comment></comment></comment></comment><comment><USER28> Config files, one line edits, etc.:

* Vi (its everywhere) * Nano (its good enough for 80% of what I do, and fast, and nearly everywhere)

For scheme things:

* Dr. Racket. Its amazing. * Emacs. Its a grumpy old fart, but there isn't really anything better on the cli. * A million nREPLs with file system access to dump their own environment to file.

For project sized things:

On Windows, Notepad++.

Anything else, Sublime Text, because of its speed.

</comment><comment><USER29> I stopped using emacs the moment I started using a mac, I kept erasing text pressing CMD-x instead of ALT-x, and other such annoyances. To date, if I have to use IRC, I open Emacs and use erc. For everything else I keep switching every few months between Atom, Sublime Text 3 (purchased) and VS Code.

</comment><comment><USER30> Vim (or, PHP Storm using VIM plugin - although it isn't as powerful as normal vim), just because it is much faster to use/navigate/edit (and available on any machine).

I prefer vim in a proper gui though (as opposed to in a terminal app), its just a bit easier sometimes to use a mouse...

</comment><comment><USER31> Jedit - the most underrated editor, its extremely customizable and has great set of plugins

</comment><comment><USER32> I've moved completely from Vim to Spacemacs. I can't see myself going back to plain Vim any time soon. The emulation via evil is very good, and the layers provided are generally immediately usable with consistent keybindings.

</comment><comment><USER33> vs code due to its Go support

<comment><USER20> I have found that vs code takes too much of battery and RAM, thus I started using Geany, my battery backup has drastically improved. [http://geany.org](http://geany.org)

</comment></comment><comment><USER34> Vim on Cygwin & notepad++ on work. NeoVim and a few times Kate on my PC.

I work usually on windows with Eclipse + Vrapper (Eclipse poor Vi emulation plugin). But every time that I can, I try to use Vim to edit files.

</comment><comment><USER35> Intellij Idea + IdeaVim plugin.

Navigating between files was so comfortable that I started reading lots of code than before. We can literally see the increase in productivity.

</comment><comment><USER36> I am honestly surprised at the lack of flames in this thread.

</comment><comment><USER37> Random small files: vim.

Java projects: the IDE mandated by the customer.

Anything else: emacs.

</comment><comment><USER38> For texts and articles: Scrivener

For tinkering around: VS Studio Code

</comment><comment> greatest-ape IntelliJ IDEA with the vim plugin. This gives me great code completion, auto imports, go to definition etc. And the ergonomics of vim.

</comment><comment><USER39> I have text editor commitment issues; I change editors somewhere between bi- weekly and bi-monthly. Some of the reasons why I switch to and fro:

\- Visual Studio Code—pull factors: Better performance than Atom. Solid language support for Python, and excellent for JS and TypeScript, and the Language Server Protocol means that the UI is identical no matter which language you use. Looks good. Push factors: Not as customisable as other editors, especially visually. Startup time still leaves me wanting.

\- Atom—pull factors: Infinitely customisable; basically the Emacs of the 21st century. Looks good. Push factors: Git integration is nowhere near as good as VSC (ironic considering its authors), and I've yet to find a Git plugin I really like. While it's not unusable, the performance isn't the best.

\- Sublime Text—pull factors: Performance. The ST dock icon often doesn't even get to finish its first bounce animation before it's ready to go, and it can handle large files amazingly. Push factors: Stagnation, both in the editor and the plugin ecosystem, compared to Atom and VSC. (It seems like this has been improving a bit lately.)

\- Chocolat—pull factors: Really beautiful, native Cocoa UI. Buffer list in the sidebar instead of tabs and command-click for split windows is really neat, and I wish more editors worked this way. (VSC and ST can both be configured to get half-way there, but they both conceptually differ with Chocolat on how splits work, and I prefer Chocolat's approach.) Push factors: Less extensible, and worse plugin ecosystem, than anything else on this list. (You can't even provide a third-party autocompletion engine.) Not cross- platform, so I can't use it on my Linux box at work. Configuration is through a GUI only, so difficult to keep under source control and sync across machines. No complete-as-you-type. Hasn't had a release since June. Actual text editor widget seems kinda janky sometimes.

\- Vim—pull factors: Modal editing. (All of the others have Vim-emulation plugins or a Vim mode, but they have varying levels of usefulness. Chocolat's can't even easily do key remappings last I checked.) Rich plugin ecosystem. Push factors: Vimscript somehow manages to be the only language more puzzling and hideous than Bourne/Bash shell scripts, although to its merit it doesn't have a keyword called 'esac'. GUI mode is essentially an in-process terminal emulator.

There's a few more I'd like to try, like Brackets, Coda (I love the idea of having terminal emulator tabs in your text editor! I'm not sure if I like how web-focused it is though), and CodeRunner; and a few more I've tried before but not stuck with for any length of time, like TextMate and BBEdit. I also used PyCharm at work for about six months, but stopped when the VSC Python extension started getting good and haven't gone back since. But those are the ones that I've actually used in earnest for a decent length of time and still regularly switch between.

</comment><comment><USER40> Visual Studio Code. Love it. Flexible, fast, no bloat and handles Python and other languages well.

</comment><comment><USER41> emacs and joe on nox shells.

Why? It can do everything. For 25 years ongoing

</comment><comment><USER42> Sublime with vim mode.</comment>


Update: This is what Bookstore chose to do who asked HN for help - <AUTHOR> http://www.wickedlocal.com/cambridge/news/x1926898984/Lorem-Ipsum-looks-to-reinvent-to-stay-afloat-in-Cambridge

<comment><AUTHOR> But to make it happen we are launching a funding campaign: <http://www.indiegogo.com/lorem-ipsum-books/x/2246908?c=home>

</comment><comment><USER2> Not to be a downer, but can't people already go to the library for free?</comment>


Have A Plan - <AUTHOR> http://howtosplitanatom.com/questions/startup-reactor-how-will-i-make-money-week-three/

<comment><USER2> There are far more than 3 business models online.

Here's a brief list of 9: <http://digitalenterprise.org/models/models.html>

<comment><USER3> Where would salesforce.com fall in that list of 9?

<comment><USER2> I think it doesn't, actually. It's sort of in between the subscription model and the utility model. Which goes to show, there's more than 9 - so the reduction to 3 is a little absurd.

</comment></comment></comment><comment><USER3> _Software - Develop a piece of software that people could be helped by using and then charge them for the privilege._

Sounds like the exact same thing DHH was preaching at Startup School.

When multiple people start saying the same thing, there's probably something to it.

I love the math: _($39.00 X 1000 = $39,000 per month)_

Better get back to work so I have something so sell those first 1000.

<comment><USER4> I have trouble convincing myself that people will buy my software. It seems so daunting. (just sharing)

<comment><USER3> You'll have NO trouble convincing me that people will buy your software.

Email me pls.

<comment><USER4> [If you are not edw519, you don't have to read further. My apologies on using this thread for personal purposes.]

Ed, I got your emails from your yahoo account earlier as well as today and replied to all of them from my gmail account and my day-job email account. I just saw your email today that says you didn't hear from me. Looks like you didn't receive any of my emails! All these days I was under the impression that you are busy.

Looks like yahoo mail server is dropping my emails :-(

<comment><USER3> Wow, I had no idea (obviously). Yahoo has always put my southwest emails in my spam folder which pisses me off because I get 1000 spam per day. I wonder if they're doing that to your emails too.

Sounds like yahoo's spam filter needs a little work. Problem is one or two false positives can really screw you up.

Anyone else have this problem? Or has everyone already moved to gmail.

Looks like I may have to bite the bullet and make the switch. Is there an easy way to redirect without telling everyone to update their address book?

<comment><USER4> I don't want you to switch just for my sake. I was thinking of setting up a private room for us in FriendFeed, if you are already a FriendFeed user.

Shouldn't Yahoo automatically white-list people _you_ have written to?!?!

[ edit: if someone else is reading this... Issue resolved :) ]</comment></comment></comment></comment></comment></comment>


Indian Startup Coverage - <AUTHOR> http://cdprashanth.blogspot.com/2007/12/indian-startup-coverage.html <comment><USER2> I've been following webyantra and pluggd.in for a while, and they both are well written blogs.

<comment><USER3> www.avashya.com is good too</comment></comment>


Remote Code Execution in Alpine Linux - <AUTHOR> https://justi.cz/security/2018/09/13/alpine-apk-rce.html <comment><USER2> > When apk is pulling packages, it extracts them into / before checking that > the hash matches what the signed manifest says it should be.

Pros: downloading and installing packages is faster.

Cons: vulnerabilities like this.

Reading the commit message in [https://github.com/alpinelinux/apk- tools/commit/6484ed9849f0...](https://github.com/alpinelinux/apk- tools/commit/6484ed9849f03971eb48ee1fdc21a2f128247eb1) I'm not convinced they fixed it.

<comment><AUTHOR> Just to preempt some replies to this I can already picture: if you find more bugs, please report them to the maintainers I mentioned in the post and not via an HN comment!

<comment><USER2> Of course :-)

</comment></comment></comment><comment><USER3> > This is especially bad because packages aren't served over TLS when using > the default repositories. This bug has been fixed and the Alpine base images > have been updated [...]

Do I understand this right: They fixed the apk vulnerability but the packages are still downloaded without TLS in default repositories?

<comment><USER4> I'm usually the first to step up to the plate and insist on HTTPS, but it's not actually necesary here. The packages are PGP signed, and the public keys are established securely at install. This is actually more secure than SSL imo because it uses web-of-trust for key exchange rather than easily compromised certificate authorities.

<comment><USER5> I don't disagree that SSL/TLS doesn't add much security (though it does provide privacy regarding the packages being pulled), but don't conflate it with the CA system; they could just as easily pin the SSL/TLS cert at install.

<comment><USER4> Fair point, but this would still be less secure. Packages are generally signed by individual maintainers and as maintainers come and go, the trusted keyring evolves. It also puts the power of signing packages directly into the hands of maintainers, rather than granting access to a single all-powerful private key.

<comment><USER6> I don't think anyone is arguing that you should replace PGP signing with HTTPS.

<comment><USER4> I don't think that anyone is arguing that, either. I'm saying adding HTTPS isn't an improvement.

<comment><USER7> And yet the existence of this exploit, which would have been prevented with HTTPS as I understand, counterproves your point. There's a reason security engineers advocate for defense in depth; even if one system fails you have a higher likelihood of preventing any issue or perhaps at least mitigating the scope/severity because other systems are still there. Self-signed HTTPS certs seems about as safe & secure as self-signed PGP packages so how can having both in any way reduce the overall security.

<comment><USER4> "The existence of an exploit" will undermine literally any system and you can't meaningfully use that argument.

<comment><USER8> "The existence of an exploit" is an argument in favor of defense-in-depth techniques, as an exploit in one layer does not result in full-system compromise.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> The author launched a bug bounty program for open source projects: [https://bountygraph.com/](https://bountygraph.com/).

That's a wonderful endeavor and I would gladly try to "convince" people I know to pledge money in it.

Monetary incentives are important for open source maintainers, as they cannot always afford the time to work on their projects.

<comment><USER10> I don't know exactly how that bug bounty program works, but it feels like there may be some fundamental issues with bug bounties in the context of open source projects.

For example, what is there to prevent someone from introducing a bug into an open source project, first of all, and then subsequently claiming a bounty for identifying and/fixing it?

(Maybe this can end up by forcing more careful pull request auditing for security critical projects, but that seems like a big ask..)

</comment></comment><comment><USER11> @justicz: that's one clever hack, thanks for explaining in detail how it works!

In case somebody is wondering about Alpine Linux based postmarketOS, this is what I wrote on /r/linux regarding this issue:

postmarketOS is directly using Alpine's apk-tools package from their repositories, so a simple "apk upgrade" will install the latest apk version where this is fixed.

Regarding the pmbootstrap tool we are using for development to set up Alpine Linux chroots, just update to the latest git version with git pull as usually, and it will make sure that the apk version is installed where this is fixed before you can use any of the chroots. Pulling from git may seem strange, but we do not have a stable release yet for pmbootstrap, so this is the normal way to update the code anyway. We're getting closer to a stable release of pmbootstrap though.

</comment><comment><USER12> I can only think about this and be fearful due to the staggering number of Docker tutorials that happily whisk away the details as a sales pitch for streamlining the development process. Similar to the Node ecosystem, there's bound to be lots of junk out there that will never be updated.

<comment> swingline-747 Docker containers multiply faster than rabbits in a forkbomb. It behooves Docker to do vulnerability and malware scans of containers, because letting random people have semi-sandboxed write and execute permissions on random other people's systems is a dangerous combination. That will cover some cases, but end-to-end personal accountability of container publishers is a necessary evil as there is unlikely a reasonable technical way to ensure there aren't malicious scripts in a given docker container. Signature-based malware scanning operates only in a limited fraction of the past since it requires submittal and review of what has been seen by a particular user AND submitted to a malware scanner publisher for analysis.

Scenario: Anonymous docker publisher installs a kiddie porn i2p or tor downloader service hidden in a container for Apache Kafka. Random corporate trainer accidentially picks said container, blogs a howto with it and suggests its use in in-person and web-based courseware. IANAL but Who's liable? The end-users using it? The trainer? Docker?

Disclaimer: I love Docker, but it needs some chain-of-custody assurance and greater visibility of container contents.

<comment><USER13> Docker ships with support for image signing, execution authorization (based on trusted signatures), and distribution endpoint authentication (TLS / PKI). Most image registries offer deep package inspection, OSS package manifests, and CVE visibility.

If all that isn't enough, individual image layers can be accessed and inspected by hand (they're just tar files).

If you're looking for "end-to-end chain of custody" you're going to need to specify the ends. Image signatures get you point-in-stack authorship assertions. I'm not sure what else anyone could ask for here.

</comment></comment></comment><comment><USER14> Isn't that the distro that the jre docker containers use as the base?

EDIT: Just looked into that.. it looks like just the java 8 containers.

<comment><USER15> Alpine is a popular choice for containers because it has very small footprint.

</comment></comment><comment><USER16> Looks mostly avoidable if O_NOFOLLOW had been used? But the fix doesn't seem to add that, instead relying on other checks?

</comment><comment><USER17> It seems like the attack is not completely quiet as an error is printed while installing a modified package, either from compromised mirror or by man-in- the-middle:

        ERROR: ${package_name}: BAD signature

Remote code execution will happen, but at least you will get a warning that something suspicious is going on.

<comment><USER18> That is even red and there's no obvious way for the attacker to disable that. But do people really look at the build log as long as the build is successful and the intended containerized program seems to work just fine?

<comment><USER19> Maybe it's possible to overwrite already printed lines with terminal sequences.

</comment></comment></comment><comment><USER20> People really have to stop thinking they can write package managers.

<comment><USER21> This is a bummer, clearly. Otherwise, apk is pure joy to work with, as is indeed all of Alpine.</comment></comment>


Ask HN: How would you get a friend started on programming - <AUTHOR>

A close friend of mine recently came to me to teach him programming. He had absolute 0 background knowledge in the subject. Otherwise, he's a smart guy with a genius keen interest to learn.
I started teaching him some simple Objective C syntax. After doing some if & while demos, I taught him the concept of OOP and made a very simple app that relies heavily on OOP with him. By now, I could clearly tell that the guy was totally confused and didn't really understand the concepts of OOP. A few more attempts and 2 hours later, we both gave up.
How would you have done it? What resources would you have used? What language would you teach a first-timer?
Or a different question would be: How did you yourself get started on programming? <comment><USER2> i think, you can´t do everything all at once. since programming is quite abstract, perhaps it would be enough to do some basic stuff like variables, ifs and basic output.

most important (to me): always show the results, like run the program. otherwise people have no clue what all those strange lines mean and do. martin</comment>


The Japanese Prime Minister's Website Cost $548,000 - <AUTHOR> http://www.kantei.go.jp/

<comment><USER2> As developers, when we see something like this, we have two responses to choose from:

a.) Outrage. How could this possibly be??? I could have built them this site in _four hours_. This sort of thing must be stopped.

b.) Joy. How awesome is my life that I work in a industry where I could conceivably bill _half a million dollars_ for a simple website. Gotta work on my networking to make sure that I'm the guy they hire to build version 2.

I think that, as computer folk, we have an unfortunate predisposition to Reaction A. I'd suggest, if you can stomach the idea, manually shifting your outlook on life to more closely line up with Reaction B. Life gets a lot better if you do.

<comment><USER3> I think the trouble is that, for many programmers, "work on my networking" is on the same level as "grow an extra pair of arms" — might be handy, but no idea how to make it happen. So they resent those who do know how.

(I realized this might sound kind of condescending, so to be clear: I am in the category of "couldn't network his way out of a paper bag." I just realized a while ago that resenting people who are better than I am at some things was counterproductive, and it's better to watch and learn.)

</comment></comment><comment><USER4> 548k actually seems about right. I think a lot of us would be surprised how much a professional CMS integration can cost, as well as how long it takes to do it right.

<comment><USER5> Yeah, plus, if you imagine it's got data retention or security requirements like other governments here. That can really knock up the price, especially if there are conformance tests in the contract.

</comment></comment><comment><USER6> These "overly expensive" publicly-paid sites often include from scratch creation of extensive content management system which requires a lot of work. That being said, most of the money is often spent on maintenance and running the site. I.e. it can contain 5 years warranty, 5 years of hosting, guaranteed availability and scalability, and so on... (even telephone support in some cases).

Don't know if this is the case though. I'm also not saying it is a good thing. In my opinion, ordering site like this is just a way to steal more money than you could with a custom wordpress site hoste on a shared host.

</comment><comment><USER7> Not knowing Japanese it's hard to evaluate the site for its entirety.

Often though, technically minded people tend to overlook the work required to organize and produce quality content on the web.

They might have content roadmaps made, pre-planned topics to write about during the year. They might have created a communication strategy, including stuff like how to react on current events in Japan and "the tone of voice" when writing to the public.

They might have trained the a number of staff to use the authoring tools and so on.

Doing the CMS integration is usually the easy part of the project.

</comment><comment><USER8> Government sites are expensive because of all of the hoops that must be jumped through. The increase in administrative load over a normal corporate client is at least one order of magnitude.

</comment><comment><USER9> Well I've been on a govt contract to build a little intranet website (and do some other work) for nearly five years now and we're just getting to the point where the software might be possibly getting close to maybe tentatively getting approved (barring yet another rotation in management, shift in priorities, change of scope etc.) So yeah, half a million for a government site is cheap. Dirt cheap.

</comment><comment><USER10> It looks nice? I don't get it.

<comment><USER11> Agreed. It looks solid, and (while I was admittedly just making a red-tape rant in another thread,) delivering an attractive website for a government entity that cost less than three quarters of a million dollars is something of a feat in my opinion.

That this isn't particularly ugly or broken in some way is what's surprising to me.

</comment></comment><comment><AUTHOR> source (in Japanese)

<http://jp.wsj.com/Japan/Politics/node_419085></comment>


Virgin Media, why are you manipulating my traffic? - <AUTHOR> https://jackpearce.com/virgin-media-why-are-you-manipulating-my-traffic/

<comment><USER2> The answer may surprise you.

We all know the UK has internet blacklists managed by various agencies such as the IWF[1]. These blacklists are highly granular and allow blocking of individual HTTP resources.

Virgin is intercepting your DNS traffic and putting you through a proxy to Google. In this way they can block individual pages and images on Google without denying you access to the entire site.

UK ISPs are being forced by the law to filter certain content. Doing it in the manner detailed above angers their customers less. It also leads to interesting situations for site owners. If a site has even a single URL on the blacklist the entire UK will appear to be coming from a small set of proxy IP addresses.

[1] [https://www.iwf.org.uk/](https://www.iwf.org.uk/)

<comment><USER3> This is not correct. There is no law on the books in the UK which compels ISPs to filter content. There are a couple of court orders in place on some larger ISPs to block access to a few sites, however.

<comment><USER2> My apologies. Being unfamiliar with UK law I mistakenly made the assumption that the blacklisting is legally required.

However it might as well be. According to [https://en.wikipedia.org/wiki/Internet_Watch_Foundation#Blac...](https://en.wikipedia.org/wiki/Internet_Watch_Foundation#Blacklist_of_web_pages) it is in effect on 90%+ of UK ISPs and there is significant pressure on ISPs to implement this technology.

</comment></comment></comment><comment><USER3> This is almost certainly a poorly implemented CDN.

They probably shouldn't be doing it at all, though. They're not known for great skill in maintaining a functioning network.

</comment><comment><USER4> Does this still occur if you put your virgin media hub into modem mode and use your own router?

<comment><USER5> I'm using the "super" hub in modem mode and can confirm the same results on my network, even when using OpenDNS/Google DNS, although no DNSCrypt yet.</comment></comment>


uint32 maxout gets woman denied a $43M jackpot - <AUTHOR> http://edition.cnn.com/2016/11/01/us/slot-machine-winner-steak-dinner-trnd/index.html <comment><AUTHOR> Some things are too good to be true.. All hail the uint32 God!</comment>