What Would It Take to Fix New York's Subway? - <AUTHOR> https://www.nytimes.com/interactive/2017/12/22/nyregion/what-would-it-take-to-fix-new-yorks-subway.html <comment><USER2> I find this situation incredibly interesting as an outsider.

I live in the SF Bay Area where we have a Muni "subway", if you can even call it reminiscent of one and BART. They're both absolutely awful, between not having good/expansive coverage/timely service. A plethora of issues plague both.

Both times I visited NYC this year I took the subway everywhere. Out of probably 40-50 subway rides, only a handful were delayed either in-tunnel or while I was waiting in the station; the trains were pretty much all clean without odd (read: nasty) smells. And, of course, the routes go all over Manhattan rather than just through, say, Lexington or Park Ave (like how SF's Muni basically converges and mainlines under Market St.).

I found NYC's subway a pleasant improvement. Yet I keep seeing articles about how it needs to be fixed.

Just interesting to spectate as an outsider.

<comment><USER3> > I found NYC's subway a pleasant improvement. Yet I keep seeing articles > about how it needs to be fixed.

Decades of underinvestment means that it's not as good today as it was ten years ago, or as good ten years ago as it was a few decades before that.

That said, even with all its problems, the NY metro area still has far better and more extensive public transportation than any other metro area in the country. Over a third of all subway stations _in the country_ are located within New York City's city limits, and that's not even counting the three separate commuter train options, Amtrak, bus service, or Staten Island railway.

<comment><USER4> Yet I have heard horror stories of how it was so run down in the 70's and 80's that people were afraid to even take it at all.

Isn't this a case of people glorifying the past? Are there objective metrics that demonstrate service quality has degraded (reduced train frequency, reduced amount of seats, etc...)?

<comment><USER5> It was really terrible in the 70s when the city went bankrupt. Then it got better, and now it's getting worse again.

<comment><USER6> The state took over the subway system when the city went broke. The MTA is a state agency.

</comment></comment></comment></comment></comment><comment><USER7> New York doesn't have enough money to get it done. The politicians are too busy paying for all the election promises they've made over the last 50 years. And they absolutely need to cut the bureaucracy (code word for 'unions' and 'government agencies') that are deeply entrenched in the government.

I don't think New York can do it until the people get tired of watching the decay and the current political machine gets voted out.

BTW: If you disagree please talk out your points.

<comment><USER8> I'm curious how much money is needed. Why is it that Japan, Hong Kong and most developed European cities have much better rail transportation ? I don't think money is the only issue. NYC is probably one of the richest cities in the world and yet you say they don't have the money to fix this ?

I know construction in US is expensive but it can't be that bad.

<comment><USER9> Hong Kong has a really interesting answer to that question: they turn a >$1B profit each year. But they can be better described as a real estate company that runs a subway as a side business to make their real estate more valuable.

<comment><USER10> Yep, I've always been fascinated with that approach and I think it's one of the best solutions. The station itself enriches the land it's on. Even better, it makes the whole public transit system more efficient. If I have to go to another city to shop at a specific store, then it's far more convenient if that store is located there in the station instead of having to take a bus from the station and back.

</comment></comment></comment></comment><comment><USER11> Better article with real numbers: [https://medium.com/@johnnyknocke/the-mta- loses-six-billion-d...](https://medium.com/@johnnyknocke/the-mta-loses-six- billion-dollars-a-year-and-nobody-cares-d0d23093b2d8). TLDR version: when it costs you $2 to do the same thing comparable European systems can do for $1, you're going to have a bad time.

</comment><comment><USER12> What would it take to fix the subway? Money of course. Where's it come from? Who cares, just spend it. Transit is necessary. Tax the businesses that benefit from good transit. Raise the gas taxes, because driving is a luxury if you could have taken mass transit. Boston's transit is a mess too. Some of the problems can be fixed just by throwing money at the problem. The Boston subway breaks down all the time because the cars are way past service life. You can just buy new cars, and service will improve a lot. But they waited so long that breakdowns are constant. The new cars won't be here for years, but we don't need any upgrades other than buy the cars and put them on the tracks. It's seriously frustrating that these things are in such a bad state when massive improvements can come by just spending money to fix old broken stuff. Call me naive, but I just want better public services, and I understand it costs money.

<comment><USER13> After reading your comment twice, I still can't tell if it's sarcasm or not...

<comment><USER14> Why would it be sarcastic? NYC area is one of the wealthiest areas in the world, in large part due to the subway. Pay it its due, like Hong Kong does.

<comment><USER13> Because the parent poster basically is ok with throwing money at it. But that won't work. Not even close.

The NY Times started this earlier this year:

"Parts of the system are more than a century old; replacing everything would cost upward of a trillion dollars."

Source: [https://www.nytimes.com/2017/05/22/nyregion/subway- service-m...](https://www.nytimes.com/2017/05/22/nyregion/subway-service-mta- age.html)

<comment><USER12> You don't need to replace everything. You can fix things. It's probably billions still, but I still say the money should be spent. Even if it's hundreds of billions over the new couple decades, spend the money, fix the subways. Start with essentials. Then continue maintenance while doing simultaneous improvements.

Let's be clear, if you don't spend money you definitely can't fix the problem. Will only money fix it ? No, but if you need to change management, change expectations, change schedules, do that. All that will cost money as will buying new cars and new signal systems and hiring crews to install the signal systems. What's needed to fix the system is a lot of changes and they will all cost money. But the reason the changes haven't happened is due to money. Boston's system has certainly suffered from lack of money. Sure they have billions, but it isn't enough.

If you don't have enough maintenance people to do the work, that is still a money problem. If you pay more for that job, more people will want to do that job, and then you can hire people to staff the positions correctly. It might take a few years for the next generation to come into the workforce, but I believe it can be done.

</comment></comment></comment></comment></comment><comment><USER15> I still don't understand why the signal system takes so long to upgrade.

Can't they install most of the new system while the old one is still working on the same tracks? And isn't digital signalling available from contractors that have already done the work in other cities?

<comment><USER16> No downtime. The system runs 24/7/365.

<comment><USER15> I'd believe you if my local R line wasn't shut down every weekend for the next year.

<comment><USER16> Precisely my point: no regularly scheduled downtime to do these things results in major outages when the situation gets too bad to ignore. Same with the impending L-train shutdown.

</comment></comment></comment></comment><comment><USER17> I was a bit shocked by New York's subway; you always seems to have to wait a loooong time for a train. On the London Underground the carriages are much smaller but waiting even 5 mins for a train is vanishingly rare. Tokyo has a crazy subway that guarantees to almost the second when the trains go. You can literally say exactly when you'll be somewhere across town down to the minute and it's nearly never wrong.

<comment><USER18> Completely agree. Paris, London, and Tokyo all have better and cleaner subways than NYC. But NYC is about as good as it gets in the US. Believe it or not, as nasty as NYC subways are now, in the 1970s they were far dirtier.

</comment></comment><comment><USER19> Andy Byford just left as CEO of the TTC to take this challenge on. He's a more ambitious man than I, to actively seek to try to fix the NYC MTA. I wish him luck and wish we did more to support him while he was here.

<comment><USER20> Totally agree! He was able to accomplish a lot at the TTC with pretty tight resources.

</comment></comment><comment><USER21> Apparently an act of congress wouldnt be an uphill battle if history is to be any teacher... [http://www.nydailynews.com/new-york/president-ford- announces...](http://www.nydailynews.com/new-york/president-ford-announces- won-bailout-nyc-1975-article-1.2405985)

service runs very well in NYC (anecdotally), but compared to cities like LA or Phoenix their trains are the haggard burro's of times long gone. Sad to say but I feel the only thing that will improve the quality of this service over time is cascading system failures similar to what BART is experiencing. Politicians are gleefully divorced from the concept of public transportation in their largest city, so until the NYC Subway begins to impact titans of industry and their ability to call upon the masses to come to work on time, its likely to remain a grisly reminder of just how real living in america can be.

A culture shift might not hurt either, although full disclosure im not entirely steeped in the culture of the big apple. Here in Los Angeles, extending our purple line train to the tune of four billion dollars seemed like a generally wise investment to everyone; the tax passed easily.

</comment><comment><USER22> As non-NYC resident the first thing I though was, "Huh, I wonder what's wrong with New York's subways?" But alas they went straight into solutions so I am still left to wonder what problems they are trying to fix and in what priority. Pretty webpage though.

<comment><USER23> Maybe you should try reading the article?

from the article:

"Many stations like this one are not prepared to accommodate a larger volume of passengers, even if a new traffic control system allowed trains to come more frequently."

"Much of the subway's signal system uses antiquated parts like the electromechanical relays shown above from the West Fourth Street-Washington Square station in Manhattan.

Train traffic for about two-thirds of the subway system is monitored in rooms like the one shown below at West Fourth Street. Little has changed in a century.

The old signal system uses a network of switches and cables along the track to keep trains a safe distance apart. The technology is outdated and expensive to maintain."

<comment><USER22> You are right. The article only claimed to provide a list of expert suggestions on how to fix the New York subway and it did that. I'm the one who wants it to be more.

It strikes a chord because the suggestions offered feel like so many tech roadmap planning meetings I've been in where the technology itself is the end and not a means to an end. Without the greater context I am not sure how anyone can evaluate the suggestions to try and predict whether or not they will accomplish the stated goal.

Assume the hallways were widened, all the relays, monitoring rooms and signals were updated addressing each quote you provided. Is New York's subway fixed now? Maybe it's better for some definitions of better but I digress...

</comment></comment></comment><comment><USER24> The theme is often money, but here's where I think NYC (and the U.S.) get it wrong, and how other countries like the UK and France get it right. I'm no civil engineer or government contract negotiator so I'd love to be corrected here, but here goes.

The U.S. prides itself on local government, private industry and so forth, public-private cooperation ideally leading to more money efficiency since private companies 'care' and governments are 'wasteful'. Great. However, some problems I've noticed here:

\-- Local government is actually more inefficient. The ARC project cancelation which would have already dug a tunnel under the Hudson river between NYC and NJ in the biggest commuter hub in the country was canceled because three government organizations, NY State, NJ State and the Port Authority, couldn't agree on funding and were playing politics. The NJ governor (Christie) later allocated the moneys to lower the gas tax before his re-election campaign as well as for highway repair

\-- MTA, the parent organization that runs the NYC subway system, is said to be woefully underfunded and so forth. __Yet, the Port Authority, a totally unrelated organization FUNDED BY TAX MONEYS AND PUBLIC TRANSPORT TOLL COLLECTIONS, spent $4B to refurbish a single station and erect a dinosaur skeleton and called it the "World Trade Center transit hub." While the subway system this transit hub is attached to is utterly failing apart due to repairs. A strong centralized government would have made this less likely. __Fulton St Station was refurbished for the cost of 1.4B, again at the same time that signals are failing and trains are breaking in other parts of the subway system this station is attached to.

How do either of these projects get away with giving billions of dollars to select contractors, to select private corporations, (st)architects and so forth? How do we ensure that someone in power didn't get in bed with one of these private developers?

\-- The NYC Mayor and the NY State governor fight seemingly daily over blame for the disastrous subway system. The Mayor himself is something of a scatterbrain, getting involved in issues when he gets screamed at, while the governor cares more about his constituents upstate. Both are fairly corrupt.

There IS money, the money just goes to insane places due to the scattered players: private organizations, cross state organizations like the Port Authority, city governments, state governments, federal governments...

Isn't this one of the reasons why NYC transit construction and repair costs are so much more than places like London, where A) the system is WAY older b) the tunnels are MUCH deeper and narrower and yet C) they override these problems by establishing new lines like the Overground, the DLR and the Crossrail.

London (a city I lived in a few years) seems to be moving at a much more rapid evolutionary path than NYC, which seems like it's crumbling around us.

</comment><comment><USER25> Privatize it. Like it was originally built.

<comment><USER26> London Underground was privatised, then the government had to step in to rescue the firm that went bankrupt...

<comment><USER27> Tokyo subway is privatized and is very very good.

<comment><USER14> What works in Japan may supremely fail in US.

This article looks promising, but then think about the disaster that is the private ISP industry or the red-light camera industry in the US. The US is bad at privatization, we tend to turn it into exploitative subsidies of crony capitalists. [http://marketurbanism.com/2010/12/22/japanese-transit-and- wh...](http://marketurbanism.com/2010/12/22/japanese-transit-and-what-it-can- teach-us/)

</comment></comment></comment></comment><comment><USER28> Bring in the Japanese.

</comment><comment><USER29> If Philly had a subway system as connected as NYC I would be happy.

<comment><USER30> The connections aren't the problem under discussion. The problem is that it's a crumbling subway system that is having trouble operating at the capacity the city requires. For a city as rich as New York, you would expect something much better.

<comment><USER31> > having trouble operating at the capacity the city requires.

It's not just having trouble. The capacity the city requires is far beyond what it's currently running at. Meeting current demand would've meant planning for it two decades ago.

Anyone who lives here will tell you that the subway is wildly unreliable. Huge time gaps between trains, train cars that are dangerously overcrowded, random line shutdowns, local trains randomly going express and vice versa, straight up train direction reversals, "signal problems", "mechanical issues", sick passengers who can't get medical help because there's no medical staff in that station, "police investigations", etc are all part of daily life here.

<comment><USER24> Yes, all of this.

It bears mentioning that prior to 2015 it was not this bad.

In the early 2000's it was common to easily get a seat. I recall the main lines that seemed crowded were the 456 line.

Around 2008 or 2010 they canceled a few lines, reduced bus service, and more. To me what smelled fishy was that the prior year, they had a budget surplus and gave everyone free trips on a Christmas weekend.

Add to that there were less homeless back then, and then complete the picture with the number of homeless people sprawled out in a heap on several seats on a crowded train, and you start to see how people are questioning why they live here.

What's interesting to see is sometimes during rush hour, and if you see a train car that seems less crowded you avoid it either because

a) it's summer and the A/C died in that train car b) you have a homeless or crazy person harassing people or sprawled out, except exuding an unusually strong odor that day.

</comment></comment></comment></comment><comment> a-dub Why are they talking about moving stairs? Why is this first on the list? What is this madness? The stairs don't need to be moved. They simply need to add more brand new lines and stations and invest in infrastructure to improve reliability. That's it.

The NYC Subway is not "broken" because the stairs are in the wrong place. The NYC Subway isn't even "broken."

<comment><USER32> I'm actually happy they listed something as "trivial" as station configuration first. The list is full of things that are either politically fraught, or are already in progress and just take of a lot of time.

Reconfiguring individual stations may be a big win, because they come with only a modest one-time cost (y'know, sixty-to-a-hundred million, also known in the US as "cheap"), but result in immediate and appreciable gains in particular spots. The nature of these projects makes them easy to brand, boast, and sometimes fund, and you can do them (largely) independent from other, large-scale things you have in the pipe that will take years to come to fruition.

</comment></comment><comment><USER33> The more I think about our future with self driving cars/busses; I wonder at what point will subways no longer be needed? If you look at the capital cost of a new bus compared to the cost for the operator(s) who work it, we could greatly increase our fleet of bus services simply by removing the driver. If that and the cost per mile falls under $1/mile for uber and the like, I don't think we have a massive need for subways anymore.

<comment><USER34> You could be right. The key for making this work is creating more dedicated bus lanes which can then act like a small above ground train.

<comment><USER33> That is exactly what I believe will happen.</comment></comment></comment>


Get Query String Parameters with JavaScript - <AUTHOR> https://davidwalsh.name/query-string-javascript <comment><USER2> The standardized API for that is URLSearchParams. For older browsers, there is a polyfill available.</comment>


In-the-box, a Dalvik port for iOS that lets Android apps run on iDevices - <AUTHOR> http://www.extremetech.com/article2/0,2845,2386268,00.asp

<comment><USER2> Interesting project, but what are Apple's current views of dynamic interpreters? At one point I know that you couldn't interpret code at all. Has this changed to allow interpretation of code where no additional code is downloaded from the network?

BTW: direct link to project: <http://www.in-the-box.org/>

<comment><USER3> Yes, it has:

> 3.3.2 An Application may not download or install executable code. > Interpreted code may only be used in an Application if all scripts, code and > interpreters are packaged in the Application and not downloaded.

</comment></comment><comment><USER4> They are using a relatively older phone there. I'd like to see startup time on a iPhone4.</comment>


Ask HN: What a 2nd tier college student must do to be at par with the best? - <AUTHOR> I'm a student of VIT University, India. Everyone in our country, from academia to industry, looks at us as second class undergrads.
I'm passionate about solving problems and making things, especially AI and game development. But due to some bad decisions I ended up dropping two years after high school and could not get into the IITs i.e. the top colleges in India. Ever since I started college and found the sub-par level of CS education here, I have tried to take my education into my own hands. I'm an autodidact by choice and here is the strategy that I have followed for the past one and half years at college:
- MOOC :
I have studied all the important CS courses from popular MOOCs like CS50, MIT OCW, etc. I have earned a certification in an AI MOOC taught by the IITs and completed the Machine Learning course from Coursera too.
- Projects :
I have done some good projects and open sourced them at https://github.com/AmanDaVinci
- Others :
I have worked as a two man team to publish a game on Play Store and we also sell our plugins, tools and assets on Unity3D asset store. I have organized and instructed successful game development workshops as I plan to start a Game Dev club in our college.
Considering the experience and expertise of the HN crowd in the engineering field, what more could I do to be at par with the top students of the world?
1) Should I invest in AI / ML nano degree certificates?
2) Should I work more on real software projects like open source AI and games?
3) Can I do anything else to improve myself? <comment><USER2> You are doing great! Don't let institution name bother you, it does not matter much, it helps in getting interviews etc, but if you work smartly you will get that anyway. Few things I would focus on:

1\. Build a strong CS and Math background, especially since you are interested in AI, ML. Academia is the best place to do this. Look at the curriculum of top engineering schools like mit, cmu for your sophomore year and see how you can complement it with the courses you are taking. This will pay you dividends in future. You are already doing that, which is great! Try to add more structure to your execution.

2\. Take advanced courses on the topics you are interested as you get to your senior year. A lot of MOOC's have entry level courses but lack on advanced topics. You will find these scattered across university lecture videos, you already mentioned OCW.

3\. For prototype projects try building things from the ground up. For e.g. Taking an Operating systems course great, build a simple filesystem from scratch. It will help you in understanding the complexity involved in production grade software and why certain design choices are made.

4\. For the projects that you are passionate about deep dive into it, its great to see people talk about their projects with deep technical insight, pros and cons of design choices made etc.

5\. Personally I would avoid learning every new language that comes up, focus more on programming language concepts (there is a course of Coursera on this) and learn few languages well.

6\. For internships look for startups that are working on interesting ideas.

7\. More than the certificates the projects what you did in those courses are more valuable.

8\. Enjoy, make good friends, stay healthy and active.

<comment><AUTHOR> Thanks. I'm currently taking the OS course this sem and we plan to build a minimal OS for raspberry pi from scratch using the linux kernel, writing system programs on top of it.

For internships, I believe start ups are the best bet to gain experience and maybe gain a mentor for life.

<comment><USER3> That course sounds amazing, you should blog about it.

</comment></comment></comment><comment><USER4> You have already mentioned the top one for me: passion.

Colleges rarely teach you what you need to know professionally - they can't, tech moves too fast. Instead, they teach you how to learn what you need to know. This is an important distinction because it should inform your approach to your professional growth.

1\. Stay passionate both about software and your own growth/education in it.

2\. Start some personal projects and, important, work on them until they reach a place where you can talk about what you learned, the techs you used and be able to at least show a page or two of it working.

3\. Be forthcoming in interviews about your desire to _create_. The longer i am in software the more importance i put on hiring creative people.

Finally, think of software development as modern day blacksmithing. Those who do well have a few things in common: passion, persistence and a great set of artisans (mentors) to learn under. Prioritize finding some people who have compelling opinions on software development and work with them. It will change how you build software and the value you will bring to teams in the future.

<comment><AUTHOR> I'm following the first two points earnestly and I'll start with the third one as well.

And the mentor aspect is what I'm missing right now. So, I have planned to contribute to open source and/or apply to GSOC '17.

Any other ideas how to find suitable mentors?

<comment><USER5> It's worth putting your contact details on your HN about page

<comment><AUTHOR> Just did that :)

</comment></comment></comment></comment><comment><USER6> You are aiming too low. Why do you want to be on par with the best? Why not exceed them? My advice to you is to learn more than computing. We tend to obsess over languages, frameworks, algorithms & tooling.

Learn "software engineering", this has nothing to do with language, framework, algorithm or tooling. This is about code organization, managing complexity in code, deciding how to structure/architect an application. This is where you are going to read what some will consider "boring" books, these books will hold very strong opinions and are not exact science. You will have to take that knowledge, apply your experience and come up with your own reasonable opinions too. Here are sample of such books in my library, "Business Process Management", "Ship It", "Architecture Principles", "domain driven design", "Enterprise integration pattern", "Clean code".

The real world doesn't care what language, framework, algorithm or tool you use. They just care that you solved the problem. This means you must understand some other domains outside of tech. If your domain is only tech then you will be building tools for programmers/IT folks. If you understanding banking, insurance, health care, automotive, shipping, etc, you could apply your knowledge towards the difficult or poorly solved problems in those areas.

If you become well rounded, you will have the skills to implement, the domain knowledge to solve pressing problems, but more importantly the wisdom to know when to and when not to break rules.

</comment><comment><USER7> Having come from a similar background, I can offer you these suggestions -

1\. The level of programming taught in Indian universities is not enough. Writing a sort program is quite different from writing good, maintainable OOP code. Apart from working in a good company, one way to develop this skill (which I feel is critical) is to look and contribute to good open source projects - elasticsearch, spark, etc. Unfortunately I don't know of any good books which teach this overall, apart from specific aspects like Effective Java.

2\. Another aspect that I feel is missing in Indian universities is challenging assignments. I would have liked to write my own toy OS to learn systems, or toy kafka to learn distributed systems. The more core computer science fundamentals you master now (preferably through writing code along with learning theory), the better an engineer you will be later.

3\. Another aspect that is lacking is the way to reason through things. Indian universities have a third-person approach on the lines of "the experts do things this way so we will just do it this way", on the contrary in a US university the reasoning is more on the lines of "we use to do X, that had Y limitations. So we moved on to Z, now your assignment is to design an extension to Z (say Z+) which solves YY limitation". Unfortunately, I don't know what can be done to improve the way we reason about things.

4\. Don't forget to explore different areas. I started with computer graphics, moved on to compilers, then app development, then data engineering, then infrastructure development, then back to data engineering.

<comment><USER8> That is some solid advice right there. Thanks.

</comment></comment><comment><USER9> Few tips:

1\. Apply to startups. If you are looking to apply to the big four, make sure you do your diligence and work hard at coding contests. 2\. Practice peer- teaching. VIT is a huge college. There are more people like you, and you can easily help each other by doing projects together. 3\. The industry, in general, rewards freshers who have worked in large teams and projects before. 4\. Make sure you get a good internship. Shouldn't be hard for you, but if you are interested, drop me a mail (Razorpay, Bangalore) 5\. Go for depth first and then pick your specialization within software. For me it was Web Development and Software Security. Could be anything for you, but make sure you have tested the waters in other fields before picking one. The one benefit of College Life is that you have time to experiment and fail. You can try out projects in all these different fields, and then decide what you are really passionate about. 6\. GSoC is a great option. I'd recommend trying for a experienced org over a new one. 7\. Avoid freelancing, unless absolutely necessary. It rewards short term gains, over long time learning. You can make much more money cloning WordPress themes and reusing them across projects then learning a new programming language. The latter would help you much more.

I'm very interested in Software Education in India, and if would like to talk more, drop me a mail (email in profile).

<comment><AUTHOR> Start-up internships and GSOC are the best use of a summer vacation, I agree.

And regarding software education, I believe MOOC is going to play a very big role in the near future especially in countries like India where hard working and deserving students lack quality world class education.

And given the Indian affinity for certificates and credentials, I believe this could be a great start up idea too.

<comment><USER9> In an ideal world, you won't need MOOCs. One thing I keep repeating is:

        Make > Learn > Read

Where Make = Actually working on a project, Learn is actively learning a topic (via a course or a book you're following), and Read is just reading through books or online guides.

This has served me well as a guide, however it doesn't apply neatly to all areas. Invest in Skills, not Credentials.

</comment></comment></comment><comment><USER10> Having completed graduation in India with a college much less in glamor than VIT, I would advice you to give yourself some slack and continue working earnestly on interesting stuff. When I graduated, I was deep-down with anxiety to get proficient in frameworks like Rails / AngularJs. Apparently, what were web frameworks in my time are AI / Big Data these days — the skills insinuated as requisite to be taken seriously.

But things are much simpler than that. Programmers solve problems and even the most revered programmers are just solving other programmers' problems. If you are building stuff, irrespective of size, scale or complexity, you're on the right track. Snub the anxiousness of not studying in the top-tier college; it won't matter few years down the line. I certainly can relate to zealousness of solving complex problems, but in my view, it's certainly not a prerequisite for personal fulfilment, or success, for that matter.

In day-to-day work, I am yet to use anything related to AI but every now and then, I find immensely time-saving project that just solved an insignificant problem.

</comment><comment><USER11> Code that solves a real problem or runs a real (viable) business is more important than any degree certificate you will ever get. 93% top most successful corporations in America are managed by people who come from 2nd and 3rd tier grads. Steve Jobs was a college dropout.

</comment><comment><USER12> >> I'm passionate about solving problems and making things, especially AI and game development

Then you just got to start making them, if not.

For game development, even though a lot may not make sense, read the book 'Game Engine architecture'.

Now start making a game engine with parsers for any open format such as Collada/Quake, add sound, physics, animation. Keep doing it in parallel with a 3D game of your choice. Yes, I am asking to start off directly with a 3D game, not a popular opinion in the game learning world. You will also learn game related math, physics, AI along the way.

Write a game feature, extract to your game engine. Rinse, lather, repeat.

Why do I suggest this? This is the advice I would give to my younger self ;-)

</comment><comment><USER13> _Everyone in our country, from academia to industry, looks at us as second class undergrads_

Go and work somewhere where your university's reputation is unknown, then people will rate you on your work rather than the university you went to.

<comment><AUTHOR> That seems a great hack :)

