Ask HN: Did you implement a lunch picking app at your startup? - <AUTHOR> When a group of developers start meeting regularly for lunch, it's almost inevitable for them to create an app -- within days -- to answer a real question: What the heck should we eat today?
This happened to me on more than one occasion. Here's an old one from where I worked at long time ago: http://www.venarc.com/lunch/
I'm curious to see what other startups/groups have come up with. List your startup and a link to the lunch picker (if it's public). <comment><USER2> This sounds like a uniquely American thing to me. I've never heard of this concept anywhere except California.

Everywhere I've worked on-site, if people wanted to eat together they just did that weird thing people do and _talk to one another_.

<comment><USER3> There's a delicate art to these negotiations if you want to end up going someplace good.

You can't just come out and say where you want to go, because it will get swatted down by everybody else who wants the Barbeque Joint or Sushi House or Rubio's Fish Tacos or Thai Garden. You have to let them wear each other down for a while until all the good options are off the table and everybody is resigning themselves to compromise on that lame soup place or Applebees or whatever.

 _Then_ you strike with Mama's Mexican Kitchen. Everybody will be so relieved that they don't have to eat another f'ng TGI Friday's meatloaf that they'll jump on the idea, even if they weren't in much of a Mexican mood 45 minutes ago when this stupid negotiation started.

<comment><USER2> As I said. If you want sushi and no one else does, just go get fucking sushi and let them eat each other's toe jam if they want.

Why must you eat lunch with your coworkers every single day?

</comment></comment></comment><comment><USER4> I'm from Tel Aviv, and here we use a website (that's also a payed-for by the company credit card) to order our lunches.

Anyway they don't have an API, but we sniffed their AJAX stuff a bit and added some scripts to our Hubot that allow us to use Hipchat to order and get recommendations (including an I'm Feeling Lucky mode). We have company hackathons 3-4 times a year, and almost every hackathon had one project dedicated to hack the lunch ordering website.

BTW although they don't have an official API, some people here approached their team personally, and we got a bit of help in doing our unofficial hacks from them.

<comment><USER5> How do you not get sick of being stuck in the office for 8+ hours a day? I like lunch as it gives me a break to go outside for a walk :)

<comment><USER4> As I said, it's also a credit card, so we can go out with it as well, most restaurants in the city accept that card (it has a credit of about $12 a day payed for by the company, and if you use more than that it gets billed to your personal credit card. Most restaurants price their lunches to fit into this budget). Sadly there's only one restaurant within walking distance, and it's inside the same building.

But I do take walks outside regardless, often right after lunch, or sometimes I like to have walking meetings. Although to be honest, if I'm in the zone, I just code all day and forget about the outside world.

<comment><USER5> Oh sorry, I misunderstood. I just thought you meant it was paid for by the company. That sounds pretty cool!

<comment><USER4> Yes, it is. The daily credit changes from company to company, of course, $12 is on the higher end, but not the highest I've heard of (plus you do pay part of it out of your own pocket, as it is taxed to some extent).

When I used to work in an area with a lot of tech companies, there was a daily ritual of walking together and picking between about a dozen restaurants, and you'd see tons of geeks doing the same thing every day around noon.

</comment></comment></comment></comment></comment><comment><USER6> This seems like a problem that doesn't require such an over-engineered solution. But I suppose over-engineering social arrangements is the underlying proposition of many Silicon Valley ventures...

<comment><USER7> That, and the not invented here syndrome.

<comment><USER2> I'm not sure there's much to invent - unless the syndrome also covers basic things like human conversation.

</comment></comment></comment><comment><USER8> We had the simplest "app" possible - cross platform, no Go or Rust or React. It was simply the newest member of the team had to go and collect the ordered lunches, organise the menus etc. Simple algo, simple implementation.

<comment><USER9> "Hey, food intern! Go talk to people, ask them what they want; if they don't react, tell 'em they'll get dry bread and water on a rust-covered plate."

</comment></comment><comment><USER10> When I worked at OkCupid Labs, we normally just did daily lunch ad-hoc. However, we set up a little app that would organize a weekly lunch "date" where people would have a one-to-one with someone from a different team. I had some pretty interesting conversations come up from that, and if I were approaching this "problem", would start from there again.

</comment><comment><USER11> We've used this one: [http://wtfsigte.com/](http://wtfsigte.com/)

Crude but effective.

</comment><comment><USER12> Ours was to pick which restaurant we would actually go out to eat at that day. You'd think it would be easy to just pick a place, but no, everyday it was an ordeal.

To seed we it, picked a list of places and trimmed any that were vetoed by even a single person. Then with the remainder everybody got a a couple votes to cast for their favorites from the list. Then we made an actual physical Wheel of Fortune style wheel but with restaurants, each choice appearing as many times as it had been voted up in the seed list. It had about forty slots with the favorites appearing multiple times.

After making that, it was super fun to pick our lunch spot everyday by spinning this big wheel. It had the little plink plink spikes that the pointer brushed past and everything. Whoever had done a good deed that day got to be the "contestant", vying for our lunch fortunes.

Man, a novelty store should start selling customizable versions of these for offices...

</comment><comment><USER13> Picking lunch wasn't a big problem for us, but typically one person would go pick up the lunch and pay for it, so I wrote a Slack bot to keep track of how much everybody owes. Helps a lot with minimizing the number of times you actually have to pass money around. [https://github.com/tonyvanriet/lunch- bot/blob/master/doc/wal...](https://github.com/tonyvanriet/lunch- bot/blob/master/doc/walkthrough.md)

</comment><comment><USER14> I created an app for just my group of friends to pick where to go to eat.

It had tags for different places and would narrow the selection down and ultimately pick one. You could say where people in the group had been recently and they would be removed, say which area of the city you wanted, delivery, take-out, dine-in, fast food, and other properties. People also had profiles where they could choose restaurants they didn't like and when you went through the picking wizard, you would indicate who was going and it would discard any restaurants that those people disliked from the potential pool. A random number generator would then make the final decision from the possible options.

</comment><comment><USER15> The startup I contracted for didn't have an app. We would just take turns picking a place for everyone to eat at. One day I would pick a place, someone else would take us through some suspicious alley ways to a hidden Mexican place, etc.

</comment><comment><USER16> We've been experimenting with voting systems in order to decide where to eat. We weren't sure which system was the fairest, so we built apps that used plurality, probabilistic, instant-runoff, and preferential voting. It reached the point where we were voting on which voting system to use!