</comment></comment><comment><USER14> Real work is always more impressive than academics. The sooner your schoolwork fades into the background of your career the better.

Many posts here emphasize direct skills, but it is important to understand that the modern workplace requires a broad range of skills in particular related to communication. One specific communication methodology which is worth learning is Nonviolent Communication which can enable people with different contexts and points of view to have useful conversations that resolve significant conflicts.

<comment><USER15> This can vary with the culture of the country/region/company though.

</comment></comment><comment><USER16> I am glad to see a question asked from college student. I am always interested to hear from others in college. I am twenty-one-years-old, attending a community college in the states and studying a bit of computer science.

I am going to go off on sort of a tangent and offer you some general advice:

1\. Do not worry about what other people think. You mentioned in the beginning of your question about being looked as "second class undergrads", and that is completely false. As Rainer Maria Rilke once noted: "Your life is so inexpressibly your own..."

2\. Build things you are passionate about, and not because they'll help you land a job but just for the sake of building things. If you are interested in artificial intelligence or machine learning, learn about them and build something. Better yet, keep a blog and write about the process of learning about AI, ML, etc. Don't be afraid to email some people you look up in the industry for guidance.

3\. Keep learning, learn about anything that sparks your interest. Nothing is boring in its deepest essence. There's always something to learn. And if you know a lot, teach it or write about i.e. set up a repository for other people to learn more about it in an easier way.

Above all: Just be you. Don't label or attach yourself with certain identities. Build great things just for the enjoyment of building things. Love the process of building things. Collaborate with friends and colleagues. Go boldly.

Learning, building, etc. is all a joy. Don't try to be the best _____, just build stuff that matters to you.

<comment><AUTHOR> I love to talk to other passionate CS students too. Helps me reorient and correct my perspective.

And I'm gonna follow your advice and blog about my learning experiences. Infact, there are valuable gems of advice here and I'm thinking to compile them together in a blog post for many other curious students like me.

</comment></comment><comment><USER17> If you are at Vellore (VIT appears to be Vellore Institute of Technology ), there is a world class medical institution in your town (CMC Vellore )that sends many of their graduates around the world to places like the Mayo Clinic and MGH.

They have a well regarded neurophysiology lab that was run by Marcus Devanandan. Perhaps you could do research / collaborate with them.

<comment><AUTHOR> Thanks for taking the time to help me out. :)

And yeah, I'm currently looking for internships and such for the summer. But the credentials card always comes in play.

</comment></comment><comment><USER18> I checked out the game you developed...looks awesome.

Look - since you are passionate about solving problems and making things, why don't you just create sources of passive income or build some business from the ground up? This way you will be able to bypass any reputation issues that your university has and focus on your creativity instead.