The system we settled on was a modified Borda count ([http://en.wikipedia.org/wiki/Borda_count#Modified_Borda_coun...](http://en.wikipedia.org/wiki/Borda_count#Modified_Borda_count)). Our app isn't public, but I recommend this system, because it seems to have maximized happiness in our company!

</comment><comment><USER17> Ohh yes... [http://imgur.com/J8H7SZm](http://imgur.com/J8H7SZm)

We're from Bristol, UK and do lunches for everybody (read more: [http://simpleweb.co.uk/2013/why-we-feed-our- staff/](http://simpleweb.co.uk/2013/why-we-feed-our-staff/)). We started working on an app for this but this was dropped in favour of simplicity and just do it through google forms.

Here is an example form -> [http://imgur.com/LgC2l79](http://imgur.com/LgC2l79)

</comment><comment><USER18> Here's what we used at Allmyles: [https://github.com/underyx/footlong](https://github.com/underyx/footlong)

There's an Android app that lists the daily menus in Budapest, Hungary, where we're located. From there it was just a matter of finding the internal API of this app, and hooking it up to HipChat. We migrated to Slack and haven't yet got around to updating footlong to post the results there, though. I checked our HipChat yesterday and it was practically nothing but footlong posts.

</comment><comment><USER19> In Berlin we have a small startup based on this idea. You can subscribe to our newsletter and we send you the daily menu of the restaurants in your area every day. With forwarding this e-mail to your colleagues, all of you can select the favourites using the up-vote buttons in the email. You can track the votes on the website, but you will receive a summary about the results as well. Give a try if you in Berlin: [https://www.halb1.de/](https://www.halb1.de/)

</comment><comment><USER20> We sell a room and services reservation software, and have set it up so you can order lunch and have it delivered to the office, from a windows desktop client, from a browser, from outlook or from a mobile app. Billing happens automatically through the integrated contracts and billing system. It's somewhat overkill, but we consider it a form of dogfooding. The company is mcs.fm

</comment><comment><USER21> Yes, we had a part of our team learn salesforce API at the time, and we ordered dinner for most of the office every day, it was cumbersome to gather the orders and phone the few food seller every day, so the first app in salesforce they written was lunch ordering app. There were even stats with favorite dishes for everybody, and average money spent :)

</comment><comment><USER22> I found it painful to watch people collect everyone's orders and then phone them in and then try to work out what was in the delivery bags and who owed what. So I built [https://fuseorder.com/](https://fuseorder.com/)

(just add an event for each meal. You can add your own places and menus as needed)

</comment><comment><USER23> I had created "The Lunch Planner". There's a barely-functional demo at:

[http://providefoodfor.us/restaurants](http://providefoodfor.us/restaurants)

It's on Bitbucket and I need to open-source it at some point. Built with Meteor. It was my "oh let's try this shiny new framework" project.

</comment><comment><USER24> I wrote [http://www.collablunch.com/](http://www.collablunch.com/) for this purpose. The team uses it pretty regularly. And yes, way over engineered. I have it on my todo list to rewrite it in Meteor since a lot of the Web Socket code I wrote Meteor would have handle automatically.

</comment><comment><USER25> We experimented with a channel #Lunch on Slack, unfortunately it became a channel to share /giphy food

<comment><USER26> /giphy food is my FAVORITE slack usage!

</comment></comment><comment><USER27> We (well I) started an instance of Hubot on our company slack. It checks most of the restaurants near the office (scraping) and announces the daily menu and prices on request. Then we just try to pick one. We are in Vienna (Austria), BeeOne.

</comment><comment><USER28> What a sharp observation. I had one at [http://dreitipps.de](http://dreitipps.de) (yes, German). when I worked with my colleague of sweetbits at a startup for generation 50plus.

</comment><comment><AUTHOR> I'll get the ball rolling. Here's Venarc's lunch picker that's probably 7-8 years old. [http://www.venarc.com/lunch/](http://www.venarc.com/lunch/)

</comment><comment><USER29> I released an app recently.

[http://lunch-picker.com](http://lunch-picker.com)

\- Uses HTML5 Canvas and JavaScript (no server side code) \- Material Design \- Allows users to enter places where they normaly eat to select from

<comment><USER30> Crashed the tab with 100% cpu when I tried to untick all the options (firefox)

</comment></comment><comment><USER31> Google Forms worked great for the last startup I worked at.

[https://www.google.ca/forms/about/](https://www.google.ca/forms/about/)

</comment><comment><USER32> In all companies I worked on (around 20 including consulting clients, at least half in various cities in the US), I've never came across this "inevitability". Bad sample?

</comment><comment><USER33> My last job (not a startup) used wheelof:

[http://wheelof.com/lunch/](http://wheelof.com/lunch/)

Pretty cool. I've also used it in different cities.

</comment><comment><USER34> [https://github.com/miniloko/slack_lunchbot](https://github.com/miniloko/slack_lunchbot)

For our lunching needs in Sweden, Skövde.

</comment><comment><USER35> Ah yes... The lunch gadget. At Plumtree Software it actually helped us sell a portal deal to Thomas Weisel Partners in the early 2000's. Good old ASP/VBScript.

</comment><comment><USER36> I prefer the hassle-free variant: a large canteen/lunchroom with a good variation of food to choose from. They usually have a menu-plan on their websites.

</comment><comment><USER37> When in doubt, we used this.

      irb
      xs = %w(indian antichi ramen vietnamese bue pastificio)
      xs[rand(xs.size))]

Otherwise we talked to one another.

</comment><comment><USER38> Check out Fooda: [http://fooda.com](http://fooda.com)

</comment><comment><USER39> We have a bot in Slack that randomly picks places from a list of nearby restaurants.

<comment><USER40> same, the slackbot "random response" thing is a great 80% solution for so many things

</comment></comment><comment><USER41> When I worked at Yahoo UK back in 2006ish someone wrote an app to do this.

</comment><comment><USER42> We wrote a bot for our hipchat room that just picks from a list.

</comment><comment><USER43> my manager at my previous company (EnerNOC inc.) did the same thing! lunbo(lunch-board) lunboard.appspot.com/home

</comment><comment><USER44> We use a custom supybot IRC plugin.

<comment><USER45> We did this too, then we also tied in google maps to rank them by drive time.

</comment></comment><comment><USER46> To some extent, yes.</comment>


Add age verification to any link - <AUTHOR> http://pr0n.ly/s

<comment><AUTHOR> I made this URL shortener on a whim this morning. Suggestions? Thoughts?

<comment><USER2> Interesting, but I don't really see myself as needing to act as an age verification intermediary for links. The page serving the content should be so responsible.

<comment><AUTHOR> True. It's mostly intended for ambiguous content that isn't necessarily hosted in a place with proper age verification logic like s3, etc.</comment></comment></comment>


Ask HN: Alternative careers for a developer - <AUTHOR> I like making things but am considering giving up on being a developer. What other careers are there that use a similar skill set that you would recommend?
I'm considering architecture, industrial design, interaction design, etc
Reasons for giving up on software development:
1) I'm not very good at it.
2) I would prefer to make something physical and substantial I can show people. Screens don't impress any more.
3) I have RSI which means I can go for weeks without being able to use a computer.
Any suggestions? <comment><USER2> From what I've seen, architects go to school, really _arduous_ school, for years, after which they continue to work constantly, much more than 40 hours per week. I believe they get paid less than developers, have less job security -- and, yes, sit at a computer all day.

But what do I know? All I can suggest is: Don't apply to design or architecture school until you've talked with at least three working architects or designers. Make sure you talk to at least one cynic.

<comment><USER3> I was an architect student now turned developer. The thought processes are very similar between the two disciplines however I personally find developing more rewarding.

In architecture you are considered a 'young' architect if you are in your fifties. That means you spend your best years designing underground drainage systems (that nobody will see) or garage extensions for pittance and long hours and minimal job security.

<comment><USER4> this is the exact issue I saw as an intern at an architecture firm right before I dropped out of it as a major

</comment></comment></comment><comment><USER5> Having spent the last 15 years as a developer, I'm now working toward a career as an opera singer (I'm a tenor).

Admittedly I find it difficult to identify many similarities between opera and software development. People often make a connection between music and mathematics, but for me the _non_ -mathematic aspects of opera are what I find most attractive. The sheer thrill of dramatic expression through controlled screaming is intoxicating. And instead of my work living unseen in the dark recesses of a multi-tier architecture, I'm put, quite literally, center stage and in the spotlight, with immediate feedback (applause or boos) and recognition.

<comment><USER6> Software development and filmmaking have may common points (the process)...and that's why I'm considering switching to filmmaking....

<comment><USER7> you might want to consider software development for the film industry.

</comment></comment></comment><comment><USER8> I am always surprised at the way in which architecture as a profession is romanticized. I blame Mike Brady...

I went through the process of getting my Masters in Architecture. It is a long and very arduous process and something you shouldn't do without being passionate or dedicated to the discipline.

The crazy thing about it is that you will end up spending most (if not more than you already do) of your time in front of the computer. Sure there is some hand drawing and model making, but the industry is digital now, and working on digital drawings, digital models, renderings, post processing takes so much time – even though the transition to digital was supposed to speed up the process...

And the other thing is the compensation. As people have pointed out, architects don't make that much money (although that doesn't seem to be one of your criterium).

With my degree I've become a design problem solver generalist. I work on architecture problems, business problems, programming problems, whatever is of interest to me – and hopefully that I can get paid for. In the past couple of years, the greatest insight I've had into the difference between architecture and software/web development is the time it takes to realize things. Architecture is a very long process. You might be able to make a drawing quickly, but getting it built will take a long time. A programming development project might have a long development timeline, but there are so many milestones that give instant gratification (i.e. enabling a new feature).

<comment><USER9> I know several people that are currently using their advanced architecture degrees to:

1\. Sell baked goods 2\. Sell clothing

The job market, at least locally, ain't great.

</comment></comment><comment><USER10> I went through a brief period where I was convinced I wanted to be a carpenter, specifically making furniture. I've also worked as a builders mate and roofer in the past both of which I enjoyed and all of which settle my desire to create something. It seemed better to be building something that actually existed in the real world, not just on the internet.

These days though I'm just trying to make enough money in the next few years that I'll never have to sit at a desk again, and given my current skill set and the general nature of the internet I think being a developer is the best way to do it ;)

<comment><USER11> I hear this very often - I am working at a job which I dont want to do till I achieve a financial goal. For folks who know what they are passionate about, I wonder if it is worth it in the long term to postpone following their dream. Especially in a country like US or Uk, where standards of living are pretty reasonable for most professions.

I for the most of my life did not even know what I really like - by the time I figured out I was already 33. And it becomes very tough.

I know very few people who are convinced about what they want to do in life. Such conviction almost seems like a privilege which comes with a duty to follow your dream. Best of luck with your plans.

<comment><USER10> Possibly a little deep for this thread (just considering its not my thread), but my dream isn't a career change, its slightly higher - freedom from money. If money no longer plays a factor in my life, then I don't have to choose _one_ thing to do, I can do whatever I want when I want.

For me that's travel, adventure and photography (landscape, wildlife, culture). There's two ways I can achieve my goal, make enough so that I don't have to work again (I make it about £1.2m~), or failing that live cheaply enough that money no longer plays a major factor in my life, i.e. I don't spend most of my adult life paying off a mortgage. The plan for that would be to buy a nice old, cheap yacht and live as frugally as I can whilst exploring the world.

So either way hopefully within the next couple of years I'll be living my dream.. id rather be "financially responsible" and do it, but I'm prepared to make sacrifices if that's not possible within my given time frame. :)

<comment><USER11> I totally agree. Being frugal and financially responsible is the right way to live life anyways for so many reasons.

Just think you might find this useful (I have a feeling already that you are a value investor but still feel compelled to add this) I would add intelligent investing also to your plan and I feel you will reach your goals sooner. I have benefited a lot from Benjamin Graham's formalization of value investing - he wrote the classic "Intelligent Investor".

</comment></comment></comment></comment><comment><USER12> You could try selling software. If you're a developer now, you should be able to understand it and explain it to people. There are other skills involved in sales (it's best to be extroverted and to enjoy talking to people).

But you'd be spending your time traveling and talking to people.

</comment><comment><USER13> My Dad is an architect in a small town (40k pop) and services much of rural south eastern ohio. He almost never sits at a computer during the day, and most of his drafting is done by draftsmen on datacad.

I'd be happy to privately give you his e-mail to answer questions.

Here's what I know that might help: Because he's in a small town, working on relatively small projects (typically under 1M), he often acts as an overseer to the actual building process as well. He keeps boots and overalls in his truck, and spends most of his time away from his desk. It's my understanding that most architects in major metros, or at big firms are fairly disjointed from the construction process.

The point is, you could be a developer without spending your time at a computer (you could sell, manage, consult, or teach). You can be an architect without drafting on autocad all day (choose your market/niche).

You could learn to be an industrial designer or process engineer, and then go work in a production facility, or you could work in excel and CAD all day.

<comment><USER14> My mother is also an architect. She does historic renovations, mostly, and still drafts by hand. She spends much of her time at jobs sites, talking to clients/organizations, and researching period styles in actual books (!).

Of course, it takes a long time to develop a reputation for historic architecture, and it is _very_ local unless you develop a national name through the journals.

</comment></comment><comment><USER15> I would suggest you start by reading the essay Shop Class as Soulcraft

[http://www.thenewatlantis.com/publications/shop-class-as- sou...](http://www.thenewatlantis.com/publications/shop-class-as-soulcraft)

... and then read the entire (not very long) book, if you like the article. it might give you a starting point for thinking about fulfilling careers that don't involve sitting at a computer all day

</comment><comment><USER16> I think you should continue writing software.

1) You say you aren't very good at it... In my experience that means you're probably pretty good at it :)

2) Physical and substantial... well, it's easy to get disillusioned with some enterprise app or something. Maybe you just need a change of scenery? Get into web development or something else new to you.

3) I can sympathize with physical pain. Spend some serious mind-share learning new tools that will help you get around this. Try xmonad, vim, or other tools that keep your hands on the home-row. Take lots and lots of little breaks (grab a coffee, stretch, etc).

My 2 cents.

</comment><comment><USER17> Somebody somewhere is doing your dream job as a bridge to doing their dream job.

<comment><USER7> you can't do what you want by doing something else.

<comment><USER18> "Work might not necessarily make you happy but it may give you the means to do the stuff that makes you happy"

</comment></comment></comment><comment><USER19> Designing/Laying out fire sprinkler systems:

<http://www.sprinklercareer.freewebsitehosting.com/>

Found from another site, good details:

Even now jobs are plentiful.

All it takes is two years at a community college at one of three community colleges in the country.

Entry level average wage is low to mid $30's.

Average wage with three years job experience is mid $50's to mid $60's with more available in larger metro areas. To give one example the average annual wage for an entry level technician in Omaha, Nebraska is $36,784.32, with $61,195.93 to someone with five years experience and $73,401.73 to senior level (ten years) technicians.

The majority of companies are union companies and while technicians are considered management most companies offer benefits such as medical, dental and retirement plans.

This is not a pipe fitter or installer job. Installers are suffering unemployment, 40% in some areas of the country, but unemployment does not extend to the technicians.

The work is not physical with 75% to 95% of your time spent in an office environment in front of a computer screen. The work is always challenging and fun, it is not a boring job.

This job is different from about any other in the universe because once fully certified (5 years) you don't get the boss and HR bullshit you hear about in other places of employment because you are not easily replaced.

<comment><AUTHOR> That's an interesting suggestion, I would have never thought about that myself.

</comment></comment><comment><USER20> I'm in sort of the same boat. Developing things and creating software is a means to an end for me. Do I enjoy working for myself? Sure. More so than working for the man. But in the end, it's also so that I can be free from the ties of money.

One thing that I (and some of my other fellow CS graduates) have contemplated is going into teaching. It can be rewarding to teach Math or CS at the local high school, assuming your kids aren't too rowdy.

If you have an interest in photography, that could be a good break. I know several wedding photographers who charge what I would consider a very generous amount - they do a good job, and get tons of business. Personally, I've been interested in photography for a long time, but I'm afraid that I'd start hating it or getting bored of it if it becomes my job. Unfortunately, they spend lots of time in front of the computer editing photos.

Have you thought about anything in the financial field? Data modeling, trends, stuff like that?

<comment><USER21> I was a developer (programmer, architect, team lead, CTO, etc.) for about 20 years before I decided to give it up and pursue photography as a career. I was a studio photographer specializing in food. I did it for two years before coming back to development.

Photography is a tough career choice. If you're doing commercial work expect to be told exactly what to do (food is brutal this way - highly controlled). Unless you're at the absolute top (think David LaChappell) people come to you with ideas, expecting you to execute, and are rarely interested in your ideas. You also need great post production skills, so lots of computer work, unless you want to outsource this which is costly.

I've never done wedding photography but know a few and it's a tough business, highly competitive, very stressful (think freaked out brides and mothers) and very seasonal.

</comment></comment><comment><USER22> Try systems administration. Setting up servers, monitoring networks, you even get to do a _little_ bit of programming by writing scripts to manage common tasks.

I think sys admins generally make more than developers do (unless you are an upper tier programmer).

</comment><comment><USER23> I am an electrical engineer and in the same boat as you. While being an engineer can be rewarding, the sedentary aspects kill the reward. It is physically draining.

To remedy the situation, I decided to get a Ph.D. and become a professor. I am in my first year of grad school right now. While I know that professors have to do a lot of paper writing and grant writing, most of their work isn't necessarily computer related.

I am also thinking about going into semiconducting materials and devices resarch, which entails a lot of lab work building novel electronic devices. My previous dream was to be an IC designer, but I don't want to spend my life running SPICE simulations.

<comment><USER24> How did you get into a PHD program?

<comment><USER23> Last fall, I rushed to take the GREs and fill out all the applications. The process of applying to grad school is extremely arduous, but you hopefully only have to do it once.

</comment></comment></comment><comment><USER25> Consider becoming a tradesman or artisan of some kind. General construction labor doesn't pay all that well, and is pretty boring, but if you have the skills, specialty craftsmanship can be very lucrative and fun.

You can make physical things you can be proud of, and you don't have to use a computer. Also, at some level, it is "design" work, because even if you don't draw up the plans, you have to make decisions about how things fit best and what works where, &c.

</comment><comment><USER26> What about professional photography? While the industry as a whole is currently in flux, there are several technical aspects which often come naturally to hackers/math types.

If you truly learn the craft and work hard at marketing, you can create something of high value to others–be it art, helping other companies (through commercial work), telling stories (journalism or editorial), or personal (portraits/weddings).

</comment><comment><USER27> Some years back, I had the epiphany that I wanted to "do something in the built environment" career-wise. I went through some college catalogs, made a list of all the majors related to the built environment and read what was required to complete a degree in them. I eliminated Architecture off the bat because you basically start from scratch with a degree in Architecture. None of my existing credits would have meant squat. I eliminated civil engineering because I had dropped out of calculus when I was 18 and they required lots of calculus. I don't remember all the other degrees I considered. Ultimately, I concluded I wanted a bachelor's in environmental resource management and a master's in urban planning. Life got in the way, so I haven't finished my bachelor's (though I did manage to work in a nifty certificate in GIS) but perhaps the thought process I went through will help you.

Good luck with this.

</comment><comment><USER28> Sales engineering or sales both pay really well and have a less technical component.

I've REALLY enjoyed woodworking and home remodeling. Impressive output that wows people, creative problem solving, etc.

Medical stuff isn't going anywhere, though you better like working with old folks. Nursing is fairly approachable.

There are probably some areas of law that aren't repulsive.

</comment><comment><USER29>
      Sales Engineer
      Construction site manager
      Military officer
      Field biologist
      Criminal investigator [1]
      Doctor, Nurse, PA
      Teacher

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

</comment><comment><USER30> I am an art school grad, have been an industrial designer, UX/UI designer, and have a lot of friends who are architects. Unless you are REALLY gifted aesthetically. I wouldn't go through the time/expense of design school. You could probably transition to UI design pretty easily. ID is an interesting field, but largely shrinking. Look at the open req's at what were top ID firms (Frog/Ideo/Continuum) Very few are doing much business designing things compared to UI's or some mech-e work. As for the RSI, the average designer spends a lot of time in the Adobe suite or a CAD package so it probably won't help. That said if you are really passionate go for it.

Feel free to contact me if you want more info.

</comment><comment><USER31> I studied to be a film editor, but ended up as a developer. There's a surprising similarity in the thought processes and trade-offs involved in editing and coding. In both cases, you're in charge of building up a coherent microcosm using a constrained set of intellectual raw material that was created by someone else, whose goals you may or may not agree with.

Unfortunately film editing nowadays involves mostly sitting at a computer (unless you're an oldschool star editor who can demand a Steenbeck flatbed editor and real tangible film).

</comment><comment><USER32> If you're in the US, you can become a foreign service officer as they need a lot of information technology people in different areas. If you're interested in living in different parts of the world, this would be a good career path.

<http://careers.state.gov/officer/index.html> <http://careers.state.gov/specialist/employment.html#IMS>

</comment><comment><USER33> nowadays pretty much any white collar job you do, will involve sitting at a computer all day.

<comment><USER34> Including the architecture and design jobs he listed.

I guess if he really hates computers he could be a manager and spend his days in meetings.

<comment><AUTHOR> It's not a matter of hating computers but of being unable to use them much. I have RSI and can go for periods of weeks/months of being unable to type.

<comment><USER35> What helped me completely cure my wrist pain was reading "The Mindbody Prescription" by Dr John E Sarno. I was in a similar position and was considering a career change. I took over a year off of work to try and recover (eventually coming back to work part time). Once I read this book and applied it, I was able to immediately recover. It's been about 7 years now since.

The ideas it presents are definitely not mainstream. But it is fairly logical and scientific. There are plenty of other sources that talk about the connection between the mind and the body, but I've never seen anything present it in such a way that makes sense to me and gives ideas of how to directly apply it.

I'm not that great at explaining it in a nutshell. The wikipedia page seems to have some decent info: <http://en.wikipedia.org/wiki/Tension_myositis_syndrome>

But the best summary I've read is this word doc: <http://www.rsi.deas.harvard.edu/handout.doc> (hit the Google cache for HTML version)

</comment></comment></comment></comment><comment><USER36> This has just as much substance as someone posting "What should I go into in college? I'm good at math."

It's hard to choose, but careers aren't like funnels where everyone who would enjoy software development would be a great architect!

</comment><comment><USER37> What else can you do? In my opinion, it would be a bad idea to do something that requires the same skills than a developer. If you can cook, why not be a chef? If you can play music, why not be a musician?

</comment><comment><USER38> As a veteran developer, I too was hit by RSI, and strongly urge you to first start using speech recognition for dictating all of your e-mail messages, code comments, documentation, etc.

</comment><comment><USER39> I was actually thinking about doing a degree in geology just for the fun of it - then I saw what petroleum geologists get paid!

<comment><USER38> Too low, or high enough to prompt you to join the profession?

</comment></comment><comment><USER40> Become a cobbler.

</comment><comment><AUTHOR> Thank you everyone for your kind advice and suggestions

</comment><comment><USER41> Become a mechanic; That's what I would do anyway...

</comment><comment><USER42> Have you considered working in a pet store?

</comment><comment><USER43> How about carpentry?</comment>


You Gave Facebook Your Number for Security. They Used It for Ads - <AUTHOR> https://www.eff.org/deeplinks/2018/09/you-gave-facebook-your-number-security-they-used-it-ads <comment><USER2> Is there a way to ask for what information Facebook has of a non-user (like myself), ask to have it deleted, and ask Facebook to not collect information about me since I am not a user?

<comment><USER3> Let me rephrase your question:

Is there a way to ask Facebook to completely change their business model and lose all revenue?

</comment></comment><comment><USER4> Now that everyone has a cell phone and keeps the same number forever, your phone number is the new social security number. Think of all the places social security numbers were used because they were a fixed identifier and how we now think that that was a bad idea. Laws were passed against companies using them. Giving out your phone number is the same problem except many companies have some legitimate reason to collect it (see the article) and then what do you do?

<comment><USER5> I too protect my phone number like my SSN. When a lot of services started to offer 2FA via mobile nimber I bought a cheap SIM Card and used a raspberry pi I had laying around to build a SMS<->Telegram bot. I now use this mobile number for 2FA services or services I don't trust.

<comment><USER6> I can probably buy your SSN for under $10, conservatively.

</comment></comment></comment><comment> nevi-me Something that I haven't seen mentioned before, though I've seen on my account. There's a time when I noticed that Facebook still had my number, so I removed it. When I removed it, FB replaced my number with a random number (which looked like a number of someone else in my country). Might have been a bug at the time, as that's not the case now.

That event when I knew that I had removed my number, but still found it active; made me not trust Facebook.

<comment><USER7> Happened to me as well. I was always curious about that because it was clearly another cell number. I did try and text that number once and give that person a heads up but no response back. I'd really like to know what that was because my thinking is that if that is indeed someone else's cell, then your number is appearing elsewhere too. The strange thing is it wasn't a number that I've ever associated with so then populating it with a "best guess" isn't even true.

</comment></comment><comment><USER8> I was forced to add it the other day to log into another app with facebook. I was very annoyed as I have always avoided doing it

<comment><USER9> You were not "forced". There were other options. I can think of a very simple one that I would have taken.</comment></comment>


The Map of Mathematics - <AUTHOR> https://www.youtube.com/watch?v=OmJ-4B-mS-Y <comment><USER2> I like the summary poster: [https://www.flickr.com/photos/95869671@N08/32264483720/in/da...](https://www.flickr.com/photos/95869671@N08/32264483720/in/dateposted- public/)</comment>


Rails Concerns: To Concern or Not to Concern - <AUTHOR> https://blog.appsignal.com/2020/09/16/rails-concers-to-concern-or-not-to-concern.html <comment><USER2> At the end of the day concerns are just Ruby modules and they are a core feature of the language. They are an acceptable style of programming. It all depends on the task, your team's size/maturity and the hard boundaries you'd like to enforce.

The problem with concerns is that they can easily start leaking logic into other concerns or models and you've only got your team's conventions and common sense (which are all very soft boundaries) to steer you away from this. As a matter of fact, same goes for Rails engines - they make it very easy to call the parent app from within an engine and it's very tempting to do so at the cost of leaking logic and breaking these boundaries.

If your team can agree and stick to a set of conventions in regards to concerns, there's nothing wrong with using concerns the way Basecamp uses them. If you prefer stricter boundaries, there are other patterns that you can follow (like service objects or ActiveJob or events).

I personally use concerns when the behaviour tends to be very generic ("Paginates", "Cacheable", "SoftDeletes") and service objects for anything that touches the business logic.

</comment><comment><USER3> I've been doing Rails development for a decade. Concerns are probably the biggest code smell/anti-pattern I've ever seen in any application. It's used as a bandaid to "break up" classes which do too much (but you really don't, you're just hiding the complexity), or it's way over done and everything is magic and almost incomprehensible and unmaintainable. Overall, just a total nightmare to deal with. Would not recommend, and I always try to steer people away from using concers during code reviews.

<comment><USER4> What's the alternative to sharing logic across ActiveRecord models?

<comment> Fire-Dragon-DoL Don't put the logic in activerecord models at all. Not even the data. Use activerecord uniquely as a querying mechanism (read or write), don't use relationships and don't put validations in there.

Create objects (aka behavioral objects, aka servoce objects) for the logic and create entities (plain ruby objects) when you need to pass around the data.

Yes, you are essentially eliminating the entirety of activerecord.

After 10 years of rails, you realize that is the only safe way to use that library.

By the way

User User::SignUp Are related. The behavior doesn't need to be in the same object, the namespace takes care of that already.

<comment><USER5> > Use activerecord uniquely as a querying mechanism (read or write), don't use > relationships and don't put validations in there.

I'm sorry, but without relationships - why even use AR for querying? And how? Via connection.select/execute?

<comment> Fire-Dragon-DoL It's hard to answer, in the sense that yes, you can use ActiveRecord relationships for the purpose of _building a query_. The point is, you should use them only for that. And it comes with the downsides of distancing you from SQL, which is not negligible.

The problem is if you try to access relationships that you didn't load from the object, that shouldn't be done. It's the autoloading from the database that is the real problem.

If you have enough discipline and enough authority to ensure that never happens within the software you are working on, you can.

It's really culture problem. As soon as you pass around a `user`, someone will type `.posts` on it, or `.save`, suddenly your business logic depends on the database shape, rather than on contracts. What if your database shape is wrong? What if your database shape needs to change?

The goal of good architecture is to be resilient to change, or to even _postpone the choice_ to a moment in time where you have more data to make the right one.

The safest way is: query with activerecord, map to plain ruby objects and discard the activerecord ones immediately.

This will also help you discover the entities you didn't know about, for example, if you have a table of users identified by email, that's the "User" table in Rails. However, let's say that you take only a subset of that table (with select), such as "Full Name" and "Email": this could represent something different. A Newsletter::Subscriber for example.

And the newsletter subscriber entity can be used in the Newsletter::Weekly::Send object, as well as the Newsletter::Unsubscribe. If you realize that this should not have been in the users table in the first place (I have no idea myself), the cost of change is way lower than if you passed an activerecord object around.

I hope this answers some of your questions. There is a lot to say on the topic. I'm happy to chat more on slack or an online videoconference session

<comment><USER6> That is very interesting approach! I've never worked on a project that doesn't use AR relationships e.g has_many... at all.

Do you have an example app or a blog post exposing this pattern? It would be very interesting to see how this actually works. Thanks you very much for bringing this up!

<comment> amw-zero They aren't saying to not use has_many. They're saying to not use the association method that gets put on the AR object from has_many. For example, if a User has_many Posts, they're saying to avoid calling user.posts.

That may seem weird, but the association still has value: for querying. You can still write: User.joins(:posts) for example.

The problem with the association methods is that they aren't really methods because they always execute a query. A lot of longtime Rails developers get tired of the database being involved in every step of the way in a request, because it leads to a lack of separation of concerns.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> Forgive the slight tangent but I'd like to talk about Rails in general:

Just last night I was migrating an app from Rails 4 to 6.1 - I have been using rails since 0.9, but I think my long relationship is coming to an end.

What I loved about Rails was that it built a web framework with the same basic idea as Ruby: optimize for developer happiness. Trying to use the webpack integration (released with Rails 5.1 I think) is a nightmare. Suddenly my clean Ruby world is polluted by JavaScript package hell, there are now two parallel asset pipelines with subtly different behavior, I can no longer reference JavaScript directly in my views, and the convention over configuration Rails approach seems to have been superseded by a tool with the most nightmarish proliferation of necessary configs that I've ever seen.

To top this all off, none of this is documented well in any of the official Rails resources. The Rails JavaScript guide mostly focuses on their rails-UJS tool (which is fine, though also lacking in actual API documentation) and makes no mention of any of the webpacker stuff. The only docs I could find were in half finished pull requests in forked repositories, and some brief notes in markdown files.

Before starting with Rails 6, I was excited to try out the new Stimulus.js, and hopefully the improvements derived from Hey.com. Now I want to tear out every bit of JavaScript integration from the framework and manage those assets entirely on my own.

<comment><USER8> From 4 to 6.1 _in an evening_ , colour me impressed.

<comment><USER9> That was my experience as well. Usually upgrading years old codebase to the bleeding edge took way less than expected. Webpack on the other hand is a different beast to handle and a challenge in itself.

</comment></comment></comment><comment><USER10> Concerns are the best example of the flaws in Rails and Ruby. The fact that DHH came up with a mixin applied at runtime as the solution to organizing Rails apps is frustrating. Other programming ecosystems have rightly moved away from mixins and do-everything-dynamically, along with moving away from mixing data and methods that self-mutate that data.

Having worked on large real world Rails apps, concerns are indeed a poor pattern in practice. They introduce hidden, untraceable dependencies, can clobber each other silently, make it difficult or impossible to understand where methods come from, and bloat classes into super coordinators, when "models" should only be data. Combine that with Ruby's horrible preference for metaprogramming and you get unmanageable code.

PS: If you work at a company as big as Github that can afford to literally employ Ruby core maintainers, then you are welcome to reply with "but it works for Github!"

<comment><USER11> I've been working on Ruby apps again lately after spending a few years in the iOS world. I don't miss iOS at all but moving back to a slow, dynamically typed language like Ruby after getting used to Swift is like trading in a Tesla for a Model T. Ruby was great it its day but I think we can do better now. Maintaining large Ruby codebases is no fun.

<comment><USER12> No fun for you, maybe. And I can see where you're coming from. I often find it very fun, though, which has prevented me from porting an API to another language like Go or (gasp) Swift. Ruby gives a lot of flexibility, and in my line of work (especially with covid mitigations) there are lots of immediate change requirements; flexibility is very important. That flexibility provides the ability to shoot yourself in the foot (and I've surely done it), but it also allows us to pull off events that have suddenly changed with little warning. I like that.

<comment><USER13> > pull off events that have suddenly changed with little warning.

Excuse my ignorance. What are the events you reference here?

<comment><USER12> I work for an event company, and in many cases much of it is orchestrated by Ruby code, including a few rails apps.

<comment><USER13> aha. I wasn't sure if you were taking about events on the software side.

<comment><USER12> Imagine the naming conventions on the software side :)

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> I tend to only use concerns in extremely cut-and-dry cases. And even then, I sometimes get annoyed with them when hunting for that one method which is tucked away in a concern somewhere. But sometimes they are the best solution for making sure a bit of shared behavior doesn't get out of sync between models.

</comment><comment><USER15> I'm an old dog. If I'm honest, Rails is the only thing I know (... I _barely_ know a lot of things).

Counter do DHH's and core Rails' pattern, I'm thin models and Service Objects ( _GASP_ the horror!) to handle business logic. Models become DAO-y.

I had a lot of mental trouble handling different use cases for the same object. Like if an Admin vs User updates a post. The notification chains are completely different. So now my service objects look like: Post::UpdateByAdmin < Post::Base vs Post::UpdateByUser < Post::Base.

So, in general, my concerns are pretty thin. Like the post only handle data grabs. Even then, I'm guilty of doing what the post says from time to time especially when I couldn't see far enough into the future.

</comment><comment><USER16> I've never really had to program using Ruby but just reading this Concerns concept makes me shudder. Am glad that I do not have to deal with the code structured in such way.

<comment><USER17> I worked on Ruby fulltime in a large team and it's as horrible as you imagine.

One big ball of connected modules that depend on everything else.

It's not Ruby's or Rails' fault I guess, but it's easy to screw up and do it badly.

You can make some pretty neat stuff with it but it takes great care and a lot of discussions and disciplined code reviews</comment></comment>


Interactive home workouts with Koach TV - <AUTHOR> http://koach.tv <comment><AUTHOR> Netflix for interactive home workouts. Plug in any smartphone or smartwatch and follow the personalized workouts. Early access to beta open now.</comment>


How to colocate your first server at a datacenter - <AUTHOR> http://blog.definedcode.com/colocation <comment><USER2> I am so glad I live in a world where I will never have to do this again for anything but large infrastructure projects. I've colocated servers at major POPs like 111 8th Avenue in Manhattan, Equinix in Seacaucus, One Wilshire in LA.

For smaller projects, the convenience of the cloud is absolutely worth the price. For a larger build - like over 10k a month in infrastructure cost the cloud starts to make less sense economically but 'colocating your first server' is not a right of passage anymore - its unnecessary and a huge waste of time.

All of the functionality/services you have to provision yourself in colo like - redundancy, backup, remote hands, environmental monitoring, hardware maintenance are just not worth figuring out until there is substantial cost savings to realize.

<comment><USER3> > redundancy, backup, remote hands, environmental monitoring, hardware > maintenance are just not worth figuring out until there is substantial cost > savings to realize.

So you don't need to monitor temperature sensors any more with a VM, but most of the above are still costs with cloud - flaky RAM, redundancy, backups, monitoring, etc. There are also the things you previously didn't have to worry about - crappy resource isolation turning your scratch disks into 2kb/sec joys, total ineffectiveness of the CPU cache, managing a now-essential network fabric to tie pieces of your app together where previously it all fit on 2 master/slave machines, etc.

Of course if your application isn't simply some stock PHP/MySQL application, and you want to really "embrace cloud", then the time you saved fighting a subset of hardware problems is replaced by a fixed development cost integrating with someone else's higher tier APIs (S3, Dynamo, etc) you can then never escape even if you wanted to.

I've never seen any realistic numbers comparing the use of traditional hosting facilities, say, providing managed servers, to the new generation VM stuff. Any material I've seen has been sponsored crap involving some multinational.

My own experience is similar to yours - hosting your own hardware is a pain in the ass. However there is middle ground, there are many colos that will happily provide managed hardware, and perf/pence, this still tends to be far cheaper than the equivalent in VMs, and increasingly they're coming with similar APIs to order/replace machines

<comment><USER4> From my limited experience, the cloud is always more expensive if you know your exact usage requirements. If, for example, you know that six octo-core 16 GB RAM, 512 GB SSD-in-RAID1 servers would fit your needs from now until 10 years from now, you will do better to just rent them from SoftLayer, Hetzner, etc.

However, if you anticipate growth, or need to be able to spin up a test server, then shut it down a day later, etc. then you are better off paying premium for the cloud. Sure, there are economies of scale at play here: AWS has so many servers, they are not paying a person to log into every one of them every so often to run updates, etc. However, make no mistake: everything you would have to do with a server, Amazon has to do too. In fact, they have to do much more to keep all of them running at once. That cost will be passed onto you.

Even with all of that, it's cheaper if you want to be able to spin something up, then shut it down. Another great example is the additional services provided by the likes of AWS: you can get things like load balancers, cache servers, database servers, orchestration services, etc. You can do all of this yourself, but at some point it's cheaper to just pay for something like ELB than to learn how to do it yourself and spend the hours to set it up. Human time is more expensive than that.

Lastly, if you just need a really small machine, there is no beating the cloud. You simply cannot get a dedicated machine for $5/month, and you likely never will.

<comment><USER5> You can get damn close!

[http://www.kimsufi.com/uk/](http://www.kimsufi.com/uk/)

I found OVH's dedicated server offerings to be so cheap that there was no point in using shared hardware for the flexibility. Then again, I'm not running my entire business on these boxes... but I don't think I'd have a major issue if I wanted to!

<comment><USER6> Huh; that's actually a better deal in many cases than my existing virtual servers. Thanks for that recommendation; I'll keep my eye on that.

<comment><USER5> The day I got my first ovh recommendation was a good day for my inner accountant.

</comment></comment></comment></comment></comment></comment><comment><USER7> Couple of bits of advice to anyone doing this:

Firstly get your own IPs from your local RIR. Have your co-lo provider publish your routes, but they will be YOUR IPs. if you co-lo provider sucks, you can move and keep your IP space. (This is vital for email, but I recommend it for everyone).

Secondly buy a Out of Band Management card with your server (iDrac for Dell, iLO for HP, etc) these cost fairly little and will save you hours of access / remote hands. They will pay for themselves, you can even boot an ISO from your laptop over the internet. Get your co-lo provider to give you an extra uplink for this and give it a separate IP (use one of the providers range)

Thirdly consider Mission Critical support on the servers from a solid vendor (In australia I consider the enterprise vendors Dell, HP, IBM and Acer, and of those I will only use Dell or HP). 4 hour response means you don't need as much spare hardware, and you can have things fixed FAST. I have only lost 2 disks in a rack of servers over 4 years. Both had a replacement in place within 4 hours (once at 1am).

Fourthly look at a good Virtualization solution. We initially went oVirt (Open source version of Red Hat Enterprise Virtualization) but ended up migrating to VMWare. VMWare Essentials Plus costs us $15K for 3 years in extortionate australia prices and is worth every cent. It provides Backup (VMWare Data Protector), Failover, Virtual SAN, Live Migration and a heap of useful features that save huge amounts of time.

Finally if your going to grow consider getting a rack (or half / third of a rack). This will likely give you unescorted access to the data centre, and is often not that much more then a few RU of servers (depending on the DC and racking availability).

<comment><USER8> Do _not_ put your IPMI controller on a public IP without any sort of access controls in place. These controllers are pretty terrible security wise, and it's not a good move.

<comment><USER9> Indeed. See [http://fish2.com/ipmi/river.pdf](http://fish2.com/ipmi/river.pdf)

</comment></comment></comment><comment><USER10> Also don't forget to check out the rented dedicated server market too. It provides a good middle ground in cost/power/performance to the extremes of cloud providers and colocation.

<comment><USER11> Yes, always compare with rented dedicated, and only go with colo if it makes sense. I did this analysis last year and rented won big time. Never looked back since. Main points in favor of rented dedicated servers: \- Much cheaper in my business case (5-10 TB/month by server, only a few high CPU requirements) most dedicated come with bandwidth included \- No need to take care of the hardware in case of failure (opening a ticket versus managing the whole process) \- Easier to switch machine if needs changes \- Scales faster (as quickly then 2-3 hours with decent automation tools, and virtualization) \- No switch, firewall, etc (IPMI should always be behind a firewall, never opened on the Internet) \- The upfront cost to buy a server was high, and monthly cost of dedicated was actually lower, due to the lack of competition in the colo sector in my area (Montreal, Canada), prices were (and still are) rising quickly, it was hard to predict the long-term costs

<comment><USER12> Maybe it is a Canada thing. I looked at some colos in the Toronto area a few back and found rental prices were about the same as bringing your own hardware. Didn't make sense. I was just looking for a home for some server hardware I have in my garage. Oh well.

<comment><USER11> Almost all the independant colo centers in Montreal have been bought out by big players with the corporate world in sight, not the small 1-2 servers market. So the prices skyrocketed.

The opposite is true for dedicated, since they have to compete with us-based players, and OVH got in the East Coast market big time. Prices are lowering.

</comment></comment></comment></comment><comment><USER13> Thanks for the article, I've seen that term floating around and never knew how to get started. I've been itching to get into the server hosting business as a side thing ever since renting my own KVM VPS.

I was blown away by the fact that I can sit there and watch it reboot over screen sharing from my iPad. I treat it as a cloud desktop (runs the latest vanilla Ubuntu) and so of course it was easy to get apache and PHP and Ruby and a whole web server environment up. I do all my work on it, as well as my play. I use Plex to stream myself media, and OwnCloud and other tools to replace Dropbox and even deploy sites.

I want to sell people on the idea that it's easy to have a cloud desktop you can access from anywhere, that can also be a web server (not selling web servers that can also have a desktop). I want to sell people on the Idea that with freely available software, we can each have a private cloud with just our data.

I'm not quite sure how to get started, and I'm not trying to make a killing with profit, I just don't see people trying to make it simpler for the average Joe to have a cloud desktop and not need to pay to use shared cloud services which then become huge targets for data breaches.

<comment><USER14> Not trying to dissuade you or imply this is exactly the same thing, but I wanted to make sure you're aware of Amazon WorkSpaces [[http://aws.amazon.com/workspaces/](http://aws.amazon.com/workspaces/)], "a fully managed desktop computing service in the cloud."

</comment></comment><comment><USER15> I colocate my little cluster of servers with Opus:Interactive in Portland, OR. It's neat to look at the homebrew artists with their motley crew of machines all colocated together in racks in the corner followed by many homogenous racks filled with boxes from big name companies.

I don't prefer building powerful hardware. I prefer reliable and cheap to build and maxing out the 4U of my rack. I like to think of my servers as "life support for an internet connected harddrive". My CPU's are fanless Intel Atom's with 2GB of ram and I get Mini-ITX motherboards that can be powered by a brick DC power supply. Ultimately, I'll move to Flash hard drives so I'll have no moving parts in my server, but I'm waiting for the price to come down and for reliability to match spinning media.

<comment><USER16> I'd like to know more about how you do that. I just looked at Opus' site and the 4U they advertise in Hillsboro is pretty good when compared to what I pay for 1U of hobbyist colo in Seattle. Do you put multiple machines inside the 4U with a switch in the same space? Can I be so bold as to ask for pictures? What kind of physical access do you get? I have a 1U server-grade machine but moving to a more flexible space would be nice, even if it does mean a train trip to go see my boxen.

<comment><USER12> I've been interested in hobbyist colo for a while but the cheapest I've found is over $100 a month. Is this in the ballpark of what you are paying or are there better deals to be had?

<comment><USER16> The rate I'm paying no longer exists and the company I'm with got merged into another one so my point of reference isn't so good. :)

That said, there are a couple of companies on Webhostingtalk that have good prices for hobbyist colo if you look in their colocation forums and search for "Seattle." Opus is nice ($129 for 4U and 3A of power with 400GB of transit) and there is a company in Seattle--their name escapes me but I've seen them on WHT--that is $35 for 1U and 1A with 500GB of transit.

So, yes, I think you can do better especially if you just want space for a medium-usage 1U.

<comment><USER15> Opus is nice, I like to support them, always very friendly and understanding with my noobishness. When I first signed up, I didn't understand how to mount my case even. There were these brass grommits that were in the toolchest off in the corner nobody told me about that needed to be snapped into the rack uprights, and that's what you screw your case into. The tech was totally nice about it when I asked and he even helped me lift the case into place while I screwed it in since I was by myself.

</comment></comment></comment></comment></comment><comment><USER17> While the article stress the importance of understanding your power requirements on the server side you also need to be very cognizant of the power restrictions in your colo contract. Often times power draws will be your biggest limiting factor and it is very easy to buy a rack and fill it with equipment that surpasses your max allotted power draw. Depending on your host your only solution may be to buy additional racks to spread out your load even though you don't need the physical space.

Another power gotcha comes with the redundant circuits provided. For example if you are allocated 15Amps total that usually means total across both circuits not 15Amps per circuit.

</comment><comment><USER18> The article talks about 1U being a good form factor, but one thing to bear in mind is that cooling fans tend to work harder in a 1U chassis than a 2U, hence drawing more power.

<comment><USER7> I would also add that in most DCs your never going to have the power capacity to have racks filled with 1RU servers, so 2RU servers are typically not much more expensive to Rack then their slimmer brethren.

</comment></comment><comment><USER19> And no mention of ipv6 at all. at the very least it gives you much easier management of private networks (yay real ip addresses) and there is more and more traffic coming over it (think mobile phones and etc.)

</comment><comment><USER20> What are the advantages of doing this over just paying for computing power on AWS or some other cloud service? Feels like it would be a very small niche at this point.

<comment><USER21> cost! Cost!! COST!!!

I collocate 5x 4u servers with 24 and 36 drive bays, 128GB ram, SSD drives squished in for OS, for a total (multiple raid 5 volumes for each 6 disks) usable space for my project of 375 TB

Power and 2-3gbit of bandwidth is included, as well as remote hands to check up on server (for example IPMI sometimes does not work) or replace drives (pay extra for enterprise grade drives would save you alot of hassle in long term!)

for .... €1500 / month

now go and calculate the cost of that on AWS

<comment><USER22> I absolutely agree _in the long term_ , but can you say a little about how much those servers cost initially?

I tend to favour dedicated servers which I own over VPS but for small businesses with extremely constrained budgets ("prove we can make money before we invest in hardware") and startups, flexible virtual servers can be a great way to ramp up in the beginning.

<comment><USER21> About $10,000 per server, equipment (very heavy) was shipped from US so there were import duties but it worked out a little bit cheaper than buying in EU in end, and had other reasons to shop in US.

Anyway its a once off cost, that accountant can do all sorts of magic with this.

Ive been in business for 7 years and hope to remain around for as long.

Have already saved money as to compared to renting dedicated servers before. AWS etc were never an option the sums simply never work out.

AWS might be great at first when you are starting out, but the costs can cripple a business, especially if you dont have others peoples venture capital to burn.

edit: when bandwidth costs are factored in the difference is and order of magnitude between my current setup and amazon, at time of this post using 2200 mbit outgoing, 800 incoming

edit2: my only regrets is not collocating earlier, have spent well into upper 6 figures over all the years :( on renting, AWS etc werent around when was starting off either.

</comment></comment></comment></comment><comment><USER23> Another tip, be cognizant of the difference between sustained drawing amperage, and spikes; when a server starts up, it can spike to 1.5+ amps. I've seen many circuits trip because, while the draw should have been in an acceptable range, spinning up a number of servers at the same time was too much.

</comment><comment><USER24> I blogged about my own experience with this here: [http://blog.preinheimer.com/index.php?/archives/413-Buying-a...](http://blog.preinheimer.com/index.php?/archives/413-Buying- a-Zoo-server.html)

</comment><comment><USER25> Nice article, thanks, but does it applies to all types of the datacenters?

<comment><USER26> I can't see a type of datacenter it doesn't apply to. You pay for transit, power draw, and to a lesser extent rack units. If you get a rack or a half rack with your expected power draw and want to spill past that they'll be charging you extra because that's space they can't sell to someone else. Some datacenters also provide cages, so your hardware is physically separated from other people. That'll cost extra too.

The only thing I didn't see a mention of is DC power, whereas your out of the box power supplies on most OEM equipment is for AC. Most of the server supplies nowadays should be able to handle 240V, 208V, and 120V with AC on the same unit, when you go DC you want to consider buying a separate AC power supply for setting up the server in your office (unless you drop ship it to the colo).

Make sure you get a very efficient power supply too, because while you can get the most efficient or power miserly server on the planet, an inefficient power supply will increase the draw significantly. You also want to right-size the power supply, because drawing too little power lowers the efficiency (there's an efficiency curve available for most PSUs that are rated).

</comment></comment><comment><USER27> How is it a "colocation" if it is your "first server"? In the age of on-line dictionaries no less?

<comment><USER28> A colocation center is a type of data center where equipment, space, and bandwidth are available for rental to retail customers. Colocation facilities provide space, power, cooling, and physical security for the server, storage, and networking equipment of other firms—and connect them to a variety of telecommunications and network service providers—with a minimum of cost and complexity.

Colocation by no means indicates you have multiple servers that need housing nowadays.</comment></comment>


Halmak – AI designed keyboard layout - <AUTHOR> https://github.com/MadRabbit/halmak <comment><USER2> Reading through his blogs, he keeps saying that one of the advantages of his layout is intentionally alternating keys between hands, and slags colemak for being "really bad" at that.

But when I was reading up about the colemak, they claimed that was done on purpose -- that in fact, at high speeds, coordinating alternating keystrokes between hands is very difficult, and that it's actually a lot more efficient to have "rolling" patterns where a single hand can type a sequence of characters in a smooth motion. I can definitely say that the "inter-hand coordination" is the source of an awful lot of my typing errors.

<comment><USER3> The myth of alternating-hand advantage probably dates to the era of mechanical typewriters, when hammers arriving from opposite sides of the machine were less likely to jam.

<comment><USER4> Alternating hands was certainly better for my hand joint issues. I found Dvorak not really faster, but more comfortable, and the alternating hands is a big part of that. Alternating hands is much better than consecutive keys far apart on the same hand, and way better than consecutive keys on the same finger.

</comment></comment></comment><comment><USER5> I always thought splitting the keyboard and number pad so I could put the mouse in the middle would be a great optimization. Finally did it last year and ended up with tennis elbow. Turns out having my mouse pad a good distance away from the keyboard gives me a chance to stretch out my arm. That tiny bit of extra movement was crucial in not pushing my body over the limit of too much tiny movements resulting in elbow/arm pain. There are other contributors like using my phone too much in the evenings. But for sure, the keyboard change pushed me over the edge. I now view micro optimizations like this slightly differently. Maybe this keyboard layout would be great! But I sure would pay more attention and watch for negative side effects now.

</comment><comment><USER6> The thing about computer generated layouts (as with all computer optimizations) is that it optimizes an evaluation function and not the actual process of typing. And who knows how closely your function that scores how good a keyboard is matches the physics and physiology of typing.

And why do people use pieces of perfectly written text. The Backspace key is like one of my top 5 most used keys and it's always under the pinky.

<comment><USER7> If you were to read the OP, and especially follow the links to the articles the author has written about the development process, you'd see that these shortcomings are exactly what Halmak is trying to address.

<comment><USER8> > you'd see that these shortcomings are exactly what Halmak is trying to > address

It's still all dependent on how good the authors physiological model is. If their model of hand movements is incorrect, then any generated results will be incorrect, too. For instance: the author talks about developing a model of travel distance for various keys. Fine, but (a) it's based on their own hands, so it might not be a good fit for others, and (b) the distances are all from resting hand position, which means that as your fingerS move over the course of typing a word, those distances should adjust as well. Does the author account for this? I don't think so, but it's not clear.

<comment><USER9> My larger concern is that human muscle movement involves a whole lot more than just the mechanical aspect. Any model that doesn't include some notion of human perception, cognition, and voluntary muscle control seems like it could be optimizing with the wrong evaluation function.

<comment><USER8> Yeah, definitely. A layout that's slightly worse for your fingers, but significantly easier to remember, might end up being superior overall

<comment><USER10> One extreme is PLUM, which also includes the mnemonics KJVB, WXYZ, and READONTHIS.

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

I actually feel the other way; the cost of learning a seemingly arbitrary layout is probably less than the cost of using an inefficient layout, in the longrun.

<comment><USER8> > the cost of learning a seemingly arbitrary layout is probably less than the > cost of using an inefficient layout, in the longrun

It might be—but that's no consolation if you're less likely to get to the long run. Or if you get to the long run, find out their models were off, and realize it was extra time wasted.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> In the era of swiping keyboards, Touch Bar technology, and hyper keys, it would be interesting to see an expanded project. For example, what is the optimal position and size for a dynamic OLED touch interface on a keyboard? Which keys should do something different when held? What chords are worth putting on a keyboard? It would be especially interesting if usage over time and the cost of relying on a specialized environment were factored in.

And how about software that watches you type and suggests a more keyboard- heavy workflow as your speed increases?

<comment><USER12> > For example, what is the optimal position and size for a dynamic OLED touch > interface on a keyboard?

Far away.

</comment></comment><comment><USER13> Dunno if the author took this into account, but the fingers that do the work also matter: the index and middle finger are considerably stronger than the ring finger and especially the pinky. See e.g. the Workman layout: [https://workmanlayout.org](https://workmanlayout.org), and specifically the illustrative picture: [https://raw.githubusercontent.com/kdeloach/workman/gh- pages/...](https://raw.githubusercontent.com/kdeloach/workman/gh- pages/images/usage-viz-grid2.png)

This also means that Windows/Linux and especially Emacs users are sorely screwed by the prevalence of the Ctrl key in shortcuts. Somewhat ironically, MS' Natural 4000 keyboard with its gigantic Alt keys is eye-openingly great on MacOS where those keys serve as often-used Cmd, right under the thumbs, the strongest digits. And, when Emacs was created, Control was also under the thumbs.

Also, as a bilingual, I'm pining for a design consideration that punctuation is on the same keys between the layouts in different languages.

<comment><USER14> I use a Kinesis: [https://en.m.wikipedia.org/wiki/Kinesis_(keyboard)](https://en.m.wikipedia.org/wiki/Kinesis_\(keyboard\))

<comment><USER15> I almost bought a Kinesis back in 2009 and in the end didn't because of the cost. I eventually got one in 2017 and now I greatly regret not buying one back in 2009. Best computer purchasing decision I ever made.

</comment></comment></comment><comment><USER16> Cool project

Keen to know what sort of typing samples he used - was it mostly people writing prose, operating shells, other?

Imagine you'd need a fairly large and varied sample set to land good generality?

<comment><USER17> From [https://github.com/MadRabbit/keyboard- genetics](https://github.com/MadRabbit/keyboard-genetics)

"I used a series of articles from various online media. I don't have copyrights to provide them with this project, so you will have to use your own source."

and

"Create the text folder and fill it in with *.txt files which you'd like to use as the test data source. "

It would be interesting to see what a layout full of source code/terminal history would generate - although you'd have to take into consideration all variety of autocomplete functionality (tab key usage) in text editors to get accurate input data, not to mention window switching shortcuts etc.

<comment><USER16> Ah good find, thanks!

Yes, would be very keen to see what sort of result you'd get if (say) you captured keystrokes directly from a collection of engineers (or indeed a broad variety of individuals)

Might be trickier though, as I anticipate you'd need to somehow semantically separate the keystrokes into logical units. Maybe just a time-between-strokes threshold would be enough?

</comment></comment></comment><comment><USER18> Weirdly, it seems[0][1][2], that the layout doesn't do particularly well by Carpalx's keyboard effort estimator[3], as it gets a total effort score of 2.260, compared to 3, 2.098 and 1.842 for Qwerty, Dvorak and Colemak, respectively[4] (lower is better). In contrast, the halmak repo claims[5] an efficiency gain of +134% over Qwerty for halmak, compared to +77% for Dvorak and +84% for Colemak. Since (one would assume) efficiency and effort should be approximately inversely correlated, these results don't square.

I have no idea whether Carpalx's or Halmak's keyboard layout (efficiency|effort) evaluator is more accurate (indicative of real (efficiency|effort)), but the huge disparity between the two is troubling.

(Obviously, Carpalx and Halmak use different optimisation methods — Monte Carlo simulated annealing versus an "evolution algorithm based AI" — and these could well give different results, even with the same scoring method, due to getting stuck in different local maxima etc., but the issue is that the scoring methods themselves give different rankings of fixed keyboard layouts.)

Edit: quickly reading through all of the halmak author's blog posts, it seems that they're aware of the Carpalx project. They describe their (current?) effort model here[6]. It seems heavily data-based, but it's still difficult to determine whether it's "better" than Carpalx's.

[0] [https://gist.github.com/tdegrunt/80e63f464c9a1c336e0f1d4e6aa...](https://gist.github.com/tdegrunt/80e63f464c9a1c336e0f1d4e6aa201a8)

[1] [https://github.com/MadRabbit/halmak/issues/4#issuecomment-44...](https://github.com/MadRabbit/halmak/issues/4#issuecomment-446316468)

[2] I haven't done the analysis myself and can't be sure that it was done correctly

[3] [http://mkweb.bcgsc.ca/carpalx/?interpreting_optimization](http://mkweb.bcgsc.ca/carpalx/?interpreting_optimization)

[4] [http://mkweb.bcgsc.ca/carpalx/?keyboard_layouts](http://mkweb.bcgsc.ca/carpalx/?keyboard_layouts)

[5] [https://github.com/MadRabbit/halmak#comparisons](https://github.com/MadRabbit/halmak#comparisons)

[6] [http://nikolay.rocks/2016-10-22-keyboard- analytics](http://nikolay.rocks/2016-10-22-keyboard-analytics)

</comment><comment><USER19> Neat project, I've wanted to give it a try for a while but never got around to do it, great job !

Interesting that it put the comma at the same place as the bepo [1] ! It obviously recognized that vowels should be placed on the home row on a single hand, it has it on the right hand when dvorak/bepo have them on the left hand.

It'd be interesting to train it on code as well and see where it positions the special chars. I personally really like the bepo's choice of putting them on alt_gr+[right_hand_key] as it allows me to reduce finger stretches to hit them, that's what was causing me pain on QWERTY, especially with js, and convinced me to make the move to bepo. I fins lisp is BY FAR the healthiest language when it comes to fingers, though you do need shortcuts to manipulate lisp code sanely.

Is the keyboard-gentrics [2] src code the only way of knowing how this was designed ? I've skimmed the github page and blog it links but cannot find anything. It looks like its a genetic algorithm ?

[1] [https://bepo.fr](https://bepo.fr) [2] [https://github.com/MadRabbit/keyboard- genetics](https://github.com/MadRabbit/keyboard-genetics)

</comment><comment><USER20> Would be curious to see what happpens if we let an optimizer go wild with tye keyboard structure as well. For a while, I've been wanting to try a Dactyl:

[https://github.com/adereth/dactyl- keyboard](https://github.com/adereth/dactyl-keyboard)

But I wonder if the space of possibilities contains some wacky hidden gems that we are just missing.

<comment><USER13> Considering that fingers rotate on joints instead of extending forward, and don't crook to the side while doing that, the Maltron/Kinesis/Dactyl shape and ortholinear layout are pretty intuitive. It's flat boards and the typewriter- inherited staggered layout that don't make sense in the age of plastic.

</comment></comment><comment><USER21> If you're going to go through the effort of redesigning a faster layout, why not fix everything from the ground up? Why design a layout with key stagger still a property when we all know that it was a relic of technological limitations that are not nor will ever be present in any future keyboards?

</comment><comment><USER4> It looks like this makes q easier to type than w, which seems a bit strange, and wh seems particularly awkward. "What", "where", "when", "why", and "who" are all pretty common.

</comment><comment><USER22> Looks like an inverted Dvorak

<comment><USER23> As a Dvorak user, this was my first thought as well.

</comment></comment><comment><USER24> What I find the weirdest with all these "efficient" keyboard layouts is that seemingly none of them ever move things to/from any of the Ctrl/Alt/Shift keys.

E.g. I find that for me, reaching for the Shift key majorly contributes to slowdowns and fatigue.

<comment><USER25> I agree and one reason I've mapped spacebar when held down to be shift.

</comment></comment><comment> zupa-hu As a software dev, the biggest gain for me was incorporating the arrow keys under my right hand fingers via a layer switch, and having movement modifiers under the left (jump word, end-of-line etc).

I think one moves around so much in code that anythng else is micro optimization.

YMMV.

<comment><USER26> Mmm... good idea. I also put common marks in the middle:

[http://www.keyboard-layout- editor.com/#/gists/75c4808455c07a...](http://www.keyboard-layout- editor.com/#/gists/75c4808455c07affbad9b1911c6fe6a5)

(This is my main driver now)

<comment> zupa-hu Wow, aren't those too far to reach?

And... What is this website? I can't make any sense of it. Seems to be some powerful configuration tool to do.. What exactly? :D

<comment><USER26> Yeah, I made some design mistakes (more at [https://www.reddit.com/r/MechanicalKeyboards/comments/9wjpg0...](https://www.reddit.com/r/MechanicalKeyboards/comments/9wjpg0/finished_ergo_keyboard/))

This site is part of a few that are used to made your own keyboard.

</comment></comment></comment></comment><comment><USER27> I am surprised to see no changes to the top row of 1-0. Can we just get rid of the number keys and put them in a numpad format on the side? Sequential numbers on the top are (arguably) worse than numpad.

<comment><USER28> I'm using them all the time for entry and shortcuts. Cmd + 1 for switching to the first tab/item/thing.

Even bought a tenkeyless gaming keyboard. I was having the opposite thought that we should deprecate the number pad and just leave it as an additional hardware add-on for accountants

<comment><USER29> I got an external numeric pad mostly for playing Roguelikes. :)

</comment></comment></comment><comment><USER30> Interesting, but it suits the marginal user. Ideally, I'd want to analyze my typing patterns to tailor to that (that is, a Bayesian solution where I can supply my data)

<comment><USER31> Using the author's projects, I believe you can make your own "effort map" and run the genetic algorithms to make your own optimal layout.

c.f. [http://nikolay.rocks/2016-10-22-keyboard- analytics](http://nikolay.rocks/2016-10-22-keyboard-analytics)

</comment></comment><comment><USER32> how it compares to [https://en.m.wikipedia.org/wiki/Stenotype](https://en.m.wikipedia.org/wiki/Stenotype) ?

</comment><comment><USER33> Colemak user: too much pinky use, Cmd+[qxz] is weird</comment>


I told you so… now, what's next for American ICOs? - <AUTHOR> https://prestonbyrne.com/2018/11/16/whatnext/ <comment><AUTHOR> See also [https://news.ycombinator.com/item?id=18481544](https://news.ycombinator.com/item?id=18481544) for a somewhat more sober article.</comment>


Ask HN: Freelance technical writing opportunities - <AUTHOR> I'm looking for more information/ opportunities on freelance technical writing. I've recently been made aware of this niche, and was told it would be a good fit for me. I currently work as an engineer in the auto industry, and am interested in learning more about technical writing as a career. Thanks! <comment><USER2> This article was excellent and is still freelancing after 10 years.

[http://jenamiller.com/notes-from-a-hired-pen/10-years-of- fre...](http://jenamiller.com/notes-from-a-hired-pen/10-years-of-freelancing- one-house-one-recession-and-the-best-job-in-the-world/)

And there are lots of posts out there. There are actually more posts about freelance writing, than about freelance programming. Whenever I look for articles about freelancing it seems that writers have the top spots in the Google.

In sum, it's a great field. The need for more content is increasing, and if you are good and make a name for yourself you'll make it.

I suggest that you make a goal to write X words a day. Also, writing a book will increase your Authority, and help you get more work.

Keep on writing.</comment>