<comment><USER19> > why don't you just create sources of passive income or build some business > from the ground up?

I feel like this is good advice to some people, but it also requires a business skill-set / interest, which is not everyone's cup of tea.

<comment><USER18> Agreed.

</comment></comment></comment><comment><USER20> You're doing great. Don't stop your learning curve fall down. I feel that there are really very very less people like us in our country who have similar likes and views though they share almost same story like ours.I can understand the situation of student like me. I too am sophomore student at an Institute ranking way below yours but i feel it doesn't matter a lot specially in our field. I read so many things over internet like how i can develop myself up and so and so though i start everything i don't do anything good which i can show or prove to the world Trust me bro you can't match my level of procrastination. I haven't done anything except reading things over internet and i don't know why the heck i came here to suggest or advice you. But one thing i would like to tell you: don't let yourself feel down and fuck the negativities around you instead try utilizing and learning as much as you can in forthcoming years. There are hell lot of people who are there to help us out and internet is our best friend. I'm studying really hard to learn things around me and i feel you should do the same and make each second count for your better future. Good luck.

</comment><comment><USER21> The quality of first tier colleges in India is still terrible, if you didn't know that already. Google/Facebook doesn't hire everyone from IITs hardly two or three.

You're doing far better than those people, from what I've seen.

If you're in Chennai: come for the meetups: I'm the co-organizer of docker and golang meetups. Also checkout devops meetup and the Linux group at IIT Madras.

You get to meet some of the smartest and experienced veterans in the city.

</comment><comment><USER22> Hey,

You are already on right track. Just complete the Graduation as it is required by many companies(and visas if you need any in future). Go for fundamental courses more on MIT OCW and others. I also studied in a private engineering college from India(2010-2014). My rant at the time here: [https://nainomics.blogspot.in/2011/11/welcome-to-indias- high...](https://nainomics.blogspot.in/2011/11/welcome-to-indias-higher- education.html)

I just focused on my learning. Some professors were encouraging. That helped.

One anecdote: I made a heroku style PaaS for my final year project(like dokku). My professors couldn't understand what it does and why is it even necessary. Their main point was we have "shared-hosting" services to do these(I had to go from php to java/python example then :P). Now after two years they have their industry peers saying docker all over and have called me several times regarding that.

I am now Backend Dev building APIs with Python(Django) and Elixir at a small company. I also have small Open source contributions under my belt. Contact me if you need someone to talk to

</comment><comment><USER23> keep on learning new stuff. make use of time. vit university has a good startup culture so try to find a startup and work on it. here is the some of the vit open source project where you can contribute 1)[https://github.com/karthikb351/CaptchaParser](https://github.com/karthikb351/CaptchaParser) 2)[https://github.com/princebansal/MyVIT](https://github.com/princebansal/MyVIT) 3)[https://github.com/shubhodeep9/go-MyVIT](https://github.com/shubhodeep9/go- MyVIT) 4)[https://github.com/aneesh- neelam/VITacademics](https://github.com/aneesh-neelam/VITacademics) 5)[https://github.com/sch00lb0y/Vit-Photo](https://github.com/sch00lb0y/Vit- Photo)

</comment><comment><USER24> I'm in the US; if you're going to stay in India, my advice may be less helpful.

But I would say that you're in an environment where everyone cares greatly about credentials, because that's all anyone has so far. Once you graduate and have worked for a few years, people don't care so much about the credential. It may matter some, but it matters more that you can actually _do_ things.

So you need to get a credential that is good enough to get you a job. But it matters more that you actually know what you're talking about, rather than just being able to repeat what the professor said. You need to _understand_ , not just memorize. You need to be able to write software that actually helps people do things, not just classroom exercises. If you can, then you will surpass many who have better credentials than you. It may take a few years, but you will pass them.

</comment><comment><USER25> I can't really speak for anyone else, but speaking as someone who has been involved in interviewing and making hiring decisions, I don't care what school you went to. I care that you graduated, and I care to a slightly lesser extent what your degree is and what your GPA was.

What I really care about when I interview you is how you answer my questions (this doesn't mean that I expect you to be able to answer every question fully), how well I can gauge the depth of your knowledge, and whether or not I think you will listen to senior engineers, learn what you need to do quickly and with an appropriate level of mentorship, and be a team member rather than someone trying to do his/her own thing.

Ok, I'll admit that someone who went to a for-profit school is going to have a higher bar to pass, but I haven't had to worry about that yet.

<comment><USER26> But if you are a hiring manager at one of the big name companies you would not even short list non-top tier candidates for the interview. I have been applying since the past one month and its the small companies that respond.

I think someone who has worked in Microsoft - who might not have contributed much - minor bug fixes compared to the guy who has a worked in a startup - build products from scratch and all that in an extensive deadline - staying up entire nights on a new few occasions to make the release date ends up getting a straight reject.

</comment></comment><comment><USER27> Focus on learning and self improvement. Everything else will naturally fall into place.

</comment><comment><USER28> Do you want to be a game developer or an AI expert? I would suspect that the things you should do are going to be quite different.

Also, what do you mean by "at par"? Status? Money? Knowledge? Expertise in a given area, and if so, what?

<comment><AUTHOR> Though I have an interest in games and AI / ML, I would still consider being a good software engineer first. I'm aiming for a strong foundation and expertise in one field: AI or anything related. Being a fresher, I believe I won't get to work straight at these.

And by "at par", I meant the same opportunities that a top school student gets.

<comment><USER28> My opinionated version is that you should bail out on games and focus on AI/ML, then try to get into the best grad school you can and get really good at difficult things that other people can't do (even better, things that they can't do and don't want to do). Games fail that test because too many people want to work on them.

Becoming a good software engineer seems to come from working with people with good taste (on real projects). In my experience I haven't met anyone who learned to be a good SE from university (it may be possible, but I doubt it would happen at a mediocre university).

<comment><AUTHOR> Indeed. After talking to other people and thinking hard about my options, I have come to same conclusion. But finding good people to work with or under seems really hard. I really don't know how to find good mentors other than contributing to open source and hoping someone senior likes my contributions.

<comment><USER28> OK, so I'm writing in a 'dead thread' (likely) but for what it's worth: I think your last sentence is the right idea; do the work then find a mentor in a related area as a consequence of that. I _really_ don't like being approached by people who haven't put in any effort yet want to network for the sake of networking.

</comment></comment></comment></comment></comment><comment><USER29> No one you want to work for is going to look down on you based on where you went to school.

I hesitate to give you advice since it sounds to me like you're pretty busy already.

</comment><comment><USER30> I've been watching a friend follow their passion (food); what they do, and what I do/think in response. At this point - anything and everything to do with food, my first thought it - What's Veronica's opinion on this?

You want the people you know (and who know you) to have their idea of you intertwined with what you want to be doing; now, everything they encounter that has to do with that will get funneled your way.

</comment><comment><USER31> Study after study has shown that going to a "2nd grade" university makes no difference to your skill level and lifetime earnings. They basically compared people who were accepted to "top grade" universities and chose to go somewhere else with people who _did_ go. So don't stress about it. Simply learn as much as you can on/off university.

<comment><USER31> But of course if you have to _pay_ to go to university (I didn't) then your dept will be so much higher going to a "top grade" university.

</comment></comment><comment><USER32> First, you need to think about what you want to do after graduation, such as becoming an Android game developer or a graduate student focusing on AI. Then figure out what you need to do to achieve your goals (such as work on projects or do research) and keep working on it. Everything will be fine and you can be at par with the best.

<comment><AUTHOR> Most of my undergrad friends are really torn between academia and industry. And since I'm in my sophomore year, I feel it's too early to make the right call. Anyways, I do need to decide sooner or later.

<comment><USER33> I don't know what it's like there, but I would get involved in research with a professor if possible. Doing so had a really positive impact on my undergrad experience, and will inform if you want to stay in academia or not.

<comment><AUTHOR> College is a good place to try things out before diving into them. But I have found no passionate profs in my college and getting a research internship under a good prof is a task in itself.

</comment></comment></comment></comment><comment><USER34> No one really cares where you graduated from. I have worked with developers from IITs, BITS and much smaller colleges. Some of them are smart, some of them are mediocre and some are bad, irrespective of the college they are from.

All that matters is your passion and how much you put into the work you do.

</comment><comment><AUTHOR> I have compiled all the valuable advice and suggestions here into a blog post for other students like me:

[http://amandavinci.me/hackernews-advice-for-budding- makers-h...](http://amandavinci.me/hackernews-advice-for-budding-makers- hackers/)

</comment><comment><USER35> At the risk of sounding cliche', just do work at something you enjoy. If you think there will be valuable knowledge in the degree certificates, go for them. If you have a cool idea you want to explore, go for it.

<comment><AUTHOR> Yeah exactly but I always feel like I'm short of time. Like just a few years more and I'll have to look for a job. Mandatory attendance at boring classes doesn't help much too.

<comment><USER36> You seem like you are really on top of your game though. I'm impressed. It's sad to see so much weight on brand name schools.

<comment><AUTHOR> Thanks a lot. I found Paul Graham's essay on the credentials and pedigree quite reassuring. :) [http://www.paulgraham.com/credentials.html](http://www.paulgraham.com/credentials.html)

      "Admission to the right university can make or break an ambitious young South Korean."

</comment></comment></comment></comment><comment><USER37> Don't let yourself be entrenched in the things you already know. Take on tasks well outside of your comfort zone and peel away at those problems so you are always getting better.

</comment><comment><USER38> There is no "best," but you mention AI in two of your three questions, which I think answers the third.

</comment><comment><USER39> I think I am in quite a similar position to you: after secondary school here in Ireland, I didn't consider any universities outside of my home town (pretty much because I didn't know a single person who was considering bigger and better options, so it genuinely didn't cross my mind to apply to Stanford, CMU, MIT etc.) so I ended up going to a fairly average and not very well known university to study electronic engineering for my undergrad.

I went on an exchange for a year to UCLA and this was when I started to feel something similar to the sentiment you're expressing here.

I'm now in my 3rd year of undergrad EE and for the last year I've been trying to fast track myself into the AI / ML field as I've been increasingly regretting my EE major and becoming more and more interested and passionate about ML (particularly the intersection of ML, altruism and design): I got Norvig & Russell's textbook and read it in outside of my engineering classes, read less technical books like Nick Bostrom's Superintelligence for motivation / food for thought, made a simple collaborative filtering recommender system using the movielens open source dataset, moved away from the web dev stuff I'd been doing in 1st and 2nd year and tried to hone in on improving my algorithm and pure CS skills, watched a load of AI / ML videos to try and get a better sense of who's who, where's where and what's going on etc. in the field. The "dream" (I use that word loosely) is to do the google brain residency program instead of a PhD, or the U Chicago data science for social good fellowship, so I've been trying to figure out how to get myself into good shape for either of them.

It's been overwhelming at times, largely because I feel like 1) I'm not in the "right" major, 2) I've had a taste of but no longer "go to" UCLA (or an equivalent high ranking university) and won't be graduating from there so will need to work hard to stand out against the competition for placements / fellowships / internships 3) I don't have mentors or peers who can help me navigate the field (I have a great relationship with a lot of my engineering professors but again, it's not ML). So I'm sort of trying to make sense of it all myself. It's reassuring to hear there are others feeling similarly and it's great to hear all that you're doing!

On a positive note, I suspect you may be overestimating the educational superiority of the top tier schools (I know I certainly did before I went to UCLA) but at the same time I don't think it's fair to completely disregard the big unis and just say "circuit theory is circuit theory" and forget about it. While I was there, I really didn't notice all that much of a difference in terms of course content or even teaching quality - the biggest difference was there were an awful lot more high achiever students in my EE classes compared to in my home uni in Ireland, and there was a much more impressive "career fair" and internship opportunity scene than at home (think Irish Cement vs Hyperloop One).

You seem to be doing everything right. I think I was edging down a "burnout" path a couple of months ago with fretting over what you're saying and over my own EE vs CS major "challenge". I've tried to take a step back and remember that there's no one enforcing a particular pace or path for me, hopefully you won't let the fretting get in the way of your passion which almost happened to me.

Just wanted to comment this to warn you about the burnout thing, reassure you somewhat about top schools and throw in a few links you might find interesting for good measure!

You mightn't find any of these links below helpful, you very well may be much more well read than myself but I thought I'd link these here anyway. The first is a reassuring AMA on reddit from the google brain team (particularly the comments where the team talk about all the different backgrounds everyone has at google brain). The second is a list of programmes, fellowships, resources and random AI / ML related pages I've encountered in the last year (amongst a lot of other stuff ). The third is a playlist I made for a friend on interesting AI / ML videos which you most likely will have seen before but you might just enjoy anyway. The quick interviews are cool if you haven't seen them already.

Anyway - best of luck!

[https://www.reddit.com/r/MachineLearning/comments/4w6tsv/ama...](https://www.reddit.com/r/MachineLearning/comments/4w6tsv/ama_we_are_the_google_brain_team_wed_love_to/?utm_source=amp&utm_medium=comment_header)

[http://sharedli.st/cvigoe40g9](http://sharedli.st/cvigoe40g9)

[https://www.youtube.com/playlist?list=PLxB_QX9z7BFSc7VRmy5zt...](https://www.youtube.com/playlist?list=PLxB_QX9z7BFSc7VRmy5ztmFzthfr96bmC)

</comment><comment><USER40> I spent years working in IT before going back to school at night to get a CS degree.

One thing is to just learn the subjects and get as good a grade as possible. Even if a class is subpar, just learn the subject. I had to submit an assignment once about process scheduling in Linux etc. After ten minutes study, I knew I had an A+ on the assignment already. But I had always wanted to look into that topic any how, so I spent several more hours reading about it _for myself_. I always wanted to learn about scheduling, and if I punted on it then, when would I ever study it? If I did that all the time my skill level would be high.

If you study and get good grades and have a good relationship with professors (go to office hours and schmooze a little, pay attention and participate in class and be prepared and listen), you can always apply for a Masters at IIT or elsewhere. So you can still get that name if you want it.

If the subject is theory of computation and the teacher is sub-par, just go above and beyond. Learn about big-O and the squeeze theorem and pushdown automata for the class, but for yourself as well. Read (some of, all of) a non-assigned book on automata theory if necessary.

Insofar as projects, one thing I suggest is doing projects related to coursework. Toward the end, or right after a class on C++ - write your own C++ program, or fix an issue with a Github hosted C++ program and send a pull request. If it is a graphics class on OpenGL, write your own program in OpenGL towards the end or right after the class - maybe explore iOS/Android OpenGL ES. Or look at scikit-learn after an AI class. Ground some of the theory you learn in class with application.

Your classes covering concurrency and threading and critical sections and mutual exclusion may seem boring in school, but if you're a programmer you _will_ run into these things and you will be happy you learned how to deal with it properly a few years back, even if you haveto go back and read up on it. The AI stuff may sound exciting, but getting all these details right together is what will get you to be a good programmer.

From what you wrote, my main advice is don't be too all over the place. If you have a class in databases and a class in Java, that semester, spend a lot of time learning about the theory, and maybe a little time in application setting up MySQL on your desktop and writing a Java program to populate kt. It's OK to have one other side project going at a time of something that interests you, but you should be spending a lot of time learning about databases and Java.

If you have time on your hands, just dive more into it. For example, in the USA, a drink may be 2.5 liters. In some countries that is 2,5 liters (comma, not period). I once submitted a patch to a Java project doing a switch/case by country. The upstream told me the Java had a DecimalFormat class that already did that. My method was a waste of time, and also less complete. It was something about Java I nad not learned. You're just scratching the surface in class, there's a lot of ground to these subjects.

So get a good grasp of each subject you study. Meanwhile, if you have an interest or specialty you'd like to pursue, do that as well.

</comment><comment><USER41> Possibly unpopular opinion here on HN. I almost went to VIT in 2007 (shockingly got into NIT Trichy instead).

1\. Focus on becoming a good programmer (ie, SPOJ/Topcoder/Directi). That'll help you clear interviews, and get good at thinking about algos and data structures. I'd even prioritize this over other CS fundamentals.

2\. Keep your GPA up and get into a good grad school. I disliked both the interview process and the classism (ie, recruit from top schools) of Indian companies when I interviewed there.

3\. If you don't want to go to grad school, make sure you don't touch TCS/CTS/Wipro/<insert mass VIT employer here> with a 100-foot-long- pole. Given your passion, and assuming you use the next two years to become a strong programmer, you _will_ find a good place to work in Bangalore. You might have to pay your dues, but please don't pay them at the above mentioned places.

And people who look at you as second class undergrads can fuck off (esp the professors at IIT Madras :) ). I know several friends at IITs that preferred to pot-smoke-away their time there. If you're near Chennai I'm happy to chat with you.

<comment><AUTHOR> Being a good programmer and having a good GPA seems like inversely proportional in our college. Only the students who follow lecture slides and are good at writing exams seem to have >=9 CGPA.

And yeah, it would be great to chat. Here is my mail: firstname.lastname@example.com Or, you can go to my website for social media contacts: [http://amandavinci.me/](http://amandavinci.me/)

<comment><USER42> I understand the issue of balancing classes and doing projects. If you want to go to grad school GPA will matter a LOT more. Keep it above 8 even at the cost of spending less time on your skills.

If you are sure you do not want to go to grad school (which is very difficult to decide at this point) focus more on projects. Try to get an internship at a good startup and prepare for interviews hard (read DSA). Going to a top employer like Google, MS, Directi will help you get over the second-grade brand. All of these care more about DSA instead of all projects and specialized knowledge in ML and AI. I know preparing for interviews is boring compared to doing projects but take this advice seriously if you want to get hired at one of the places I listed.</comment></comment></comment>


Germany shuts down illegal data center in former NATO bunker - <AUTHOR> https://www.apnews.com/be9947471fb74360b6cf9d1d2b535927 <comment><USER2> > "I think it's a huge success ... that we were able at all to get police > forces into the bunker complex, which is still secured at the highest > military level," Kunz said. "We had to overcome not only real, or analog, > protections; we also cracked the digital protections of the data center."

This sentence is the punchline. I'm guessing they mean they were able to image the disks and capture memory while they were running unencrypted?

<comment><USER3> I imagine the physical protections were not trivial to overcome either. In Germany you don't have to assist police as long as you don't actively obstruct them. If they come with a warrant you can't shut the door in their face, but you are not forced to open a closed door either. Normally not a big deal, after a few knocks the police breaks open the door. The government selling off bunkers with doors designed to withstand nuclear explosions throws a bit of a wrench in that concept.

</comment></comment><comment><USER4> This appears to be cyberbunker/cb3rob [http://www.cb3rob.org/](http://www.cb3rob.org/)

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

It's not exactly their first rodeo, but certainly the most significant challenge so far.

FWIW I've hosted with these guys before and used their servers for scanning the internet, they did not allow that.

<comment><USER5> I'm surprised at how theatrical the notice of seizure is. Would not have expected that from our usually exceedingly sober law enforcement.

<comment><USER6> It looks incredibly fake. I wonder if there's a collection somewhere of these real website seizure notices.

<comment><USER7> Perfectly in keeping with current seizure notices. The current fashion seems to go completely overboard with agency badging.

The couple of UK ones I saw crop up recently have a cliche "hacker in hat and trench coat" silhouette on similar blue backdrop, in place of the Matrix world map thing.

[https://www.pcmag.com/news/366221/feds-shut-down- marketplace...](https://www.pcmag.com/news/366221/feds-shut-down-marketplace- for-selling-access-to-hacked-serv)

<comment><USER8> Interesting that the Belgian Federal Computer Crime Unit has a unicorn in its logo.

<comment><USER9> I believe that in heraldry, the unicorn is symbolic of courage. Maybe that's why?

</comment></comment></comment></comment></comment></comment><comment><USER10> A few years back, they claimed to have withstood a SWAT raid.

[https://web.archive.org/web/20190427013216/https://cyberbunk...](https://web.archive.org/web/20190427013216/https://cyberbunker.com/web/swat.php)

<comment><USER11> That was in Holland, years ago. They too have been dismantled.

</comment></comment><comment><USER12> Yet again life is providing more "entertainment" than in the movies. Pics please?

<comment><USER13> Here are some pics also from the inside and a short video: [https://www.rheinpfalz.de/lokal/artikel/rheinland-pfalz- lka-...](https://www.rheinpfalz.de/lokal/artikel/rheinland-pfalz-lka-stuermt- rechenzentrum-in-altem-nato-bunker-mit-bilderstrecke-videos/)

<comment><USER14> I've been inside there. That glowing computer with many screens - I've stood right there in that very same spot. On the wall in that room is a big map of Afganistan, a place NATO was gathering intelligence on while the Soviets were invading long ago. The pics show about 10% of the facility... I remember when that datacenter part was still under construction, back in 2015.

</comment></comment></comment><comment><USER14> >The main suspect in the long-running investigation that led to raids on Thursday is a 59-year-old Dutchman who authorities believe acquired the former military bunker in Traben-Trarbach

I'm shocked because I've been given a tour of this datacenter by the man's sons, whose mother is friends with my grandmother, and whom I have known since a very young age. Like, the mother, the sons, my mother, my grandmother, and me, all toured a 6-levels deep NATO bunker & the surrounding buildings. It was an amazing sight to see. They did not talk much about what they were doing there, only that it was meant to be a secure datacenter. Their mom was just so happy that the father and sons were finally working together on something lucrative, and that they had a place to live (the bunker & surrounding buildings had a lot of facilities).

By the time of the tour, which was 2015, I hadn't seen them for several years. Catching up, I told them that I had a career a US federal gov contractor working in cyber security - to them, and I didn't realize it at the time, this was probably a red flag. I wanted to talk a lot about cyber sec stuff, but they seemed oddly quiet. Shortly after the visit, they went out of touch with my family. The final connection we had was one Facebook account belonging to the youngest kid - probably the 20yo one mentioned in the article. It seemed odd to me that he didn't use his real name, but now I understand why. It's been deleted.

These kids had an interesting backstory. Their mother was a black woman from the Dutch colony Curaçao. She met the father sometime during or before the 90s. Their children were mixed race, and were never accepted by their grandparents, who allegedly were Nazi-affiliated. The prospect of marriage fell apart, and this single mother had to raise the two sons on her own. Living in Westervoort nearby Arnhem, she met and struck up a close friendship with my grandmother, who became kind of a surrogate grandmother for those kids.

That NATO bunker is built upon a spot where Nazis would have used it during WWII. I thought it was an amazing turn of the tables for a black woman who was scorned by Nazis to now have a claim to it.

I had pictures of the inside of that NATO bunker, which was amazing to see, but the iPhone they were stored on got stolen later that year. I wish I had them. If I'm lucky, some combing through DropBox might uncover a few.

<comment><USER15> >the iPhone they were stored on got stolen later thatbyear.

I wonder if that's correlated to the fact that you took pictures inside that bunker ;)

<comment><USER14> I doubt it. The phone was stolen in the US. Actually, it was stolen inside of one of the nicest gov buildings in Washington DC, which itself is really a shame. Most likley by the janitors, unfortunatley.

<comment><USER15> Honestly, the fact it was stolen inside a government building in Washington, DC makes me even more suspicious. You had some sort of evidence on that phone that someone else did not want to see.

<comment><USER14> That would make for an interesting story for sure.

The reality isn't so glamorous. The phone was stolen because I left it inside of a restroom stall. The particular restroom was one that's very secluded. Most people there didn't know about it, to the extent that, the only people I saw there with any regualrity were the janitors whose job was to routinely clean the place. Not sure what else to say besides that what you're suggesting is extremely unlikely.

</comment></comment></comment></comment></comment><comment><USER16> Would you not need an even larger legitimate datacenter to hide the operations of the illegal datacenter? I'm guessing the huge power draw from the grid and the redundant fiber trunks going to an old bunker will draw suspicions that somehow would need to be explained?

<comment><USER3> In principle all these bunkers are designed to be able to run on diesel generators, in some cases for 10+ years. I imagine the power requirements of a 1950s communications bunker and a modern datacenter are not too far apart.

But in reality it probably doesn't matter, I doubt you can get a search warrant based on "they use a lot of power and have great internet connection"

<comment><USER17> You reminded me of this story I read a while back about how an indoor pot farm was identified because the heat from the grow lights melted the snow on the roof and apparently in the Netherlands that was enough to get a warrant - [https://www.telegraph.co.uk/news/worldnews/europe/netherland...](https://www.telegraph.co.uk/news/worldnews/europe/netherlands/11402633/Dutch- police-catch-cannabis-growers-after-spotting-snow-free-roof.html)

While looking for that story, I came across a wiki article about a similar story in the US, although the police there used thermal imaging to identify the farm from outside the home. That was ruled that constitutes a search w/o a warrant in the US. [https://en.wikipedia.org/wiki/Kyllo_v._United_States](https://en.wikipedia.org/wiki/Kyllo_v._United_States) I would suspect observing suspiciously melted roof snow in the US wouldn't violate the law like using thermal imaging would.

I don't know German law, but I could see how that _could_ get you a search warrant if Dutch and American law are any indication.

<comment><USER18> Thankfully modern indoor operations will be using efficient LEDs to avoid those roof issues when you can't vent all the time.

</comment></comment></comment></comment><comment><USER19> "We had to overcome not only real, or analog, protections; we also cracked the digital protections of the data center."

This is a straight up movie script.

</comment><comment><USER20> I can't seem to read this article, it keeps redirecting to apnews://open?link_click_id=70xxx which of course gives an ERR_UNKNOWN_URL_SCHEME.

Looking at the Wikipedia of Cyberbunker, I gather this is one of their bunkers, but not the main one in the Netherlands.

</comment><comment><USER21> This is a real shame - among other things they had a great onion directory:

[https://web.archive.org/web/20190107132850/http://cb3rob.org...](https://web.archive.org/web/20190107132850/http://cb3rob.org/darknet/)

</comment><comment><USER22> German news site "Der Spiegel" with images: [https://www.spiegel.de/netzwelt/web/darknet-rechenzentrum- er...](https://www.spiegel.de/netzwelt/web/darknet-rechenzentrum-ermittler- beschlagnahmen-hunderte-server-a-1289056.html)

</comment><comment><USER23> I grew up in that town (roughly 8000 ppl there) and would've never though someone there is capable of this.

<comment><USER14> It's a long story, but I've been inside that Bunker while they were setting it up in 2015. The datacenter was still under construction. It was a magnificent thing to see, and quite a surprise to find in such a peaceful little town.

<comment><USER23> thats so funny, its sleepy af there at the mosel river, perfect in the end to do it. Very near to that bunker theres a (popular with dutch people) recreational site on top of Mont Royal - guess they were making holidays there first :) My mother told me Traben Trarbach is always selling properties out of money issues

<comment><USER14> It's just down the road from the recreational site.

</comment></comment></comment></comment><comment><USER24> This related video by Norton is quite interesting

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

</comment><comment><USER25> Who on earth sets up a shop like that in Germany?

Surely there are countries with more relaxed law enforcement.

Not that I condone any of this. Just surprised

</comment><comment><USER26> The future is wild, criminal corporations running data centres... I wonder if anyone's hiring in Canada...

<comment><USER27> Drug cartels in Mexico & Central America have been found to be running heir own cellular phone networks. A rouge datacenter seems quaint in comparison.

</comment></comment><comment><USER28> So how do you connect a data center to the internet without anyone noticing?

</comment><comment><USER29> Related:

Gotta love the dutch data center mentality. :)

</comment><comment><USER30> From [https://en.wikipedia.org/wiki/CyberBunker](https://en.wikipedia.org/wiki/CyberBunker)

"In 2002, a fire broke out in the bunker from which they operated. After the fire was put out, it was discovered that besides internet hosting services, an MDMA laboratory was in operation"

Wow

<comment><USER31> I just hope this won't harm the actual availability of MDMA much. According to my experience, an evening spent on MDMA together with wife, talking and having sex (with help of viagra - erection is miserable on MDMA without it even if you are perfectly healthy) is worth by orders of magnitude more than years of psychotherapy or vacations. It's a miracle drug if used properly (incl. taking lots of strong antioxidants before it and never taking it more often than once in some months).

It also makes my arrhythmia-prone heart work like a Swiss clockwork, it's the only substance that can stop a heart attack reliably, the substances the doctor has prescribed me (e.g. propafenone) do nothing but make my heart attacks much much more frequent.

<comment><USER32> > According to my experience, an evening spent on MDMA ... is worth by orders > of magnitude more than years of psychotherapy or vacations

Are you saying MDMA is a good replacement for marriage therapy if you are having problems in your marriage? Or that MDMA is (in general) one of the best recreational activities married couples can do together?

Disclaimer: not a drug user.

In my biased non-drug-using opinion, sitting around high is a poor substitute for having actual experiences with your SO. I'm trying to imagine later in life what reminiscing would be like: "Remember all those times we sat around high and had sex? yeah, that was great". vs. "Remember that Barcelona trip? Yeah, that was crazy with the pickpocket kid..."

<comment><USER33> MDMA is a stimulant so it's more likely to promote dancing around than sitting around. MDMA also suppresses social inhibitions, so you're way more likely to talk about your feelings and dreams.

I also think you're setting up quite a bad comparison here. Why is it MDMA + sitting around vs. awesome stuff at Barcelona? How about _actual experiences_ under MDMA vs. sitting in a hotel room in Barcelona? Ultimately MDMA just gives you energy and improves your mood. [1] Whether you decide to do anything interesting or sit around is based more on your character and less about whether you're under the influence of MDMA or not.

\--

[1] MDMA is toxic at high doses and/or without rest. A good rule of thumb would be to not do it more than every two weeks.

<comment> maze-le I think a better comparison would be antidepressants. A common class of antideps are called SSRI -- selective serotonin re-uptake inhibitors. They have a similar mechanism to MDMA -- block the re-absorption of serotonin by neurons, so more serotonin is available for neurochemical processing.

Stimulants mainly act on the dopamine system, although MDMA might act on both systems: dopamine and serotonine.

\-----

MDMA is also quite toxic in long-term usage.

[1] [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3870191/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3870191/)

<comment><USER31> > MDMA is also quite toxic in long-term usage.

As well as ibuprofen is. Whatever a drug (in both meanings of the word) one should decide with reason when, how much and why take it. I can hardly name a medicine which won't do any harm if you take it chronically or dose too high.

Even plain serotonin, which can be kept elevated by chronic excess of tryptophan in the diet (let alone 5-HTP supplementation) is cardiotoxic.

<comment><USER31> BTW I've chosen to mention ibuprofen right because it's harmless unless you are taking it for too long. Nevertheless I believe its common alternative - paracetamol (acetaminophen) ought to be mentioned as it's plain deadly and can be considered much more dangerous (in terms of how easy it is to harm yourself severely) than MDMA.

</comment></comment></comment></comment></comment></comment></comment><comment> unclesams-uncle It'd be hilarious if the EU hit them with GDPR violations, just to rub some salt in the wounds.

</comment><comment><USER34> Has right to be forgotten taken over?</comment>


Slimmer and faster JavaScript strings in Firefox - <AUTHOR> https://blog.mozilla.org/javascript/2014/07/21/slimmer-and-faster-javascript-strings-in-firefox/ <comment><USER2> Lazily converting UTF-8 (or latin1) to UTF-16 as needed is indeed an old trick employed by many string classes.

It's even a bit surprising that a codebase as popular and performance-critical as SpiderMonkey hadn't picked up such as a simple and high-yield optimization several years ago.

By the way, other implementations are even lazier: the string is kept in its original encoding (utf-8 or 7-bit ascii) until someone calls a method requiring indexed access to characters, such as the subscript operator. At this point, you convert to UTF-16 to for O(1) random access.

Indexing characters in a localized string is rarely useful to applications and often denotes a bug (did they want the N-th grapheme, glyph or code-point?). It's best to use higher-level primitives for collating, concatenating and splitting localized text.

Granted, a JavaScript interpreter must remain bug-by-bug compatible with existing code, thus precluding some of the most aggressive optimizations.

<comment><USER3> What do the lazily converting string classes do for characters that don't fit in UTF-16? Would they convert to UTF-32, or just fall back to an O(n) index?

Example: ☃

<comment><USER4> String classes rarely use UTF-16 because it doesn't have fixed length code point representation. UCS-2 is often used instead, which uses two bytes to represent all the unicode points in the Basic Multilingual Plane (BMP), which is enough for 99.99% of the use cases.

One example of this is Python, which used UCS-2 until version 3.3. There was a compile time option to use UCS-4, but UCS-2 was enough for most cases because the BMP contains all the characters of all the languages currently in use.

<comment><USER5> Which encoding does Python use now?

<comment><USER4> PEP 393 introduced flexible string representation which can use 1, 2 or 4 bytes depending on the type of the string: [http://legacy.python.org/dev/peps/pep-0393/](http://legacy.python.org/dev/peps/pep-0393/)

</comment></comment></comment></comment></comment><comment><USER6> _Linear-time indexing: operations like charAt require character indexing to be fast. We discussed solving this by adding a special flag to indicate all characters in the string are ASCII, so that we can still use O(1) indexing in this case. This scheme will only work for ASCII strings, though, so it's a potential performance risk. An alternative is to have such operations inflate the string from UTF8 to TwoByte, but that's also not ideal._

Perhaps I'm missing something (quite likely, as I am certainly no expert when it comes to unicode), but I was under the impression that this would already have to be the case since UTF16 is also variable length.

<comment><USER7> Technically, for characters whose codepoint exceeds 0xFFFF, javascript treats them as two characters. To see that, consider the Sushi character "🍣" (U+1f363):

        "🍣".length // 2
        "🍣".charCodeAt(0) // 55356
        "🍣".charCodeAt(1) // 57187

<comment><USER8> That's a bad interface that allows you to split strings at useless codepoints and get illegal UTF-16 strings as the result.

<comment><USER9> It's the historical interface which websites now rely on, changing it would be like writing a libc with strcmp operating on Pascal strings.

In any case, a Javascript String is not actually designed to be UTF-16, it is essentially just an `uint16_t[]`. Even textual strings just store UTF-16 _code units_ , not full UTF-16 data. Relevant snippets from the standard:

 _The String type is the set of all finite ordered sequences of zero or more 16-bit unsigned integer values ( "elements")._

 _When a String contains actual textual data, each element is considered to be a single UTF-16 code unit. [...] All operations on Strings (except as otherwise stated) treat them as sequences of undifferentiated 16-bit unsigned integers; they do not ensure the resulting String is in normalised form, nor do they ensure language-sensitive results._

See also:

\- Section 8.4 [http://www.ecma-international.org/publications/files/ECMA- ST...](http://www.ecma-international.org/publications/files/ECMA- ST/Ecma-262.pdf)

\- [http://mathiasbynens.be/notes/javascript- encoding](http://mathiasbynens.be/notes/javascript-encoding)

<comment><USER10> > Although the standard does state that Strings with textual data are supposed > to be UTF-16.

No, it doesn't. It states that they're UTF-16 code units, a term defined in Unicode (see D77; essentially an unsigned 16-bit integer), which _is not_ the same as UTF-16. A sequence of 16-bit code units can therefore include lone surrogates, which something encoded in UTF-16 could not.

<comment><USER9> Oh, yes; I just skimmed 'code unit' bit without actually reading. (I've now removed the misinformation from my previous comment.)

</comment></comment></comment></comment></comment></comment><comment><USER11> My personal ideal representation of strings.

Modified rope-like tree, where each node stores a flat array of characters, with the caveat that "characters" within a node must have the same encoding, with the node storing the encoding. Yes, this means that a string can have multiple encodings within it. The internal "default" representation is a flat array of a (modified) UTF-8 encoding, at a fixed number of bytes per character (stored in the encoding) using overlong encodings if necessary. (So if you change a character in a node composed of two-byte characters into a single- byte character, you don't need to regenerate the node if it doesn't make sense.)

<comment><USER12> Honestly, I really couldn't care how a string is stored internally. It matters much more to me that it exposes, at a bare minimum, the ability to iterate over Unicode code points — something JavaScript and so many other languages do not do. From there I can perhaps build up to something actually useful (like a concept of a character).

<comment><USER13> Most languages designed today use UTF-8 so in those you should be able to iterate over the code points.

<comment><USER9> What do you mean by this? UTF-8 != iterating over codepoints (in fact, UTF-8 is the most complicated UTF encoding to iterate over codepoints).

</comment></comment></comment></comment><comment><USER14> _For every JS string we allocate a small, fixed-size structure (JSString) on the gc-heap. Short strings can store their characters inline (see the Inline strings section below), longer strings contain a pointer to characters stored on the malloc-heap._

I wonder what the reason is for this roundabout way of doing it - couldn't the whole string be stored as a variable-length block (header with length, and then the content bytes), all on one heap? Incidentally this is also one of the things I think is broken about the malloc() interface; there is no portable way to get the size of an allocated block with only a pointer to it, despite that information being available somewhere - free() has to know, after all. Thus to do it the "correct, portable" way you have to end up essentially duplicating that length somewhere else. The fact that people are getting told that it's not something they need to know (e.g. [http://stackoverflow.com/questions/5451104/how-to-get- memory...](http://stackoverflow.com/questions/5451104/how-to-get-memory-block- length-after-malloc) ) doesn't help either.

I've written a "nonportable" (in reality, all that would be needed is to change the function that gets the length from the block header) string implementation that uses this technique, and it definitely works well.

 _Some operations like eval currently inflate Latin1 to a temporary TwoByte buffer, because the parser still works on TwoByte strings and making it work on Latin1 would be a pretty big change._

I haven't looked at their code but if the parser expects the whole string to be available and accesses it randomly it would certainly be a big rewrite; otherwise, if it's more like a getchar(), it wouldn't be so hard to have a function expand each character from the source string as the parser consumes it.

 _The main goal was saving memory, but Latin1 strings also improved performance on several benchmarks._

With modern processors having multilevel cache hierarchies and increasing memory latencies, smaller almost always is faster - it's well worth spending a few extra cycles in the core to avoid the few hundred cycles (or more) of a cache miss.

<comment><USER15> SpiderMonkey uses one of the rather elaborate, carefully-tuned modern allocators (tcmalloc or jemalloc, I forget which) that's designed around clustering allocations into 'size categories', and carving allocations out of those categories. As a result, a given allocation will end up with overhead based on the size bucket it's put into, and certain buckets may perform better.

In this environment it's very useful for each type to be fixed-size (within reason) and be consistently sized. You'll end up with all your JSStrings allocated out of the same size bucket and other things get simpler and faster.

For example, with fixed-size JSStrings allocating out of a fixed-size allocation bucket, perhaps thread-local, you can allocate a string by atomically incrementing a pointer. Speedy!

<comment><USER16> In general Firefox uses jemalloc, so shipping builds of SpiderMonkey do as well. However, _individual_ JavaScript objects are allocated using a custom SpiderMonkey-specific allocator that uses fixed-size bins, knows about garbage collection information, and (as of this year) supports multiple generations. No production-quality JavaScript engine uses the C malloc interface for individual JS objects; you'd get killed in the benchmarks if you tried.

</comment></comment></comment><comment><USER17> Is this similar to the Flexible String Representation[0] in Python 3.3?

[0] [http://legacy.python.org/dev/peps/pep-0393/](http://legacy.python.org/dev/peps/pep-0393/)

<comment><USER18> Nearly the same, save for the fact that python also gives an option for UTF-32.

<comment><USER12> I wouldn't say it's an option: the string's internal representation might be UTF-32, but whether or not it is is transparent to you the coder. (Just as the JS change is transparent to the JS coder.)

However, the Python change wasn't _entirely_ transparent: len() on a string now returns the length of the string in code points, whereas previously it returned the length in code _units_. Further, previously Python could be built with one of two internal string representations, so len(s) for a constant s could return different answers depending on your build. Now it doesn't, and len returning code points is _much_ more useful.

</comment></comment></comment><comment><USER19> I know this will probably get downvoted into oblivious but is string space really an issue in the browser?

For example, this page at the time of this post has 68k of html so 68k of text. Let's assume it's all ASCII but we store it at 32bits per character so it's 4x in memory or 270k. Checking Chrome's task manager this page is using 42meg of ram. Do I really care about 68k vs 270k when something else is using 42meg of ram for this page? Firefox is also at a similar level.

Why optimize this? It seems like wrong thing to optimize? Especially for the complexity added to the code.

<comment><USER20> I'd guess that it's actually quite an issue for JS heavy pages. This would probably benefit anyone doing signification in-browser apps in JS.

<comment><USER19> Hmmm, checking for example Gmail which is arguably a heavy page it's got 4meg of requests for various js + html files. So 16meg if expanded to 32bits per code point. But it's using 160meg of ram. Strings are not where all the space is going it would seem.

<comment><USER21> If you actually read the linked article, it has measurements for how much RAM strings use in Gmail. For the particular case of the article's author, it was about 11MB of strings before the changes he made; it was about 6-7MB of strings afterward. Your mileage will vary depending on what actual mails you have, of course.

Note also that comparing this to the Chrome numbers for overall Gmail memory usage is comparing apples and oranges: Firefox tends to use less memory than Chrome. You'd want to look at about:memory in Firefox to see how much memory that gmail page is likely using.

</comment></comment></comment></comment><comment><USER22> Why not compared with other browser like chrome etc?

<comment><USER23> In Firefox you can easily answer questions like "how much memory are strings taking up on this page", thanks to the fine-grained measurements available in about:memory.

I don't know of a way to get these measurements in other browsers. Chrome's about:memory page contains _much_ coarser measurements, for example.

<comment><USER24> Chrome has the memory profiler for that.

<comment><USER25> Does that even work for memory usage by native code?

</comment></comment></comment></comment><comment><USER26> Latin1? I hoped it would die some day.

<comment><USER27> This is an internal representation. JS strings do and continue to behave as sequences of 16-bit integers.

This change takes advantage of the fact that most JS strings fit into an 8-bit charspace, so for those that do, it uses a more compact representation internally.

This optimization is simply: if we have a string and we know that all of the uint16_ts in the string are <= 255, then just store it as a sequence of uint8_ts.

<comment><USER28> ES6.1 wishlist: UTF8 strings, full stop.

<comment><USER29> Be careful what you wish for. Unicode strings are fucking complex. UTF8 double so.

For example which of the four Unicode character normalization interests you most? Or you need grapheme clusters? Or you need code points? Or byte values?

<comment><USER8> You already have UTF16 which is both complex and inefficient (because of two byte representations of Latin characters)</comment></comment></comment></comment></comment>


iPhone support for YubiKey OTP via NFC - <AUTHOR> https://www.yubico.com/2017/10/iphone-support-yubikey-otp-via-nfc/ <comment><USER2> Good update!

tl;dr: With iOS 11+ and on iPhone 7+, one-way NFC is allowed: apps can get OTPs from an NFC-enabled Yubikey, but FIDO (which needs two-way NFC) isn't going to work right now.</comment>


How Secure Is My Password? - <AUTHOR> http://howsecureismypassword.net/

<comment><USER2> I thought the joke would be - 'not very, because you just typed it into this site which means you would type it into anywhere'

</comment><comment><USER3> If you view the page with Javascript disabled, you get

"For security reasons Javascript is required for this website to work.

Why?

Because Javascript runs on your computer.

Which means no information is transferred over the internet when you type in your password.

Which means that no one can intercept it."

</comment><comment><USER4> Nice way to collect tons of passwords for your dictionary. :)

</comment><comment><USER5> They need to update their dictionary. For _password1_ :

      It would take
      About 117 days
      for a desktop PC to crack your password

<comment><USER6> I put in a generic 'yo momma' joke and got this:

      It would take
      About 8 octillion years
      for a desktop PC to crack your password

I think desktop PCs might get a little faster in the next 8 octillion years :)</comment></comment>


Scientists Hack Cellular Machinery, Create First Artificial Ribosome - <AUTHOR> https://hacked.com/scientists-hack-cellular-machinery-create-first-artificial-ribosome/ <comment><USER2> I'm not sure that this is very useful. To make strange proteins I think it's better to make strange t-RNA that is bound to strange aminoacids. The ribosome only connect the aminoacid that are selected by the t-RNA.</comment>


Unholiday cards (an Alexis Ohanian collection) - <AUTHOR> http://unholidaycards.com/index.html

<comment><USER2> Let's BEE friends.

(And there's a picture of a bee)

</comment><comment><USER3> What you're seeing here is web 3.0 technology.

</comment><comment><USER4> haha, these are great.

But he's going to be sued for that Thomas the Train ripoff...

<comment><USER2> Simpsons ripoff.

<http://www.google.com/search?q=choo+choo+choose+you></comment></comment>


Update to Palm SDK and Early Access Program - <AUTHOR> http://pdnblog.palm.com/2009/06/an-update-on-the-early-access-program-and-the-sdk/

<comment><USER2> I'll say the same thing I said about the iPhone SDK: They should take their time and get it right. The worst thing they could do is allow a lot of shoddy resource hogging, crash prone, applications get out there. They also need to ensure good backwards compatibility. They can't release an alpha quality SDK today and break everyone's apps in 3 months. End user experience is very important and making people scared and weary of third party apps taking over their phone (multitasking has some downsides eh?) would be a horrible mistake. Take your time, do it right.

</comment><comment><USER3> Does anyone know how much of webOS has been released as open source? Anything interesting?</comment>


Moonlighting is the New Job Interview - <AUTHOR> https://grouptalent.com/blog/moonlighting-is-the-new-job-interview

<comment><USER2> Open source can also be a way to get the same job "interview" you'd get from moonlighting. This isn't an option for people who work on a highly proprietary code base, but if you can find the sort of job where you are allowed to release portions of your project as open source or make contributions to an open source project, you may end up creating a large network that is already very familiar with your coding ability, what it's like working with you, how you present information, and so forth. That's a lot more valuable than standing at a white board explaining how to detect cycles in linked lists.

<comment><USER3> Like the concept of "open source as an interview"

But you could do it the other way around as well. Do some open source work for a company you're interested in joining/contracting for. For example, a developer wrote an iOS client library for our payments API. <https://github.com/balanced/balanced-ios></comment></comment>