hacker news with inline top comments    .. more ..    18 Aug 2015 Ask
home   ask   best   4 years ago   
Ask HN: Where do I look for Internships?
4 points by nxnfufunezn  1 hour ago   2 comments top 2
dubin 1 hour ago 0 replies      
The monthly "Who is Hiring" threads are a great resource. A lot of companies have listings for interns. Here's this month's thread for reference: https://news.ycombinator.com/item?id=9996333
jeffmould 1 hour ago 0 replies      
Depends on the type of internship you are looking for and where you want to work. Most technology companies offer internships, check the company website or reach out to them to find out if they do and how to apply.

You can also look here: http://www.internships.com/

How do I develop skills necessary for a job as a programmer at a startup?
7 points by deveshgade  8 hours ago   15 comments top 13
skillachie 6 hours ago 0 replies      
You could start with one of the many courses from the following sites:


b) https://www.coursera.org/


Projects + Github + Blog would be all that you really need. Example from Udacity you could take one of the many specializations:

Android: https://www.udacity.com/course/android-developer-nanodegree-...

IOS: https://www.udacity.com/course/ios-developer-nanodegree--nd0...

*Front End Developer: https://www.udacity.com/course/front-end-web-developer-nanod...

And many more

While learning try to do bite size projects that can also be portfolio items that you push to Github. When times get difficult and it appears that Stackoverflow and other online sources will not able to answer your questions, do not be afraid to jump onto one of the many IRCs

bbcbasic 6 hours ago 0 replies      
1. Learn to program for fun. Forget you are looking for a job at a startup and build something you like. Having said that if you can learn HTML, CSS, Javascript, JQuery, Angular it would make you very marketable.

2. Apply for jobs on a daily basis, searching for jobs listed in the last 24 hours.

Don't work for free (just do more open source rather than doing that)

If the above doesn't work expand your job search to include all companies not just start ups. Also expand to other cities if required and be prepared to relocate.

Richallen1 7 hours ago 0 replies      
I agree with the comment below, specific skills will be different depending on what company. I came into programing and CS from concert Lighting 5 years ago. I started learning iOS however if I did it again I would learn something like Javascript/ html of Java first to get an understanding of the concepts. Check out Code Academy.

Also I would get an idea of what kind of role your after and learn the relevant language.

If you are interested in basic programming courses and have the time the Stanford courses (CS106A and CS106B) which are on iTunes U are good starting points.

Hope that helps.

weatherlight 5 hours ago 0 replies      
First, Learn to love code. Pick a language. Start here. https://projecteuler.net/problem=1

Then projects + github + blog + never giving up.

deveshgade 5 hours ago 0 replies      
Thanks for your suggestions.

Maybe I should elaborate on my background a little more. I recently completed my Masters in Computer Engineering from University of Florida and am working at Ebay in Philadelphia. I know my basic algorithms and data structures, and can confidently write programs for implementing them.

I would like to work as a full stack developer in a start up. The technologies I am interested in developing my skills are : Java, REST API programming, Javascript, HTML, CSS.

Could you suggest good sources online or otherwise to develop my skills in these areas?

greenyoda 8 hours ago 0 replies      
You'll need to be more specific, since there are startups in many different businesses. Some startups sell t-shirts to people on the web, some implement messaging services on mobile devices and still others build custom hardware with embedded software. The programming needs of these businesses are very different.
hackNightly 7 hours ago 0 replies      
Having some side projects, being active in communities (Stack Overflow, Github), and having a constant thirst for learning new technologies have been the keys to developing my skills and acquiring jobs in startups.
lsiebert 51 minutes ago 0 replies      
What you should do is pick one stack to work with, and become good at it.

It's okay to not like the stack you picked, as long as it's popular. But learning is hard, so stick with whatever you picked to the point where you have a mobile app, or a web app on a server with a rest API that your front end code uses.

Some stacks you might look at:Have a new Macbook and an Iphone? learning swift and objective C and picking up IOS programming will get you work.Have an Android phone, and any sort of computer that's moderately fast? Learn Java and becoming an Android Developer.

But maybe you want to do a web stack. You generally want some experience on the back and and the front end. When in your learning, you don't know what to use out of a bunch of tools, pick what is most widely used, and if it's a tie, go with the older thing, or the simpler thing.

You will be learning Javascript, as well as HTML and CSS for the front end dev work, so for the back end Node.js, which is a server side javascript platform, is a good thing to learn. Express is one framework, but it's most popular, and you want to pick up a popular stack.

Like Python? Learn Django. If the company you want to work for uses a microframework like Flask or something, they will still probably hire Django devs, but the opposite may not be true.

Like Ruby? Ruby on Rails isn't the only framework, but it's super popular, and you want to get the skills, right?

Learn to use the command line (Mac, Linux, or cygwin if you have to stay on windows) to do things. Sign up for Amazon's free 1 year of cloud services, so you can practice setting up stuff over ssh and using git.

Learn git, enough to be able to put projects up on github, and to get them down onto your server.

In terms of front end, learn enough jquery to interact with a REST API and get data from it into your app. Consider a front end framework like angular. Learn bootstrap, which is a CSS framework, because again, its popular.

It's not necessary to understand big O or data structures in detail for a startup job, but it might be to get hired. Knowing SQL is probably helpful eventually, but don't worry if you don't.

Why do I keep telling you to pick the popular thing? Because startups want people who may not know the stack, but know how to use a stack and accomplish something. You can get hired to do android dev knowing only IOS, or ruby on rails knowing django, or using react and backbone when you know angular.

Learning to program is hard. Try to get in an hour or two every day. Once you know how to make something specific in a specific stack, branch out and learn more broadly.

Good Luck.

amorphid 5 hours ago 1 reply      
I've been enjoying http://www.freecodecamp.com.
iisbum 5 hours ago 0 replies      
Build something small, anything, from scratch and launch it.
VOYD 5 hours ago 0 replies      
First, figure out how to solve problems.
spacemanmatt 7 hours ago 1 reply      
Other startups.
Nadya 6 hours ago 0 replies      
Become an autodidact on your own time.

That means investing money and time into your own education and skills. Then, when you have the skills, you can apply at startups with examples of your work.

The same way artists create art for their gallery/portfolio and show that portfolio before getting a job. Programming is an art - you should have a portfolio.

That means you need to invest time into creating that portfolio.

Ask HN: (married founders): How did you save your marriage?
14 points by scaredashamed  7 hours ago   13 comments top 11
patio11 6 hours ago 1 reply      
I'm sorry for your situation and wish you the best.

You and your wife having a difference of opinions on major life goals is something you should hammer out between yourselves, possibly with the assistance of a professional.

Let's focus on the more immediately solvable problems: if you're getting "You are invading my space" / "I see too much of you" signals, trivially solvable. This happened a few months into my marriage as well (I've been self-employed for the duration). I started making a point to work out of a cafe most days, and eventually found a co-working space. This lets my wife have run of the house during something which (most of the time) approximates a normal work day.

Not sure if it helps your situation, but it was a major stressor for my wife that I was not "with her" while I was physically in the same room with her. She prefers me being out-of-sight during the workday and an attentive husband and father outside of it than to feel like she's competing with IRB and losing for attention at 10 AM.

It is a regretful fact, much remarked upon in sociology literature, that financial pinches cause divorces. Make whatever adjustments to your business are required to maintain the standard of living that she expects you to have. This could include e.g. consulting to help bootstrap the product business, as opposed to burning through savings every month.

Many important stakeholders in your life may not appreciate how bootstrapper math actually works. Expectation management for it is important. Many stakeholders may follow scripts such as "A middle class man should work for a living. Someone who works is seen as working. Someone who is not seen as working is, therefor, not working." This counsels not conspicuously looking like one is not working. If you can develop other commonly accepted indicia that you are doing a Real Job, I recommend doing so. (You are, absolutely, running a real business. Non-entrepreneur stakeholders are not the only people in the average bootstrapper's life who need to understand that.)

Generic book recommendation for improving marital communication: the Five Love Languages.

Mz 6 hours ago 1 reply      
My wife didn't buy into my vision.

This is a big problem and possibly not fixable. It indicates deeper problems, like communication problems and incompatible values. It also means you disregarded her wishes and now can't understand why she is unhappy about that.

My wife chose to be a stay at home mom and I think she resent my being in her space during weekdays.

Then get out of her space. Find someplace else to work. Go to a library or get an office of some sort or go to a business incubator space or something.

Also, do not underestimate how freaked out she probably is about the lack of financial security. This is a big hot button for stay at home moms. Can you find a way to give her some additional sense of financial security? This was a big source of friction in my own marriage, which ultimately ended in divorce. (I was the stay at home mom.)

ruraljuror 2 hours ago 0 replies      
Communication is the key. For example, I'm trying to figure out from your post what the actual problem is. It seems like you don't know, which is not exactly a surprise. You say "I think she resents my being in her space during weekdays." First of all, you can ask her what the problem is. Second of all, you can try to give some breathing room by working in a coffee shop or something.

Of course that one issue is not everything, but it is something that could be worked on in the short term.

I highly recommend the book Getting the Love You Want.

edit: Rereading this, it sounds more brusque than I intended. Also, if you do ask your wife what is wrong, that can obviously be a charged conversation. Getting the Love You Want has a technique called the imago dialogue. Even if your wife (who seems reluctant to therapy) won't engage in this, you can still use the techniques yourself. For this particular conversation you want to focus on mirroring, that is: let her speak, then repeat what she told you and ask if you summarized it correctly. If you're not both on the same page, this may end up being one-sided. The point is to make sure you understand her point before you make yours (or vice versa). You will often see you're upset about very different things.

The book is really fascinating.

nicholas73 4 hours ago 0 replies      
With a kid, your wife's priorities have shifted to revolve completely around him/her. It's a tiring and thankless job, and anything else looks easier in comparison (true or not). Thus, when you abandon your previous role as secure breadwinner to pursue your dreams, it makes it seem like you don't have the same priorities. Add upon that, you are at home and visibly not contributing to the priority, since you have such an easy time (in her eyes). Lastly, it's triply frustrating because she is now dependent on you, having given up her career and her uterus (and thus a reduced chance of finding another breadwinner), but you have ignored her predicament.

Anyway, not saying she is right and I understand the dream as well. Just pointing out her perspective (I've got a kiddo as well).

What is done is done, so the thing to do now is to give it your best shot, but also communicate your progress honestly. You have customers, which should be a great turning point for the both of you.

dragonwriter 4 hours ago 0 replies      
It really sounds like you need to sit down and have a conversation with your wife about both of your visions for the family, financially and otherwise; right now (from your description) it sounds like you made decisions independently of her that she didn't buy into, and are now trying to guess what might be bothering her about that.

What I think you need to do is work to understand what she is thinking, and work from there to, if possible, come to a mutually-agreeable approach.

I'd be cautious about unilaterally adopting any of the other approaches suggested in the thread (e.g., working from another location), because if the real underlying problem isn't "you're invading my space", but, e.g., "you are unilaterally making decisions and not respecting my concerns", than that may exacerbate rather than mitigate the situation.

bbcbasic 4 hours ago 0 replies      
As a short term pressure relief you could work from another location as others have suggested. Try that. If it doesn't help I suggest quit the start up for now, get a good job to bring in the money and and return to the business idea later on. This is assuming finances are an issue. Unless you are rich?

When you have family you need to optimize for everything - wife, kids, financial and dreams, and not just for your dreams. This can be quite a juggle and a tension between your needs.

However the default of the 9-5 job, the rent/mortgage paid and spending time with the family is always a stable place you can return to, and then you can be in a good space prepare yourself and your wife for your next entrepreneurial adventure.

The next priority is to get you and your wife on to a stable footing, with good communication, and build a common vision for you and your family for the next 10 years and the next 20 years which may include building a business. I think talking about the next 10 years alone could give your wife a sense of security that you see yourself with her and the family forever.

Staying at home with young children is stressful, and with a baby crying, dirty nappies on the floor, or toddlers throwing tantrums, the house in a mess and the husband in the way and not helping I can imagine it would be quite stressful for the wife. Plus lord knows how you concentrate and be productive, they must be in your way too.

Lots of great words in this thread, but only you can decide what is best to do. You know all the facts. I wish you the best of luck and hope it all works out. I am sure it will.

brudgers 4 hours ago 0 replies      
Sorry to hear about your situation.

 A. Starting with questions relating to business viability: A1. Are the customers paying enough to provide a reasonable income? A2. Are the backlog of paying work and revenue growing? A3. Are you exclusively spending your time completing paying work and directly finding paying work?
If the business isn't viable or your time is being spent on playing house or both, it's time to pull the plug.

 B: Relationship questions: B1. Do you value your marriage more than your dream? B2. Are their children involved?
These all come into play even if the business is viable because it is orthogonal to family stability.

Pulling the plug on a non-working business now is better than slow heat death. A bootstrapped business is different from a investment fuelled startup. Just surviving is good for a startup because it allows the possibility of exponential growth. A just surviving small business takes nearly as much energy, but only offers an upside of "a little better than surviving". Figure out if you're treading water to protect sunk cost.

Good luck.

1arity 15 minutes ago 0 replies      
Divorced founder here. I had this experience.

It really works to establish this before you get married.

Since the journey you are on, as you say, it really works when your life partner buys into your vision.

You are going to be making choices about how to work, when to work, and with regard to the current burn rate of your life, and with regard to the value of future pay offs, that are vitally important for people in a relationship to agree on. If your partner doesn't share your passion for this, or believe in you, how are they going to come on that journey with you? Will they be there for you and support you when you and your business need that?

Will they give you the extra runway by getting a job, or will they insist you chuck it in and get a job?

I mean, having a business is a lot of ways like having a baby, you are always working on it, and everything changes around doing it. And it really works for your partner and you to carry that weight together.

No one knows what's going to happen, it could all work out. Maybe it's simply differences in expectations that can be reconciled through communication. Or maybe it's something more fundamental. At this stage tho, you don't know.

My choice was to cut my losses quickly when it seemed like it wasn't working. I would caution against that, since I feel that the marriage is an asset, because of your commitment to each other. When you got married, didn't you vow to be there for each other, through sickness and health, and failure and success? So my recommendation after trying the opposite ( and it not working ) is just stick it out. Try to make it work, because that relationship could be so important to you if it maintains.

In my case, we divorced. Not, mind you, just because of a business. There's always a mix of things, and both people are responsible. I think the main thing was simply not really emphatically communicating about what our expectations were, and also not really being so committed to sticking it out, we both chose to cut our losses. Well, at least we had the same efficient mind! Still I believe through lack of communication and commitment we didn't quite work out exactly what it could have been. So persistence, could really be key.

Later I found someone who really did buy into my vision, and support me while working on the project. Objectively this person is far more compatible with doing this startup, tho the truth is, you never know how things could have been different, had you done them differently.

As other posters suggested -- maybe get some husband time to yourself, away from the wife and kid, cafe working, or cave working, or shed working, some time and place to be around other people who do share your vision. I think that idea of community really helps. Why? Because in a way you are asking your wife to be your community if you don't get out there and rely on others as a community. And being around the energy of others can really refresh you and give you that mental reset so when you come home, it's like a delineated time, and you're all ready to go husband and daddy mode again.

It is a scary time. Maybe rethink feeling ashamed, tho. You're trying to juggle doing a lot of things. You're not doing anything wrong -- you're just trying to make it work. That's noble, not shameful.

tptacek 5 hours ago 0 replies      
You and your spouse should be on the same page regarding what you're doing with your career, full stop.
Neptune5 5 hours ago 0 replies      
For the home office, compromise and go to one of those places where contract workers rent out an office cubicle. My wife applied for a job where she was going to work from home and I told her she could not work from home all the time. She needed to go to an office environment to at least talk to other people for both our sanity. As for the relationship in general, there are deeper problems than just a home office. Maintaining a relationship means that you know what your roles are and what responsibilities those roles have in the relationship at any given time. Sometimes your wife needs someone to listen to her and not solve her problems, at other times it is you who needs that and so on. I always tell couples to start with communication. Set some ground rules for communicating and set designated times for having discussions if you do not have have time to argue at a given moment. Working couples disagree and commit to shared resolutions. Lastly be honest with yourself, what will make you happy (what can you live without and what must you absolutely have in order to be happy), don't ask for ridiculous things, just focus on what want out of the relationship. Be prepared to also have her point of view too.
davismwfl 6 hours ago 0 replies      
Sorry to hear it, I don't know what to tell you to do, but I will share my personal experience and say that I wouldn't abandon your dream yet.

I spent years working outside the house, whether it was for myself or an employer I was not at home. My wife was/is a stay at home mom as well and that is a full time gig I sure as hell wouldn't want, it is hard. About 3 years ago I started working out of my house, and honestly my wife and I didn't really talk a whole lot about logistics we just did it and honestly had some excitement about it.

Well.... About 3 months in I noticed we both were being shorter with each other and honestly we were more distant even though we were in the same space. After a couple of more months we both realized something wasn't right. We had to have a few conversations about boundaries, separation of space and expectations. It took probably another 2-3 months to get a balance around it, so if you are doing the math from me starting at home full time to us having some balance it was like 6-8 months.

Somethings we did (still do):

1. Dedicated one room to be my office and put doors on it to keep that space isolated. We also setup some rules around it, if I was in my office with the doors shut, she had to consider that I was working and needed to respect that and not interrupt me unless necessary and even then to knock first. If the doors were open then it was open and all I asked was for her to not interrupt me if I was madly typing something out. :)

2. Being me, I also was making suggestions why she should do something differently around the house, or when she would complain about something I'd do the stupid male thing and offer a solution when all she wanted was the venting time. Even if my way was more efficient or better, she was running the house and I needed to respect that and let her do it. If she needed help she could ask me and I'd do what I could, but we agreed we'd have those as conversations not me just sticking my nose into something and commenting etc.

3. I spend a little time every week outside the house doing my work. This helps her and I. For me the change in view and different environments can be inspiring and for her she gets a break from me and to have some alone time. We all need some alone time.

4. I set hours on my work, and do my best not to violate them unless something is going on or its crunch time. This lets the house have a more natural flow, e.g. work hours and play hours.

5. We go out to lunch at least 1-2 times a week together, outside the house as a treat to ourselves, like a mini-date. My wife rocks and will also make me lunch a lot of days cause she knows I will work right though lunch and not eat which is bad.

6. Also, we joined a gym and sometimes go workout together and other times go separately. But it let us have time again outside the house.

Over time we have relaxed rule 1 more, but in the earlier days it really helped us get the cadence of the house down. Also, I get that it seems like you need less time together sometimes, but in reality we found that it wasn't the amount of time we were spending but how we were spending it and respecting each others boundaries. We had and have a solid marriage so while this took us time to figure out we just had to get the respect and rules in place. And of course, from time to time we still get on each others nerves during a given week, I know I can be difficult sometimes if for no other reason is that I am a constant smart ass. But that's just normal marriage to me.

TL;DR> Set boundaries, respect them, setup distinct times for work/home, respect her "job", get out of the house weekly for even a few hours and setup dates or activities together outside the house.

Good luck.

Ask HN: How to learn algorithms and become a good programmer?
12 points by rajeshmr  10 hours ago   13 comments top 6
ruraljuror 8 hours ago 2 replies      
Coursera has a couple of courses on algorithms that would be acceptable for beginners but also very challenging (in a good way).

MIT OCW's Intro to Computer Science and Programming (in Python) covers a lot of ground related to programming (more than just Algos), but it covers some essential sorting algorithms and eventually gets into dynamic programming. I don't think anything much simpler than this would be worth your time (not to say this is the best), but the readings themselves (especially those from wikipedia) can actually be a little dense:http://ocw.mit.edu/courses/electrical-engineering-and-comput...

MIT OCW also has a full course on algorithms.

Arun2009 7 hours ago 1 reply      
I suggest that you work patiently through a good text on algorithms and data structures that has code samples in it. I recommend "Algorithms I and II" by Sedgewick or "Data Structures and Algorithm Analysis in Java" (or the C++ version) by Weiss. I also hear good things about "Data Structures and Algorithms in Java" by Lafore.

The above books are quite apt for beginners. You should expect to struggle a little but you must persevere anyway. I remember struggling with sorting and matrix multiplication algorithms when I learned it the first time in school. Do not mistake your unfamiliarity with the subject for its inherent difficulty! Once you write a few sample programs and see how the algorithms play out, you'll get the hang of it.

titomc 3 hours ago 0 replies      
If you do not have a math background , I suggest you start with Logarithmic analysis and properties of logarithms ( many tutorials in youtube ), then attend the Coursera algorithm courses and some selected courses on CS50's youtube channel.
brudgers 7 hours ago 1 reply      
Often, the first examples of computer algorithms involve sorting. There will be some discussion of "bad" sorting algorithms that run in O(n^2) time. This will illustrate how to use algorithmic analysis to understand time complexity. Then the faster merge-sort will be introduced as an obvious improvement to O(n log n) time, followed by quicksort with O(n log n) time and O(n) space...and at this point you may reasonably ask, "So what?"

The thing is is that merge-sort was discovered by John von Neumann [1] and QuickSort by CAR Hoare [2]. The less accomplished of the two won a Turing Award and one might quite legitimately walk away with the belief that developing algorithms from scratch may be non-trivial simply because the subject is really hard.

Which is a round about way of coming to some advice: if the very subject of algorithms isn't enough to scare you off, don't fret the fact that the presentation looks difficult. The apparent difficulty is in the subject itself and the only thing a gentle introduction or simplification means is that someone is pretending that the subject of algorithms is not really really hard with the natural consequence that when it does get hard, you're more likely to see the struggle as a failing of the student rather as inherent in the subject matter. And everything interesting and important in algorithms is hard.

This is why I don't hesitate to suggest people consider TAoCP. It covers the "easy" parts as well as or better than anything else I've seen. It just requires being ok with not understanding everything or even most things that Knuth covers because he finds them important and interesting. Because I'm never going to be that smart, I might as well work at my own pace, and celebrate the small victories like grasping the answer to one of the easy exercises that a year ago, I wouldn't have grasped.

The other recommendation is to take an algorithms course on Coursera. It's free.

Good luck.

[1]: https://en.wikipedia.org/wiki/John_von_Neumann

[2]: https://en.wikipedia.org/wiki/Tony_Hoare

amorphid 5 hours ago 0 replies      
One thing I really liked was using Project Euler. Step 1 for any given problem was to solve it. Step 2 was to go through code written by others benchmark it, and learn why there code was faster than mine.


1arity 7 hours ago 1 reply      
there are so many algorithmsin so many different areas.

it may work to start with just one area,an area that is close to something you already are making or solving, and then, literally, in searching for algorithms for that pick the shortest one and solve a small implementation of it.

in finding a reference implementation i found the following helpful :

-- pick code in the same language you will be writing your version in.

-- if you can, find and read the original paper ( try searching google scholar ) describing the algorithm, these are often clearly written and explain the motivating situations that led to the way the algorithm was constructed.

finally some example short algorithms from a few areas and favorites of mine :

string processing :

-- LZW algorithm

-- longest common subsequence algorithm

tree graph processing :

-- post order depth first search

list processing :

-- group elements in an array into sub arrays of length k

integer processing :

-- change of radix algorithm ( change a mumber from the given base ( 10 ) to base 2 ( or even to other bases as well ) )

most of all, just work your way through stepby step, like the algorithms your are making.

Ask HN: If deep learning is so effective why dont Boston Dynamics robots use it?
3 points by osipov  4 hours ago   6 comments top 4
dennybritz 50 minutes ago 0 replies      
I don't know anything about Boston Dynamics Robots, but "Deep Learning" is not a full solution to building robots. Deep Learning architectures may be used for sub-problems that robots need to solve, e.g. image classification, object recognition, or other classifications tasks where hand-designing features is hard and enough data is available.

Robots are a complex system with lots of moving pieces. Often they use some form of reinforcement learning (which in turn may use Deep Learning for estimating rewards) to decide which actions to take.

skythomas 3 hours ago 0 replies      
I don't know the real answer in Boston Dynamics' case. However, in general, the answer is that Deep Learning is just beginning to be integrated into the pipelines of major robotics/reinforcement learning pipelines. The same thing took time in complicated speech recognition pipelines.

Deep learning is great for recognition/classification but robotics is much more.. Deep learning has to coexist with a number of other critical components.

However, there is major and extremely exciting work being demonstrated in the literature art recent conferences on this front. Expect major developments this year

vonnik 3 hours ago 0 replies      
OP: Just curious, how do you know they don't use deep learning?

@opless: Deep learning may be a fad in the press, but there's substance underneath. It's been breaking one accuracy record after another in raw, unstructured media year after year. ImageNet is just one deep convolutional net competing against another. A lot of other ML algorithms have hit a ceiling, and the ceiling is tied to not having enough humans to engineer enough features. DL doesn't have that chokepoint, and it is able to process vast seas of data that other algos have trouble with. Therefore, for many problems, it will continue to win.

opless 4 hours ago 2 replies      
Tell HN: Now is the perfect time to roll out a new freelance platform
36 points by ehhe  11 hours ago   29 comments top 13
jalopy 10 hours ago 3 replies      
How can you build a platform that doesn't race to the bottom but allows it to extract the value added (and hence profits) from collecting and vetting great talent?

I always imagine the interaction with supply (quality freelance developer) and demand (company needing work done) to be like this:

Company: "I need great freelancers!"Dev: "I'm a great freelancer! My rate is $100/hr [or whatever]!"

[Company interviews Dev, sees prev results, feels happy w/Dev]

Company: "Great! We'll pay you that for the first few days on this platform, then engage you for long term projects off the platform. That way, we don't have to pay Matching Site the finder's fee."

cefthurston 7 hours ago 0 replies      
Full disclosure: I work with Gigster.

We noticed the same broken things here. I don't want to give Elance/UpWork too hard a time - they can be good for some things (like Data Entry, etc) but clearly their model has some issues when it comes to development projects.

Where our model is different is that all of our projects have a dedicated Product Manager who overseas the build for fixed-price projects. The developers and clients deal directly with the project's PM (not with each other). That saves time for the client. It adds a layer but this counter-intuitively improves communication. I speak broken Spanish. So if I run into a Spanish speaker who speaks broken English then we can communicate. That's fine if we're doing something simple but if the nuance of different words matters then we'll do much better if we have a professional translator who's a native speaker in both languages in between us.

I actually interviewed the former CEO of oDesk for my blog a few years ago (long before Gigster existed) so I've been following this space and thinking about where it's heading for a while. That's why I agree with the OP about the opportunity for a new platform to rise in this space and the fundamental issue that a race to the bottom will impact the quality of the build.

@jalopy & @mithaldu - I think what you're alluding to is the simplicity of not having to deal with all the pain of being a freelancer (client management, paperwork, etc). That's our appeal to developers: we give them specs and they can just focus on building, not marketing themselves, client management, etc.

@logn - Eerily similar to how we operate.

WaltPurvis 9 hours ago 0 replies      
I can confirm that Upwork is an unmitigated disaster. As someone trying to get started and hire a contractor, I couldn't figure how to do some very basic things. It's truly mind-boggling how bad it is.

Everyone involved in the design and programming should be placed on some kind of industry Do-Not-Hire list.

> the only reason anyone's still using them is the lack of a better alternative

That, however, is not true. Freelancer.com has been around forever and is much better. (By which I mean it's functional a vast improvement over Upwork.)

logn 8 hours ago 0 replies      
My thoughts for a good freelancer platform (after having used them extensively) --

1. Require specs. If needed make this be marketplace listed work too, to write a spec.

2. Require flat-priced projects. Site moderators will handle scope-creep disputes.

3. Track each project's overall cost and analyze how much each developer actually costs for projects.

I think this would help eliminate the problem that low cost hourly devs sometimes make up for their pricing in quantity.

phantom_oracle 6 hours ago 0 replies      
The major issue I am finding with the new platforms like gigster and toptal is their negotiation strategies.

It is in their best interest to keep deal-flow high, which means that they try not to reject submitted projects and try to push the low prices onto the developer.

If a developer from India knows his chops and can run circles around JS-developers in Silicon Valley, he will also know that he can charge $100 per hour, over-deliver and still be cheaper than a bootcamp-JS guy.

Yet Toptal will negotiate a rate of $25 (or thereabouts), based on some average-pricing they use and justifying that "this is what most devs charge in your area, so $100 per hour will be too high, simply cause you're in India".

Also, this is a new account asking this question... It got me wondering whether this is some backhanded marketing-PR for gigster.

Stephn_R 7 hours ago 0 replies      
What about Gigster? https://trygigster.com/

They are part of the Summer Class of 2015 for Y-Combinator and are really promising. You basically sign up to be a Gigster and then get paired with gigs that pay. Within a week you could be up and running with real projects that actually pay.

Gigster handles all the PM and HR related functions of a business and quickly gets jobs to you so you can start right away.

quickpost 10 hours ago 0 replies      
I'm a freelance developer and I hire people to do small, well defined jobs for me all the time from these sites (data entry, ms word to clean html conversions, etc.).

I've used elance extensively and I'm very, VERY disappointed with how the "transition" to upwork has gone. It is bordering on unusable and has added a lot of difficulty to what should be a straightforward transaction. What a disaster.

So yes, I would agree that there needs to be another competitor that is straightforward to use and definitely an opportunity here. I feel like Metcalfe's Law / network effects of the existing sites might be difficult to overcome, but its worth a shot!

sarciszewski 8 hours ago 0 replies      
Thanks for the tip. I'm going to make one where the rates aren't disclosed in the search feature, and billing options are only available in per-day and per-week increments. :P
nmquirk 11 hours ago 3 replies      
Has anyone here even made any money from these sites? I looked at them a couple times to earn some beer money. The jobs are always vague or the low rates offered by some programmers makes the market less appealing.
andy 10 hours ago 0 replies      
What about freelancer.com? (formerly vworker)
1123581321 11 hours ago 1 reply      
flowctrl 10 hours ago 0 replies      
freelancer.com is a similar, race-to-the-bottom type of system.
1arity 10 hours ago 0 replies      
Excellent. Thank you for this. Perfect timing.
To freemium or not to freemium
9 points by mindlogr  11 hours ago   4 comments top 3
mtmail 10 hours ago 0 replies      
If your product is about sharing in small group then it's best if the freemium plan allows only public sharing so users have an incentive to pay.

Next step is to make sure that users who like sharing publicly don't sign up in the first place because they're not your target audience and public sharing can come with support headaches (think about copyright claims for example).

Does your pay-for plan already include a free trial period? Be it a week or month, it forces users to make a decision to upgrade. In my experience lots of users simply forget and reminders/ads don't work well as they can be ignored.

taprun 10 hours ago 0 replies      
There are only two big reasons to release a freemium offering. 1) To upsell free users later 2) To use free users as marketing.

I wrote an article on this last month... http://taprun.com/articles/secret-to-freemium-pricing

1arity 10 hours ago 1 reply      
Ask HN: What would you want in an ideal web browser?
100 points by mod50ack  20 hours ago   235 comments top 84
exodust 19 hours ago 1 reply      
A browser where the security updates aren't married to "interface enhancements".

Just give me the security updates for the version I have, because I don't want your designer's latest idea of what a browser should look like, and unwanted new features forced down my throat with the security updates.

Choice about what new features to install - much like Windows updates, would be nice.

At the very least provide ways to keep things working and looking exactly how they are at the moment. Needing an add-on to bring back the status bar in Firefox is a joke.

brudgers 14 hours ago 2 replies      
Jails for cookies, history, etc.

I want to be able to stay logged into Google/Facebook/Linkedin for convenience without other browser tabs knowing anything about it...or isomorphically, I want to be able to browse the internet while logged into those services without the pages I am browsing leaking data back to those sites. I'll take the hit of downloading 100k of jquery on my 20mbit pipe a few extra times.

I want my browser to sandbox my information to the same degree I can achieve by running separate browsers or setting up special browsing VM's.

pvdebbe 16 hours ago 1 reply      
I think Firefox + Vimperator is pretty decent by itself, it could be slightly better.

* Even better extension support -- enable writing extensions in any language: expose a file system based API for a full Unix philosophy experience. uzbl has something like this but it's not nearly as ideal as Vimperator is for my use case.

* As others mentioned, lose mandatory UI downgrades and other crap Mozilla's been pushing us lately: give us a platform to customize instead. (Practically running a Firefox compiled from sources helps with some of the issues people have, but sadly there will be a day they overhaul the UI in such a manner it hinders the usability. And because of the security stuff I just can't go back and use an old one forever.)

* Yeah, better bookmarking. Firefox could use a better system, and Vimperator doesn't solve it either. Full-text search among history + bookmarks would be pretty good.

The well exposed API for external apps could solve it all, save for crap UI. For instance, the bookmarks could be crawled to an org-mode document where I could annotate, categorize and tags things to my heart's content.

Aoyagi 18 hours ago 4 replies      
Basically Opera 12 or pre-Chromium Opera in general..

- Obvious things like encryption support, tabs, full cookie options, (customizable) "smart" address bar, speed dial, history, favourites, optional synchronization, extension support, spell check...

- heavily customizable UI,

- plenty of other customization through settings or Opera's neatly done opera:config,

- easily togglable (is that a word?) side panel with M2-style lightweight E-mail client, notes, history, page info, and whatnot,

- detailed page loading (speed, domains, amount of transferred data) and file download information (what, where from/to, when, how much),

- in-built "plugin-on-demand" and noscript,

- Dragonfly (I just can't seem to get used to Chromium's developer tools),

- easy image properties ( http://puu.sh/jEqjh/ab197d996e.png ),

- mouse gestures and switching between tabs with right-click + mouse wheel up/down or something similarly effortless

- tab stacking,

- and last but not least: if you want to make money off me, instead of sneakily tracing where I go and what I do and partnering with Google, ask me for it on first start and maybe with a discreet "donate/subscribe" button on the start page / speed dial.


Things that would be just nice:

- tab sandboxing

- their own rendering engine

- Unite

- One process per browser, not tab

- "reading mode" as seen on WP IE


I guess I want more of a browsing bundle, heh.

arh68 2 hours ago 0 replies      
POST support from the URL bar. Let me type in POST bodies and edit Content-Type/User-Agent/etc headers by hand.

Show TLS negotiation in detail by default (which ciphers are supported? which was selected?).

Let me edit DNS blacklists & whitelists in text. Let me turn off the blacklist for trusted domains, so they can show ads and make money. Let me disable JS except for trusted domains.

Render .md/.markdown files directly. Support some extras (GitHub-flavored, for example).

Store my settings & bookmarks in git repos. Let me snapshot my bookmarks manually/periodically and see side-by-side diffs.

Perhaps as a large plugin, let me pull up magnet links to fetch & serve documents over BitTorrent.

wtbob 17 hours ago 2 replies      
- works on X, the terminal and Android (yeah, that's a tall order, but it sure would be nice to have the same keystrokes available in X and on the terminal, and the same information available everywhere)

- securely shares passwords across multiple hosts (emphasis on 'securely,' unlike Chrome and Firefox)

- blocks ads

- blocks JavaScript, but makes it very easy to selectively enable it

- supports <script type="text/python">, <script type="text/common-lisp"> and <script type="text/smalltalk"> (hey, you did ask for ideal!)

- written and extensible in Common Lisp (elisp or Python would be minimally acceptable): the goal here is to be able to have 'the emacs of web browsers'

mike-cardwell 19 hours ago 1 reply      
Its development should be managed by a group who are not concerned with generating money from advertising/tracking or any other privacy reducing endeavors. A group who put user privacy and security at the forefront of every decision made.
TheLoneWolfling 15 hours ago 1 reply      
No antifeatures / downgrades. I am aware that this is a fuzzy concept. However, a few specifics:

* Think very hard before adding things to make sure that they actually need to be in the core browser. Looking at you, FF Hello.

* Don't baby the user. Everything should be configurable. And existing options should not be changed on upgrades. And general solutions are (always) better than centralized services. Looking at you, Firefox "You cannot install unsigned extensions, period".

* Don't introduce "features" that hurt the end user. Looking at you, Pocket "you now are bound by the terms of Pocket's user agreement when you run FF".

* Don't try to do cat-and-mouse games. Looking at you, Firefox "we must try to prevent malware on the user's computer from taking over FF".

* Don't assume that everyone has the newest and best computer. Looking at you, Firefox "electrolysis tripling memory usage is fine, right?".

* Don't couple security updates with anything else. Looking at you, Firefox "you must downgrade to australis or else your browser will be unsecure aah!".

hollerith 8 hours ago 0 replies      
I wish it were easier to select text with the mouse.

On "complicated" web pages, tiny changes in the position of the mouse while dragging (selecting text) can result in large changes in the selection (the parts of the page highlighted in light blue). Sometimes a tiny change in mouse position even causes a whole 'nother column of text to be highlighted.

It sometimes takes many tries simply to select the contiguous words I want to copy. It sometimes takes planning and learning from experience. I would prefer for selecting text with the mouse to be so easy that I can always keep all of my planning and learning faculties focused on the ideas discussed on the web page.

Even on pages (such as the page where this comment will appear) where selecting text with the mouse is relatively straightforward, I would prefer to be able to select a contiguous series of lines (or paragraphs if individual lines is too hard) by dragging in the left margin the way that it is possible to select a contiguous series of lines in TextMate 2 or in Sublime Text 3 by dragging in the gutter (the left margin where the line numbers appear). (Neither Firefox nor Chrome lets me do that with HN's pages.)

In general, I would prefer for my browser to be optimized for "active reading" or "reading broadly understood" (reading plus related activities like copying a short passage from a web page and pasting it into a text editor).

I would probably make heavy use of such a "browser optimized for reading" even if it barfed on "complicated" web pages (i.e., failed to render all or part of pages that use a difficult-to-implement modern web API) provided there were an "Open in Firefox" or "Open in Chrome" item on the right-click menu whenever the mouse is over a link -- or some similar easy-to-implement convenience.

In other words, I think I'd use it and love it even if it was unusable with most pages on the modern web as long as it provides a good experience on certain sites with relatively simple pages, like HN and Wikipedia.

kenOfYugen 18 hours ago 3 replies      
Modularity.I would like to see a browser that is designed as an engine, meaning that no UI/UX, or 'browsing' features are included. Much like a raw linux kernel in philosophy.I would like this ideal browser to have interoperability with various JS engines, HTML and CSS renderers, as well as the standardized specifications for the underlying network protocols. It should be 'safe' by being written in languages where safety can be guaranteed ( with the exception of human error of course ).In essence, if an open source core for a browser existed, maybe we could all work together and build the ideal browser.

"Ideal" isn't one thing. Allowing for personal customizations while following closely the standards make the base for implementing many "ideal flavors" of browsing experience.

gunn 18 hours ago 0 replies      
From a previous HN post - I want a browser standard for an easily optimised subset of html technologies. To conform to this standard, pages would be restricted in the ways they can manipulate the DOM, have a simpler DOM, use only a small fraction of CSS properties, and not use some JS features e.g. eval, delete.

We can use the asm.js model for opting in. Browsers that support it run the pages super fast, other browsers run them just as fast as usual.

A browser engine supporting just this standard would be considerably smaller, more embeddable, and a nicer base for current webkit based apps (e.g. spotify, steam, or atom). It might also help apps that want to use something like webviews for embedding content but need to be careful with memory / performance.

throwaway6845 17 hours ago 1 reply      
Less nannying.

Yeah, browser manufacturer, I know you want me to use HSTS and you want me not to browse to HTTPS sites without certificates and all that. That's fine. I can understand that (for example) Google wants to be the only org that can track where I'm browsing, not my ISP or the NSA.

But for the love of dog, give me an option to turn all that nannying shit off as and when I want to. My computer, my connection, I'll choose how much information I want to share with people. Not you.

halosghost 14 hours ago 1 reply      
Okay, so, let me premise my answer with the acknowledgement that probably /very/ few people want what I do.

1. Terminal-only (^Z is a thing that I want)

2. Capable of some basic CSS support (e.g., colors, basic text decorations; whatever can be simply translated to ANSI escape codes)

3. Capable of doing <div>-based page layouts fairly consistently.

4. Just enough Javascript support to login to a couple of webpages I like and nothing more

5. Some basic support for cookies and bookmarks (though, a session save would be an acceptable alternative for me)

6. Basic support for privacy/security features (think DNT header, HSTS, etc.)

7. (optional) libsixel integration for image/video output

Having the above presents me with the ability to leave GUI web-browsers behind entirely. Ads and the like would essentially be immaterial if JS and images are toggleable and everything would be glorious. Of course, no one appears to want this kind of thing enough for it to have been created yet. So I will eventually probably break down and make it myself :P

rndn 17 hours ago 1 reply      
Per-tab CPU and memory profiling and volume control.

Never remove old history items when revisiting a page, but leave the history intact.

Treat tabs more like temporary bookmarks (and thus allow bookmark actions to be used with them like search (full-text), (batch) re-naming, arranging in folders, sorting).

Notes that can be attached to tabs and to websites.

A history of closed tabs.

Scripting support with REPL that allows to quickly process content of multiple tabs at once.

Transparent access to cookies and localStorage.

Something like Privacy Badger included.

Place dialog boxes always near the cursor, not in a tiny bar or in a pop-up near the top.

Bandwidth stats during page load.

Speed: No full-screen transition animations, lazy tab loading, smart tab unloading, ability to quickly and temporarily disable img, embed, video, script etc.

samuellb 14 hours ago 1 reply      
Mostly security, privacy and usability related stuff. Here's a quite long list:

* Browser written in a way that prevents most exploits.

* Built-in Javascript and cross-domain request blocking.

* Single-process sandboxed browser where only the active tab is allowed to run.

* Tab content written to disk so it can be restored in the event of a crash or running out of battery.

* Ability to "swap out" tabs to disk so they consume no memory.

* Ability to freeze all javascript code on a tab temporarily.

* Deep searching of history (i.e. page content).

* Created by a privacy-friendly organization/people who aren't trying to spy on you.

* Avoid doing things automatically (download files to a folder, search for misspelled URLs, send URL to Google when typing it in, etc). Don't have keyboard shortcuts that are hard to undo (also, don't have single-key letter/number shortcuts at all).

* Don't have an over-engineered build process. The browser should be possible to build (not necessarily fast) on an old or low-end computer.

beefman 18 hours ago 4 replies      
Tree-style tabs and the bookmark model to go with it (a bookmark can have a parent, so you can restore subtrees of tabs, each with its history intact).[1]

Scroll below bottom of page as necessary when navigating to anchor links.[2]

Put focus in urlbar when switching to a tab unless the user has already moved it onto the page.

Continue to allow bookmark keywords for custom searches from urlbar (e.g. "w fun" to search wikipedia for "fun"). This still works in Chrome and Firefox but it gets harder to configure with every release.

History should be sortable by most recent view, where closing or switching to a tab counts as a view. Makes separate "recently closed tabs" menu superfluous.

Full-text history search.

Support for MAFF archives.[3]

Built-in ad blocking.

[1] https://addons.mozilla.org/en-us/firefox/addon/tree-style-ta...

[2] http://lumma.org/microwave/#2006.02.24.3

[3] http://maf.mozdev.org

pjungwir 9 hours ago 1 reply      
I would love to have a bookmarks file that is text, not SQLite, so I can use rsync or git to keep a master copy on a server and have all my computers share it.

Same with a passwords file, except make it encrypted with a master key.

ronreiter 18 hours ago 5 replies      
The web needs to split into two:

* Reader browser

* Application browser

The reader browser should show you the "web" in a kindle-like readable experience, just as it does today.

However, the application browser, although it does receive a URL, should not have any HTML page as a default view. Instead, a JavaScript should be first loaded, and from there, following the permissions it requests, it can open new windows, notifications, or any other desktop feature needed, which websites that just need to be read do not need.

1arity 19 hours ago 4 replies      
See the history as a tree, not as a list, so branch points can be preserved and you can navigate back over everywhere you've already been.

A detailed development roadmap.

Privileged browser Apps and Extensions working on mobile. C'mon, it's 2015! ( no PhoneGap required )

An automation API.

The same really committed team who optimized V8.

Source on GitHub ( not necessarily all of it mind, some can be privileged access, tho a place to post issues that is no more code.google or crbugs, just, why? ).

zkirill 19 hours ago 3 replies      
The reason why I originally switched from Firefox to Chrome was because Chrome was minimalistic and very, very fast - a chrome for the web.

Now I'm seeing Chrome become bloated, and slow. On top of this, it's now trying very hard to identify me by asking me to sign in with my Google account.

I want my next browser to make me forget that I'm using a browser in the first place, and also to not care about my identity.

jokoon 10 hours ago 0 replies      
An open webpage file format which is not markup. Something of the like of YAML, or something simpler to read for a human.

Or maybe compiled HTML (like microsoft .CHM), except open (duh).

Reason ? Parsing XML or HTML is very CPU-intensive, and cheap smartphone's small CPUs (which have a very low L2 cache) have a very hard time dealing with it, not to mention classic desktop browser memory footprints. If not even regex can do it, why the hell not ? I'm sure the memory footprint of firefox and chrome is incompressible because of the raw nature of HTML. And for the life of me, if nobody can read a HTLM page generated anymore, what's the point of it ? Why not just compile it ?

I guess I could submit it to the IETF, to be honest. I'm not even a software engineer so basically I'm not sure if my idea is right or not, but I'll always find weird that the app-version of websites perform so much better than their HTML version.

In the internet explorer days, this was not possible because firefox and chrome were not mainstream, but I'm sure now is a good opportunity. It could eventually even replace or substitute .DOC and PDF files.

nitin_flanker 19 hours ago 4 replies      
I want a web browser that let me open multiple accounts of a similar site at once.
realharo 19 hours ago 0 replies      
When a link is opened in a new tab, that tab should keep the history of the tab it was opened from.

There used to be a Firefox extension for that, but that now doesn't work anymore because of changes in Firefox. Chrome closed a feature request for that with WONTFIX (https://code.google.com/p/chromium/issues/detail?id=1639).

EDIT: Oh, and also a simple user-friendly way to block autoplay of all audio and video elements. Maybe a "quiet mode" switch or something like that.

adrusi 13 hours ago 1 reply      
Great question.

- No tabs, that's the job of the window manager. I get that most window managers are too underpowered to replicate browser tabs. Stop using those window managers I guess. Note that this gets you tab isolation for free, since every "tab" is just a completely different browser process. It hardly wastes any memory, too, because of dynamic linking.

- No features. I want to be able to set the url, search, have back/forward buttons, zoom the text. That's it.

- Extensible in a Unixy way. Press a key and execute a program with some hooks to modify the browser.

So far suckless's surf browser fits the bill. I currently use surf with a patch that lats me search duckduckgo from the dmenu url field.

- Support for privacy enhancing extensions. NoScript, Block, PrivacyBadger, HTTPS Everywhere, etc. I'm trying to see how these could work as a component separate the browser and I'm coming up blank on how to present the UI nicely. Currently I use privoxy for this, but it's subadequate.

noja 14 hours ago 0 replies      
1. A per-website privacy mode. I don't want fb tracking me across all my private-mode tabs.

2. A separated out password store where the store prompts me for each password request and I have to allow it. The store would work with more than just browser passwords.

3. Better cookie control: I need no persistent cookies, apart from whatever Google uses for 2FA.

draven 15 hours ago 0 replies      
* Speed!

* Something other than javascript as a compilation target when using something else for those of us allergic to JS (scalajs.) I've only looked at it briefly but WebAssembly looks like a good candidate for this

* Less feature bloat, remove as many features as possible from the browser core and leave any non essential feature to plugins.

cessor 13 hours ago 0 replies      
A content filter plugin, that allows me to block content semantically. Every year I feel the net gets swamped by certain events which affects my browsing experience. Halloween and the Superbowl are fairly regular, or the football world championship. People on facebook, imgur, twitter or 9gag and so on then just can't shut up about it. I would like to take notice of a new image of Pluto and then click "seen" and have the similar pictures blocked on imgur, twitter and news sites.

I would like to have this as a browser feature that I can control and easily change, rather than just a plugin. Adblock Plus would be a similar idea but I wish I could automatically teach it to block even more.

kbody 19 hours ago 0 replies      
Scalable tab management.Being able to (name) group them without restrictions and being natively implemented on the browser without separate screens etc.
thelastguy 13 hours ago 1 reply      
Vertical Tree Style Tabs (aka, Hierarchical Tabs) where opening a new Tab will make it a child tab of the original Tab.

Virtualized Tabs that unloads completely when it is no longer visible on the Tab Bar to save memory and CPU processing.

NoScript built in.

Ability to write Extension in any Language, aka, the Extension API is exposable to all Languages.

Tabs opened in the background should not start playing Flash automatically. Only once the Tab is selected, does Flash play, and continue to play in the background after moving to another Tab. Should be able to right click on the Tab and Allow Flash to Continue Playing in the Background.

Most importantly is speed and low CPU usage (running a hundred Javascripts per webpage literally kills speed).

leni536 18 hours ago 0 replies      
To not make me jump through 7 hoops until I can enter a self-signed https site and verify its fingerprint. Meanwhile they don't complain about http sites (which is reasonable), I don't know if they complain if you fill out a form with a password field on a http site though.

It would be nice if they showed a nice visual fingerprint too, although it's hard to prove their safety.

iveqy 18 hours ago 2 replies      
Skip all those features, just give me speed, a lot of it.

Plugins would be great (I love vimperator) but speed and efficienty is the real deal here.

jakub_g 18 hours ago 1 reply      
Apart from customizability, security and decoupling of UI changes from API/perf/security fixes:

- Option to stop all audio/video in all tabs

- Lazy session restore

- Reliable "save for offline viewing"

- Decoupling of "read later" from bookmarks and a separate interface for both

Going wild:

- Automagic unloading, archiving and clustering of opened tabs, perhaps with an auto-extraction of TL;DR from long articles

I very often open lots of pages (from HN etc.) but have no time to read them all at the time of opening. They linger as background tabs until the background tabs count is so big so I have to close them all and probably never come back.

Would be cool if the browser was able to somehow unload and archive unused tabs (to free some memory), and perhaps automatically group them into several categories: say, "angularjs", "bash", "youtube", "news" etc. and provide a good interface to return to them later.

However due to sheer amount of links I follow, my problem might be unsolvable :)

leni536 18 hours ago 0 replies      
Make client site certificates easy to use so websites can start to reasonably offer it as an alternative to password auth.
craigds 19 hours ago 2 replies      
Google Chrome is pretty close. Some extra things I'd like:

* Fully open source, with clear and open licensing.

* Extensions with a permissions system that works at multiple levels of granularity. So I should be able to trust an extension but deny it some specific things (without breaking it.)

* A headless mode, with python/ruby/other bindings, so I can use it as an automation library.

ivank 18 hours ago 0 replies      
Basically just Chrome with Tree Style Tab, a ctrl-tab that does LRU tab switching, and an option to delay tab loading on startup until the tab is clicked.

I'd also like the browser to ensure that websites can't read my identity when I'm browsing in an unrelated tab. Something like a variant of RequestPolicy.

smasty 13 hours ago 0 replies      
Something like the old Opera:

- Extensive customizability of the interface

- Proper tab management (tiling, cascade, positioning) and tab stacking

- Mouse gestures

- Content blocker baked in

- RSS reader included

- Better cookie control

- Per-site privacy mode

- low CPU/memory usage - no "one tab per process" - I want 10s of tabs open without wasting few GBs of memory

- fast JS

- advanced search from address bar - custom search engines with search suggestions

- customizable Speed Dial baked in - no extensions needed.

- Dragonfly instead of DevTools

- detailed page loading info, not just "Loading example.com..."

I'm hoping to get at least some of these things out of either Vivaldi or Otter Browser when they're mature enough...

kitsunesoba 11 hours ago 0 replies      
Native UI toolkit used for window chrome (toolbar, etc) - no HTML/XUL/etc, it's gotta be real

Good OS integration

Prioritization of power efficiency over performance

Built in request-based ad blocking like that found in iOS 9/El Capitan Safari

Tabs in a list on the side of the window

Per tab processes

In-browser video playback handled by embedded mpv

General focus on being a vehicle for viewing websites rather than trying to be an application platform

Aardwolf 17 hours ago 0 replies      
-Easier text selection on e.g. websites where all the text is links or weirdly placed dives, basically a mode where anything that's text or looks like text can be selected and copied as plain text. And somehow don't surprisingly select all text of the website just because you started dragging from the right side of some sentence.

-Less continuous disk usage for caching and stuff, batch all disk writes together every now and then or so

-Something to block the new type of popup, the type that brings some thing to the foreground and shades the background

-Something to block all the annoying European cookie warnings, I don't need them, I already know websites use cookies

espadrine 16 hours ago 0 replies      
Improving bookmarks to:

- Search through them better (by indexing their content and subject, autolabeling while allowing custom labels). (As a side-note, star-searching in Firefox is an undiscoverable feature; the new tab page should offer a way to do that.)

- Give a visual organization la Desktop / iOS app layout. Currently, the new tab page gives the six most common sites, which subconsciously forces me to forget about the seventh most common site I visit.

- Give a neat access to offline webapps. Right now, going to one is inconvenient.

Most of all, include tab freezing by default (to remove the memory, stop the JS, etc. without having to close the tab)

DanBC 18 hours ago 2 replies      
MOBILE: when I zoom a page the browser should treat this the same as if I change the window size on a desktop browser, and reflow the text. Mobile browsing is a really lousy horrible experience because there are some conflicting philosophies.
gregoire 19 hours ago 1 reply      
Full text history search.
korginator 14 hours ago 0 replies      

Very lightweight, low CPU usage.

Extensible, easy to write addons.

Keyboard shortcuts, single-key shortcuts for everything.

A good bookmark manager.

Customisable till the very end, through a simple to understand menu instead of the about:config way.

Minimal, no mail or RSS client, just the vanilla browser.

Superb in-memory caching for instant page navigation.

In fact, the old Opera had nearly all these features before they went and messed it all up, making it a chrome clone in a different skin. I was a paid user since the 2.x days.

z92 18 hours ago 1 reply      
More light weight. Less memory consumption, less processor usage and faster. As far as it can go.

Firefox was built on that ideology. Until it became the same monster that it was supposed to replace. The same thing is happening to chrome.

pieter_mj 13 hours ago 0 replies      
Security and privacy would be my main concerns.

- full libre gpl3'ed codebase including plugins and extensions.

- immediate disclosure of all security problems (in the hope they get fixed promptly). the socalled "responsible" delayed disclosures annoy me to no end. let every exploit be a 0day exploit and leave it to the user to decide, at least it'll be an informed user!

kentbrew 11 hours ago 0 replies      
Browser extensions on mobile devices.
Myrmornis 16 hours ago 1 reply      
I'd like a strong "project" concept: a project could be a set of multi-tab windows, there'd be fast switching between projects and fast tab selection based on projects. Most computers nowadays have a lot of RAM and people use lots of tabs. It seems wrong that one resorts to public browser extensions to find ways to navigate through the tabs.

Possibly also tree-like relationships between tabs so that subtrees of tabs can be operated on as a unit.

mbrock 18 hours ago 0 replies      
Usable keyboard navigation based on relevant elements.

Textareas that don't suck.

itsuart 12 hours ago 0 replies      
From top of my head.

Fork of Chromium without:

- all Google things

- Non-browser things like accounts and pdf viewers.


- attempt https if protocol is not provided

- blocking all js unless whitelisted

- blocking all requests to 3rd party domains unless whitelisted

- blocking all attempts to hijack right mouse clicks

- blocking all redirect attempts unless whitelisted

- destruction of all cookies/web storage on start/close unless whitelisted


benbenolson 16 hours ago 0 replies      
Firefox with Vimperator. It loads pages quickly, I view them, and I can navigate them without touching the mouse. Perfection.
DanBC 19 hours ago 1 reply      
Better bookmarking.
rasz_pl 18 hours ago 0 replies      
Ideal web browser was here already, Opera between ~8 and 12 had everything from technical and user experience point of view. I could configure almost every option globally _and_ on top of that change behaviour per page. I could do whatever I wanted with UI. I was in the driver seat at all times.

That browser is dead now :(

qcoh 18 hours ago 1 reply      
Should work on an Atom 270 netbook without lagging. Currently I have to use either dillo or Opera 12.something.
1arity 14 hours ago 2 replies      
I know this is crazy but I want there to be a service where I can subscribe to a number of websites, and every week I get a printed hardcopy of all the content that I can leaf through. Eco-greenie-ologists be damned, I want my degradable, ephemeral paper to leaf through while lounging in a rocker chair drinking ice tea. Civilized. Now that's a browser.

Solves the security issue right there, aint nobody tracking me now. I'd like to see 1337 kidz xploit that paper. Escalate that privilege , from my rocking chair! And let me choose from a number of layouts. The smell of that fresh printers ink, nothing like it!

Bits and scroll bars and cookies. No taste, it's just trash.

varlock 17 hours ago 1 reply      
My 2c:

- It must be ultra lightweight: fast when starting up, fast when handling load of tabs, just fast.

- Doing _one single thing_ exceptionally well: enable the user to browse. Built-in modularity means add-ons/plug-ins/etc can optionally be added to expand the browser capabilities.

UserRights 15 hours ago 0 replies      
Long term cookie saving only with opt-in by default - Firefox still will give every user the google cookie by default, handing millions of users out to google tracking.

Make device fingerprinting impossible.

homakov 17 hours ago 1 reply      
The fast way to handle 20-200 tabs. Something like built in tab search, with tab caching.
soyiuz 14 hours ago 0 replies      
bakabaka9 17 hours ago 0 replies      
I'd like its source code to be extremely hackable and easy to understand / build / debug, quite unlike Mozilla's present day codebase (which I personally find very hard to figure out).
mod50ack 19 hours ago 0 replies      
Also, I feel like inspiration from the early web browsers should be taken. Tim Berners-Lee's book "Weaving the Web" fascinated me and I think that we can learn from both the current and the oldest designs of browsers.
milkers 16 hours ago 0 replies      
I want my browser to work like an IDE.

Tabbing should be separated according to the context.

Bookmarking should be improved.

Instead of a plain web browser the program should work as a knowledge access/management system.

adav 16 hours ago 0 replies      
A browser that knows and can retrieve quickly what information from the web I want, or likely require, at that point in time and without any expressed guidance from myself.
asgard1024 15 hours ago 0 replies      
I would like an ability to snapshot save the web page, with all the dynamically loaded stuff (content, JS, Flash..). Just like some emulator systems have.
jhildings 18 hours ago 0 replies      
A browser without all this new stupid checks of "malware sites", HTTPS complaining and so on. I want to use it as a program, not as an secure antivirus tool
OnleMeMeMe 19 hours ago 0 replies      
Bookmark sidebar as in Firefox (the thing I miss most in Chrome)
swah 16 hours ago 0 replies      
Chrome is fine - its the best desktop app I use. It could use fewer resources, though. Also I don't know what are the apps.
profstyle 19 hours ago 0 replies      
should be simple and easy to navigate, understand what i might do.

Even if i open many tabs shouldnt freeze or crash, Thats one of the most important thing i care about, Mostly firefox does that, keeps crashing if you open many tabs.

Would be great if allows to sync with mobile, like if i enjoy a website and display right away on my mobile, instead of using extension it should the out of the box. We are living on a mobile world now.

cm2187 17 hours ago 2 replies      
Control over who can run code on my machine. Have a block third party javascript option like we have a block third party cookies.
crististm 17 hours ago 0 replies      
- instant loading; think firefox/firebird 0.9

- pet-peeve: "disable JS" ON by default (option now buried in the guts of Firefox)

noibl 13 hours ago 0 replies      
A compiled cache of common javascript libraries.

Benefits: speed, privacy (less interaction with CDNs).

kalmi10 12 hours ago 0 replies      
A minimal browser (like surf/uzbl) with Chrome-like security sandboxing.
tikums 17 hours ago 0 replies      
- Tab sandboxing

- No phoning home

- In-built privacy protection

kazinator 12 hours ago 0 replies      
Each tab in its own address space (process).
bandrami 17 hours ago 0 replies      
Annotation, curation, and archiving. Ideally in a console interface.
renke1 17 hours ago 0 replies      
Spatial navigation like in the good old Opera.
systemz 12 hours ago 0 replies      
Lack of integrated services
agounaris 18 hours ago 0 replies      
I would love to see chrome using less battery!!
arvind_k 19 hours ago 2 replies      
no ads in any form
hoodoof 18 hours ago 0 replies      
Compatibility with others browsers code.
mgkimsal 17 hours ago 0 replies      
Upload progress bar w/API.
yellowapple 8 hours ago 0 replies      
My ideal web browser wouldn't be a browser at all, but instead a bunch of "do one thing and do it well" components that I can piece together to do things and swap in/out as necessary. I'd like to be able to swap rendering engines, Javascript interpreters, UI components, plugins, extensions, etc. in and out with maximum modularity and flexibility.

I'd also love for there to be a Unix-ish interface for browser plugins/extensions that isn't dependent on a specific language (or, if it is, for that language to be something C-compatible for maximum FFI compatibility). The more I can do without touching a single line of JS, the better.

dang 19 hours ago 0 replies      
i336_ 14 hours ago 0 replies      
I've wondered about where UI and UX is going for a few years now. I think it's one of those areas where, if it weren't for the fact that corporate involvement would categorically be too politically incorrect, good (GOOD) ground-up UI/UX is a completely un-tapped field.

A few months ago I was thinking about the old MinWin improvements (to Windows' basic core services), how Windows 8.1/10 are (arguably) smaller and lighter than Vista, etc... and it clicked: Microsoft have realized they're no longer the "hardware industry killer app," if you will, and have moved out of the way... to let the Web take its place.

In my opinion, Web browsers are basically mind-bogglingly complex rube goldberg machines, based on conflicting standards that are also rube goldberg machines, and the whole scene is basically meta-rube-goldberg-ception.

A lot of the complexity and conflict is mostly due to the history and tradition behind the technologies we're using: on the one hand, all you want is arbitrary sandboxed code execution and sane UI; on the other hand, sites start delivering content exclusively via JS and everyone gets mad. And in the meantime, who audits their web browsers? What was that about "safe" code execution, where the browser protects you from "nasty" code? We hear about the browsers themselves doing the wrong thing by users almost every week.

We need to fight this. I've come to the conclusion that the only way this can be done is to simply make the effort and do the hard graft to port a bunch of existing applications to a new coherent, practical modality/paradigm, dump the whole thing on an unsuspecting world, and wait to see what happens next. It might catch on. It might not. Get feedback, try again. Keep trying until it goes viral enough to make a dent and improve people's lives.

There are so many interesting and fascinating UI experiments out there, but nobody seems to want to commit to actually practically trying out a few of them in real applications :( and I think that's what's holding everything back - everyone's waiting for everyone else to make the first move.

Here's where I'd start: everything should be able to send messages to everything else, to work around the language problem; everything should be an object with arbitrarily settable properties - everything from the files in the filesystem to the windows on the screen; with the appropriate security context surrounding everything, you could do crazy things like programmatically share the tags you attach to the files you share over P2P, or tag images with text descriptions of their contents; the console should be inherently textual but in such a way that it is exclusively touch-gesture-drivable; I strongly believe in the anti-mac/post-mac UX paradigm; I believe that it's impossible to create the "ultimate" solution that will work for everyone, and that all I can ever hope to do is nudge everything in what I think is a good general direction. And the only sane way to release an implementation like this is to put it into the public domain.

Agh, this probably reads like a rant, and I guess it is. I'm just not sure where to start, although I do have some ideas. Incidentally, I frequently use "asmqb7" on the web, including for my Gmail account.

tiatia 14 hours ago 0 replies      
UZBL Browser...http://www.uzbl.org/
makeitsuckless 16 hours ago 0 replies      
Yes, customizability and security (including privacy) are my top concerns.

Which is why I first and foremost want my ideal browser to not be owned or beholden to a major corporation that will abuse it for it's own purposes, like Google, Apple or Microsoft.

Ask HN: Why did literate programming not catch on?
98 points by dman  1 day ago   94 comments top 29
chipsy 1 day ago 6 replies      
It makes it harder to make changes. The story you start telling is not what you end up with later, after you've completed all the non-trivial features and major assumptions have fallen through. Going back and fixing the story as you go along is expensive. Writing the story after it's done is too late - the business value is in the product's shipped functionality, not in the development artifacts.

We have an alternate method of understanding how software developed, which is to look at revision control commits. This method falls more in line with the techniques of development and the genuine evolution of the codebase. Recall that revision control methods were still being improved well after Knuth wrote about literate programming, and the available systems, where people used them(and a lot of shops didn't), weren't nearly as fine-grained back in the 1980's.

Personal experience: I tried using "Leo", an outlining and literate programming text editor, for a project. Although the documentation capability was nice temporarily and gave me an additional method of structure and organization, the hooks messed around with some formatting and refactoring operations, and most of the time, the benefit wasn't clear. The time I spent on the documentation could have gone - from my current perspective - into making the code smaller and simpler. At the time, I didn't know how that would be possible, thus I focused on defending against the complexity by adding more.

A lot of our preconceptions about what makes code both look good and behave well are temporary. That makes it hard to come up with a sensible system of organization, as we'll put effort in to enumerate and categorize only to discover that it falls apart.

dthal 1 day ago 3 replies      
It does survive, in a certain sense, in scientific programming and data science. Both iPython notebooks and Rmarkdown are a sort of literate programming, although with the emphasis on the text more than the code. In that setting, the executable artifact is not really more important than the explanation of why the code does what it does, so the extra overhead is justifiable.

Rmarkdown example: http://kbroman.org/knitr_knutshell/pages/Rmarkdown.html

iPython notebook example: http://nbviewer.ipython.org/github/empet/Math/blob/master/Do...

daly 1 day ago 4 replies      
I've been using literate programming for 15 years on many projects. The largest and most visible one is Axiom(https://en.wikipedia.org/wiki/Axiom) which currently has many thousands of pages with embedded code.

I've talked to Knuth. He claims he could not have implemented MMIX without literate programming. Literate programming is really valuable but you only understand that once you really try it. I gave a talk on this subject at the WriteTheDocs conference:https://www.youtube.com/watch?v=Av0PQDVTP4A

You can write a literate program in any language, for instance, in HTML:http://axiom-developer.org/axiom-website/litprog.html

There are some "gold standard" literate programs:"Physically Based Rendering" by Pharr and Humphreys won an academy award. "Lisp in Small Pieces" contains a complete lisp implementation including the interpreter and compiler. The book "Implementing Elliptic Curve Cryptography" is another example.

Suppose your business depends on a program. Suppose your team leaves (they all do eventually). Suppose you need to change it... THAT's why you need literate programming. Nobody is going be around to remember that the strange block of code is there to handle Palm Pilots.

Companies should hire language majors, make them Editor-in-Chief, and put them on every programming team. Nobody checks in code until there is at least a paragraph that explains WHY this code was written. Anybody can figure out WHAT it does but reverse-engineering WHY it does it can be hard.

Imagine a physics textbook that was "just the equations" without any surrounding text. That's the way we write code today. It is true that the equations are the essence but without the surrounding text they are quite opaque.

Imagine how easy it would be to hire someone. You give them the current version of the book, send them to Hawaii for two weeks, and when they return they can maintain and modify the system as well as the rest of the team.

Do yourself a favor, buy a copy of Physically Based Rendering. Consider it to be the standard of excellence that you expect from a professional programmer. Then decide to be a professional and hold yourself to that standard.

tumba 1 day ago 0 replies      
Programming occurs in a wide variety of contexts, and different tools and workflows are optimal in different contexts. In the same way that I find interactive programming in Common Lisp optimal for exploratory work in a complicated or uncertain domain, I find literate programming to be optimal for work that requires rigor in a domain with little uncertainty and static requirements.

Literate programming hasn't "taken off" only in the sense that few people are performing the type of tranquil and rigorous work it was made for. Much of the (admittedly difficult) work being done by programmers today is in fact trivial. The difficulty comes from attempting to solve ill-specified or constantly changing requirements by glueing together a constantly changing set of frameworks and tools.

However, I would suggest that even in organization whose primary responsibility is wrangling with a messy soup of ill-defined requirements as fast as possible, there are often sub-problems whose treatment is amenable for the use of literate program, such as a library implementing a unique and non-trivial algorithm. In such cases, it can be worthwhile to carve out an island of tranquility, clear prose, and rigor, even if it means using slightly different tooling than the rest of the project.

mkozlows 1 day ago 1 reply      
Others have already given the reasons about the downsides of comments. One other reason is: Most developers are terrible, terrible writers.

It's one thing to imagine a profession of literate programming as practiced by Donald Knuth; it's another thing entirely to imagine it as practiced by the kind of people who are actually writing code.

nostrademons 1 day ago 4 replies      
Because software changes so rapidly.

Literate programming is based on the idea that you should explain what software does and how it does it in detail so that a reader can follow along and learn. That works great for TeX, which hasn't changed significantly since 1982. It works less great for say, Google/Alphabet, which wasn't even the same company last week.

The general problem with documentation is that it gets out of date as the software evolves to fit new requirements. Most real-world products face new requirements on a weekly, sometimes hourly basis; as a result, most fast-growing startups have oral cultures where the way to learn about the software is to ask the last person who worked on it.

erikpukinskis 1 day ago 1 reply      
I've been trying to write a JavaScript framework in a literate way for a year or so, here's what I've found:

* I end up deleting most of the prose once the code starts getting good. Good code is sort of literate already.

* As others have said, when you're doing some code churn, it's difficult to maintain a narrative structure that makes sense.

* Existing frameworks, at least for web programming, encourage you do draw boundaries around individual homogenous chunks of one type of code (router, view, migration) rather than human conceptual concerns (upload a file, browse my photos, etc). In order to do a good job explaining what a view does, you need to know what the controller is providing. In order to understand that you need to understand what the domain layer is doing. Frameworks just make it really hard to put, in one file, everything necessary to explain a concern.

I still believe in the idea, but I think for literate programming to work well it has to be done in an ecosystem where the APIs are all structured for literate programming, which doesn't really exist (yet).

geocar 20 hours ago 1 reply      
Programmers often say comments are for describing algorithms -- especially hairy ones, but it's a straw man: The code does what it does, and the comment doesn't enter into it. If anything the comment can confuse because programmers don't usually read code, but can find it easy to agree with the comment so they move on.

I think that the decision to bring code into this world is not one to be taken likely, and a literate program is simply the story of why interwoven with the implementation of what: Where did -2 come from? When I ifdef for a FreeBSD bug, how will I know if the bug is fixed (and the code can be removed/changed?) And so on.

Literate programming isn't the only "solution" to this problem. Making programs really big by duplicating efforts, and working around workarounds, using Java seems to "work" (for strange values of work), so perhaps this is a blub thing? If your code is "self documenting" then you don't know what documentation is.

That is to say: Literate programming didn't catch on because it was dismissed by the larger number of programmers who could get "things done" who didn't understand literate programming.

hirundo 11 hours ago 0 replies      
It did catch on, just in a different form. Our web shop is fairly typical of that. We do this with a combination of the Tomdoc (tomdoc.org) documentation specification plus Rubocop (github.com/bbatsov/rubocop) and peer review for enforcement. We use rubocop to ensure that methods are short and simple, and every such method that is public is accompanied by a tomdoc section. The result is that there are about twice the number of lines in our code file that are targeted at humans than computers. We generate separate documentation by extracting the tomdocs that has proven useful in explaining the code to the uninitiated.

However, to the initiated it's mostly in the way. With short, simple methods I find it easier to decode unfamiliar code by reading the methods than the by reading the tomdocs. Like many of my cow-orkers I've configured my editor to hide the tomdocs in normal use. Writing tomdocs is a chore to be done immediately before delivering code for peer review.

That's probably the biggest weakness of literate programming: it isn't for the programmer responsible for that code, or even for that programmer a year later when she has forgotten much of it. It's more for the developer or designer that isn't fluent in the language, but still has to interact with it. Since the value to the actual coder is distant and indirect, while the work of producing it is immediate, it tends to be an early omission under any kind of stress. In our case it would disappear if not enforce by peer review.

rumcajz 20 hours ago 0 replies      
Interesting to see that people cite code churn as the main reason for _not_ adopting LP. I've argued in the past that LP is especially useful in highly volatile environments:


Tl;DR: If the environment is so volatile that the code is permanently broken reverse engineering doesn't work well. In such case the documentation may be your only recourse.

kazinator 1 day ago 3 replies      
TeX benefited from literate programming because it was written in a higher level assembly language.

(Also, it was written by someone who liked to write books, and if a book was about software, he wanted to integrate the writing of the book and the software.)

Better than literate programming is to write code that explains itself. Don't write two things, one of which executes and the other explains it; write an explanation which also executes.

In other words, don't desperately separate and literate; instead, lisperate!

rndn 20 hours ago 0 replies      
This question was also brought up on reddit a while ago: https://www.reddit.com/r/compsci/comments/1zrujz/literate_pr...

My pet theory is that programmers are driven by a constant feeling of obsolescence: Most implementations are incredibly short lived so that it seems futile to optimize the code for understanding (literate programming), when much less (programming experience, comments and help by people who know the code base) is good enough. Especially the last point in parentheses is crucial: Asking someone who knows the code base is likely a more efficient superset to text, because asking can be selective, nuanced and individual while a text just stares back at you.

EliRivers 1 day ago 3 replies      
My previous employer (a subdivision of a global top ten defence company) used literate programming.

The project I worked on was a decade-long piece for a consortium of defence departments from various countries. We wrote in objective-C, targeting Windows and Linux. All code was written in a noweb-style markup, such that a top level of a code section would look something like this:

 <<Initialise hardware>> <<Establish networking>>
and so on, and each of those variously break out into smaller chunks

 <<Fetch next data packet>> <<Decode data packet>> <<Store information from data packet>> <<Create new message based on new information>>
The layout of the chunks often ended up matching functions in the source code and other such code constructs, but that wasn't by design; the intention of the chunks was to tell a sensible story of design for the human to understand. Some groups of chunks would get commentary, discussing at a high level the design that they were meeting.

Ultimately, the actual code of a bottom-level chunk would be written with accompanying text commentary. Commentary, though, not like the kind of comments you put inside the code. These were sections of proper prose going above each chunk (at the bottom level, chunks were pretty small and modular). They would be more a discussion of the purpose of this section of the code, with some design (and sometimes diagrams) bundled with it. When the text was munged, a beautiful pdf document containing all the code and all the commentary laid out in a sensible order was created for humans to read, and the source code was also created for the compiler to eat. The only time anyone looked directly at the source code was to check that the munging was working properly, and when debugging; there was no point working directly on a source code file, of course, because the next time you munged the literate text the source code would be newly written from that.

It worked. It worked well. But it demanded discipline. Code reviews were essential (and mandatory), but every code review was thus as much a design review as a code review, and the text and diagrams were being reviewed as much as the design; it wasn't enough to just write good code - the text had to make it easy for someone fresh to it to understand the design and layout of the code.

The chunks helped a lot. If you had a chunk you'd called <<Initialise hardware>>, that's all you'd put in it. There was no sneaking not-quite-relevant code in. The top-level design was easy to see in how the chunks were laid out. If you found that you couldn't quite fit what was needed into something, the design needed revisiting.

It forced us to keep things clean, modular and simple. It meant doing everything took longer the first time, but at the point of actually writing the code, the coder had a really good picture of exactly what it had to do and exactly where it fitted in to the grander scheme. There was little revisiting or rewriting, and usually the first version written was the last version written. It also made debugging a lot easier.

Over the four years I was working there, we made a number of deliveries to the customers for testing and integration, and as I recall they never found a single bug (which is not to say it was bug free, but they never did anything with it that we hadn't planned for and tested). The testing was likewise very solid and very thorough (tests were rightly based on the requirements and the interfaces as designed), but I like to think that the literate programming style enforced a high quality of code (and it certainly meant that the code did meet the design, which did meet the requirements).

Of course, we did have the massive advantage that the requirements were set clearly, in advance, and if they changed it was slowly and with plenty of warning. If you've not worked with requirements like that, you might be surprised just how solid you can make the code when you know before touching the keyboard for the first time exactly what the finished product is meant to do.

Why don't I see it elsewhere? I suspect lots of people have simply never considered coding in a literate style - never knew it existed.

If forces a change to how a lot of people code. Big design, up front. Many projects, especially small projects (by which I mean less than a year from initial ideas to having something in the hands of customers) in which the final product simply isn't known in advance (and thus any design is expected to change, a lot, quickly) are probably not suited - the extra drag literate programming would put on it would lengthen the time of iterative periods.

It required a lot of discipline, at lots of levels. It goes against the still popular narrative of some genius coder banging out something as fast as he can think it. Every change beyond the trivial has to be reviewed, and reviewed properly. All our reviews were done on the printed PDFs, marked up with pen. Front sheets stapled to them, listing code comments which the coder either dealt with or, in discussion, they agreed with the reviewer that the comment would be withdrawn. A really good days' work might be a half-dozen code reviews for some other coders, and touching your own keyboard only to print out the PDFs. Programmers who gathered a reputation for doing really good thorough reviews with good comments and the ability to critique people's code without offending anyone's precious sensibilities (we've all met them; people who seem to lose their sense of objectivity completely when it comes to their own code) were in demand, and it was a valued and recognised skill (being an ace at code reviews should be something we all want to put on our CVs, but I suspect a lot of employers basically never see it there) - I have definitely worked in some places in which, if a coder isn't typing, they're seen as not working, so management would have to be properly on board. I don't think literate programming is incompatible with the original agile manifesto, but I think it wouldn't survive in what that seems to have turned into.

gargarplex 1 day ago 1 reply      
Whenever I'm on a team and I get the opportunity to do code reviews, I strongly encourage it to reduce the Bus Factor
elcritch 1 day ago 1 reply      
The only large project using literate programming that I am aware of is Axiom, a symbolic math system written in Lisp. From their documentation it sounds like it uses literate programming and would be a good resource.

However, a modern version of literate programming is catching on in scientific fields based on Jupyter (IPython) Notebooks. It allows running simulations and embedding results. It's fantastic for exploratory work. The main downside is transitioning code from notebooks to longer term libraries or full applications can be somewhat tricky. Here's a good write up of notebooks and science: http://peterwittek.com/reproducible-research-literate-progra...

klibertp 1 day ago 1 reply      
There are two parts to literate programming. One is the style of commenting and structuring the code, which makes it easy for humans to follow. The other part is the tooling you use when you want to write literate programs, which includes what syntax you use for defining blocks and how do you tangle/weave your code.

There are many tools which support Literate Programming for many different languages. The usual reservation about additional tools applies: each member of a team needs to have it installed, build times get longer, time for a new programmer to start contributing gets longer and so on. It makes many people never even consider LP.

But, it's important to remember, that the tools you use are just an implementation detail. What's important is an idea that source code should be written to be read by humans, not only for computers to execute.

Sometimes there's a need to go over a piece of code with a colleague who doesn't know it. It happens a lot when a new programmer joins a project that has some code written already. This is because to understand the code you need to know the context it was written in. The problem is that programmers often don't document this context enough (or even not at all). This means that reading the code is essentially a reverse engineering someone's thought patterns. It's much more efficient just to sit next to the person and assist him in reading the code by providing a live, context-aware commentary.

LP is "just" that commentary written directly in the code. What's important is that you don't need any special tools to use this style in your comment if your language is flexible enough. Most dynamic languages nowadays are capable of supporting LP style. Don't take my word for it, see for yourself. You can just go and read some LP code. A couple of examples:

 http://underscorejs.org/docs/underscore.html http://coffeescript.org/documentation/docs/grammar.html http://backbonejs.org/docs/backbone.html
As you can see it's a plain JS (or CS). The pages were created with "docco" tool, but you can read the source with most of the same benefits (excluding rendering of maths symbols, which docco doesn't support anyway).

To sum up: LP is not dead, it just changed its form a little. Many people adopted (or invented independently) this style of code structuring and commenting. Many real-life codebases are written in a literate style because it makes a real difference on how long it will take for someone new to grok the code. Such codebases use docstrings and other mechanisms available in the language to do exactly the same thing that previous LP implementations did.

nickbauman 1 day ago 2 replies      
Literate programming tries to make every line of code traceable to English (or some other natural language). It's as hard as writing the same program twice in two languages. Perhaps harder: one is for programming a modified lump of sand. Another is for programming humans. The latter is a lot harder to do well than the first.

Then the question becomes: which one is correct? Maybe it's just easier and cheaper to write in the language the lump of sand understands and be done with it.

eikenberry 22 hours ago 0 replies      
I find that literate programming is something of a code smell. If a program is so complicated that it requires that much commenting, something went wrong during the design process. The program should be the most concise and clear description of what is going on. That is the point of writing a program, to describe the problem to other developers.
mcphage 1 day ago 1 reply      
This is just me, but when I read through the literate programming book, and the hundred or so pages of literate code resulted in a program that could be replaced with a line of bash script, I decided that writing the program succinctly was more important than writing a novel to accompany it.
a3n 1 day ago 2 replies      
I always liked the idea, but it seemed too indirect to me. Software is hard enough as it is, without adding yet another hurdle to get from brain to .exe. IDE's are probably the best middle ground, as they "know" enough about your code to help you find the parts you want.

Besides, literate seems to go against the current view of overcommenting as an anti-pattern.

kyllo 1 day ago 0 replies      
I've seen a lot of Literate Haskell in tutorials and course materials, but not really ever in production code. It's too cumbersome to work with when comments are the default and every line of code has to start with '>'.
chris-at 21 hours ago 0 replies      
Not every developer speaks English. Especially on OS projects.

While reading English might be OK, writing is a different story.

jostylr 1 day ago 0 replies      
1) It ain't dead yet.

2) Tooling/syntax is a big part of it. I like literate programming, but most syntaxes for it turn me off. Some of it also seems very tied to particular languages. None of that helped for a concept that was always going to be a hard sell.

3) I wrote, and am refining, a version of literate programming: https://github.com/jostylr/literate-programming-lib

It uses markdown where headers are the section headers, code blocks in markdown are the code blocks to sew together, and _"header name" is the block syntax. It has a bunch of other features, but that's the core.

My hope is that this might eventually help this style to catch on in some quarters.

4) I am just a hobbyist programmer, but what I enjoy about it is the ability to organize my code in any fashion I like. In particular, I can keep chunks to a screen size. Brackets never go beyond a page. And I can stub out anything I like real easy.

Now in many programming languages, small chunks are easy to achieve in the terms of functions or objects or modules or even just variables. That is, one of the most important in-the-now useful parts of literate programming is implemented in a good-enough version, particularly with good naming conventions and decent commenting. And good enough is what keeps many from using optimal practices. Or rather, and this is important, optimal from one perspective, e.g., literate-programming can easily rub up against "no premature optimization".

On the other hand, I like not using functions for code management. I want functions to be used when a function is really needed. But that's just my preference. I also like being able to see the whole construct in the compiled code put in one place instead of having to trace it out through function calls. But I have never been big on debugging tools; if I was, this would probably be less of an issue.

5) Updating does tend to be a problem in that with the excitement of a new feature or a bug fix, it is real easy to leave bad documentation there. But that would be true of any documentation. Here at least one can quickly look at the code and see that it seems off.

6) One key feature that I like about my system is the management of multiple files, really, a kind of literate project management. I do not know if the other systems did that. This is a game changer for me. When I open a foreign code base, I have a hard time knowing where to start. In any particular file, I can see what is going on, but getting the global perspective is what is missing. Literate project management can tell you what all these files do, do pre and post compiling options (linting, concatenating, minimizing, testing, dev vs production branching, etc.), and allow a true global organization of where you want the code to be. You can have all code, styling, content for a widget all in one place. Or not. There are no constraints to your organization and that is awesome.

It is also a downside. Constraints are powerful tools and when you have a system that allows you to do anything, it can lead to severe issues, particularly (ironically), of communication. I could see teams benefiting greatly from this if they agree on organizational principles and if not, I can see this exacerbating the conflicts.

7) The hurdle to get over is "Is it going to make it quicker to get my code done?" And I don't think previous tools have done this. I am hoping my tool will do this for the web stack. That stack is a mess and we need organization for it. For other programming languages and tasks, I don't think this is as glaring a need. It often feels a lot like just reversing the comments as literate-coffeescript seems to be. In the hands of a master, such as Knuth, a literate programming is a gem of wonder. But for most, including me, it is a different beast and may not be that pretty.

8) Programmers may have an irrational fear of writing. As a mathematician, I see many adults, even programmers, fear math for no reason whatsoever. The same may be true of prose, at least sufficiently so to discourage the desire to use this. Note that I think they could do it, but that they think they cannot. But I am an optimist.

trhway 20 hours ago 0 replies      
there are marble towers and there are dirty trenches. There are only few things that are efficient and matter in the trenches. Putting beautiful marble on the trenches' walls just isn't one of them.
1arity 14 hours ago 0 replies      

It did. It's called culture. You just didn't realize all the ways it programmed your biases and perceptions.


Because it was so successful.

Computer programming, by contrast, is so explicit and obvious. The subtlety is lost. And with it, our humanity ( and ability to be subtly manipulated by forces beyond our comprehension and below our level of conscious perception ! ).

Culture is the original literate programming language. Instruction pointer for the collective mind.Virtual machine of choice ? Books. And your reading of them.


hzhou321 1 day ago 1 reply      
First of all, what do we think is literate programming?

* Is it just interspersing documentations with the code?

* or Is it an idea of writing code in the style of communications?

There is subtle difference. The former is writing code first, then write documentation to explain the code (without changing the code significantly). For the latter, one may still write code, but he is not writing the code just to get computer working; rather he is writing code for the first purpose of communicating (to human).

In the first style, the program, stripping away documentation, is pretty much a working code as is. Yes, in many so called literate programming, the documentation are readily to be compiled into pretty web pages or pdf, but they are just pretty documentation. In the second style, the code is, to large extent, rearranged (to the computer, scrambled) due to the need of expressing ideas to human. Often a complex parser program is needed to re-arrange the code into computer acceptable form -- such is the case of Knuth's WEB.

Maybe I am over guessing, but I think many readers are only thinking in the first style (documentation+code) when they are commenting on literate programming.

And maybe my interpretation does not even fit Knuth's original idea of literate programming, but in my interpretation, the ultimate literate programming is just code, in the style of written language, arranged like a book, and readable by most literate readers (who possess the basic background -- the background knowledge of the problem domain and the background knowledge of how computer runs, in addition to basic set of vocabulary) as is, and with a compiler, can be translated into a formal programming language or machine code directly and run by the computer. I find Knuth's example -- writing two versions of the program (the code and the documentation) -- a compromise due to lack of compiler power and impractical -- who, after spending so much effort get the code written and debugged and barely worked, still have the energy to write article to explain it -- especially with no apparent readers in sight?

EDIT: In a high level view, there is just one code, but two groups of readers/listeners -- the human group and the computer machine group. In the first stage, computers are limited in power and parsers/compilers are dumb, so the code has to cater for the machines, and have the human readers stretch themselves to read the code (in so-called programming language). In the next stage, every day computer is powerful enough and it can take in more background knowledge (common vocabulary, idioms, styles and some common algorithm, scientific facts, international conventions, or individual/group/corporate conventions),and this stage will allow code be written in some sorts of middle ground. Then the final stage is of course with AI that can understand most human communications. I think we are ready to enter the early second stage -- there is capabilities and early signs, with most people's mind is still well stuck in the first stage.

Myrmornis 1 day ago 0 replies      
Ask HN: Golang or .Net? if you were about to build back end for your startup
6 points by pixiez  11 hours ago   12 comments top 4
knd775 10 hours ago 1 reply      
If it is really only a choice between those two, I'd go with C#/.NET for a number of reasons. The main thing for me is that it is object-oriented. To head off a possible complaint about .NET, with the mono project, you don't have to run your code on Windows. That leaves a lot of options open. We run a rather complex .NET application on CentOS using mono without any isssues. One thing to keep in mind, though, is that most newer programmers don't learn C#. You may be able to find people easily that are good with it, but they are likely to be older and more expensive. This may not actually be a downside if you are looking for experience, but I find that older .NET devs tend to be in the 1 year of experience 30 times group rather than the 30 years of actual experience group. This is solely based on my personal experience, though.
bbcbasic 6 hours ago 0 replies      
I am a c# developer of many years, and I know just a little of what GO is about.

I would say it depends what you are trying to achieve.

If it is a regular old web application then .NET will shine, giving you the MVC5 framework which is similar to rails, excellent database mapping, a well integrated web server, authentication and other web concerns out of the box, integration of odata. Let alone the strong typing and excellent generics which is probably the best of the C++esque languages (but its no Hindley Milner but that isn't of much practical importance for a startup).

Maybe use GO if you need it to run cross platform, need to do some insane performance tuning or heavy systems programming. I.e. you are starting a digital ocean or something like that.

Running .NET on linux is possible but may be more limiting. So you are probably running on Windows and the server costs could be higher BUT more than paid off by saved developer costs.

Of course you are also free to use both GO and .NET, using GO where it shines and .NET for the rest of the more prosaic businessey stuff.

On hiring - you will find more .NET devs for sure. Also .NET has been around a lot longer, C# is always getting great new features and there is the excellent F# if you need to do functional programming.

Your biggest consideration as a startup is rapid development and time to market. .NET will get you there faster. Click a button and you have a boostrap-designed, authentication enabled application with a DB back end in a few seconds that you can easily extend. You can get an MVP out in a few hours in .NET.

Without knowing more about your application, I would say it is 99% likely .NET would be a better choice.

davismwfl 10 hours ago 2 replies      
I'd base it on the language and infrastructure/OS I/my team knew best. The worst thing for an early startup to do is to try and figure out new languages or tools when it isn't absolutely necessary. You have enough hard work to solve the business problem, so pick what you are familiar with.

Also, in the end, you will likely change your structure more than once from the first MVP, so I would just make a decision and move forward fast.

As for my opinion. C# is still primarily a Windows environment solution (although its getting better), Golang is a little bit more agnostic but I wouldn't use it anywhere but in a linux environment. My choice would be golang if those were my only two options, mostly because I feel the ecosystem, scaling and cost is better not to be in the Microsoft environment for a startup. However, if you are planning for a Windows based environment, then nothing beats C# IMO.

There are completely valid options that are neither of these languages, nodejs, python or some JVM based languages. I generally avoid the JVM, but that is a personal preference based on my experiences and I recognize plenty of amazing systems are built on JVM based languages all the time.

Recurecur 10 hours ago 1 reply      
"and other languages will not be considered"

That's too bad, as I'd recommend Java and/or the raft of excellent languages available on the JVM.

With C# you're effectively locking yourselves into Windows, which seems a terrible decision from both a cost and scalability standpoint.

With golang you're losing the vast array of open source packages available for the JVM, as well as locking yourselves into a single language which may or may not fit your future needs well.

Scala in particular is an interesting JVM language. Clojure and many others are worth a look as well.

Ask HN: How can we make the world's code discoverable in 10K years?
6 points by 1arity  13 hours ago   5 comments top 3
Mimu 12 hours ago 1 reply      
I don't see the value of saving 'code'.Some algorithms maybe but I do believe the library of Alexandria is about ideas not tools.
airframeng 12 hours ago 1 reply      
Same way we have records from 10K years ago, by keeping hard copies.

Pull the plug and all e-records become inaccessible.

bbcbasic 4 hours ago 0 replies      
Bitcoin blockchain!
GMAIL Passwords on GitHub
10 points by tawrahim  13 hours ago   1 comment top
esaym 13 hours ago 0 replies      
At least for me, since I have a second 3rd party email registered with gmail, if a new device logs in, I will get an email saying there was a new login. 2 factor auth is even better, but a little more of a hassle.
Getting a min-sustain job in Valley?
6 points by jayajay  2 days ago   5 comments top 2
czbond 2 days ago 1 reply      
Freelance at a software or marketing shop in the area. They'll often take part time work, especially if you have an expertise in a "hot" area. I would personally just pick up the phone and call some consultancies and ask to speak to the Director or VP Engineering, or even just ask for their email address.
dopeboy 2 days ago 1 reply      
I'm actually thinking about making the transition out west too - we should talk. PM me.

As far as cash goes, have you considered freelancing?

Off-Heap RAM and SSD Hybrid Storage Solution
6 points by NaomiW  17 hours ago   discuss
Ask HN: Best treadmill to turn an existing standing desk into a treadmill desk?
37 points by voisin  1 day ago   30 comments top 13
xweb 1 day ago 5 replies      
LifeSpan TR1200-DT3 - $1000 everywhere.


Hands down, the TR1200-DT3 is the best treadmill desk out there right now. Their bluetooth app is crap, but as a treadmill actually designed for office use, this is perfect. Read this amazon review for ways to customize the programming to be less annoying:


LifeSpan also has a more heavy-duty model, the TR5000-DT3, $2000. If you're buying for an office setting where multiple people will be using it for more than 6 hours/day, get this one.


iMovR will have a new unit coming out, the ThermoTread GT Desk Treadmill, that MAY be just as good or better, but you won't get it until the end of the year at the earliest.


That's kind of the state of the art in treadmill desks right now. I imagine there will be more options in a year or two, but the LifeSpan models are by far the best options today.

Ollinson 1 day ago 1 reply      
Just a note for all prospective treadmill desk operators. DO NOT use an regular treadmill thinking that you're beating the system. Those things are not made to be used at walk speed for hours a day non stop, you will destroy the motor.

Ask me how I know.

troydavis 1 day ago 0 replies      
I considered a treadmill desk but ended up with a bike desk because I wanted cardio exercise[1] and I enjoy biking more than running. 2-20 minute bike breaks are easier to fit in.

Here's my setup and what I learned: http://troy.yort.com/notes-on-standing-desk/

I also attached an iPad holder (http://www.amazon.com/gp/product/B00D5YUBNO). For someone without a standing desk, the bike+iPad alone would be a great compromise (reading, watching videos, composing emails, etc).

[1]: Most office treadmills are designed for 1.5-2 MPH slow walks because it's hard to type while jogging, let alone running. OTOH, using a computer while biking at 13-15 MPH isn't hard, and using a tablet is easy. More: https://en.wikipedia.org/wiki/Metabolic_equivalent

arosenbaum 1 day ago 0 replies      
I built mine quite a few years ago:https://goo.gl/photos/CrX2pSaAmgnLNM398(The monitor arrangement is much better now :)

Precor 956i with the entire upper structure removed - control panel is not visible but on the left. I bought it from a gym going out of business.

Lift is a Conset 501-11 1B116. I don't remember who I bought it from. Google Conset 501-11 and you will find many Conset resellers.

I made the table top.

It's been going strong for 6+ years. I no longer work at home so I don't use it but my wife does her writing - about 10-15 hours week - on the treadmill.

jarpineh 1 day ago 0 replies      
Short answer to your question is: it depends.

I did recently change my home office to treadmill desk. I'm from Finland, so I won't give any product recommendations. One thing I noticed it is very hard to find information about treadmills that you don't plan to use just for running, and might need to lose the handrails.

Long answer would depend on questions like how much space you have, how much do you weight, budget, planning to run also, do you have a desk already and how adjustable it is, and so on.

I think I only found one site on the net that talked about making your own treadmill desk. As the luck would have, he used the same cheap model I managed to track down (about $200). If you go cheap, it probably fits better and you can get rid of the handrails if need be. If it's more expensive, it probably is so sturdy that your standing desk needs larger adjustments to fit around and on top of it.

For me the Ergotron setup I have needs heavier setup to wall, but other than that, things work fine. When this cheaply made and assembled treadmill I got breaks I don't know if I give up on the concept, since I'd really like to use bigger and sturdier treadmill, but that takes so much more space.

Or you can get specifically for desk use made treadmill and even a desk to go with it. 2000 was the web price here.

Procrastes 1 day ago 0 replies      
I've used a Tread Desk (1) treadmill daily for many years with no maintenance or issues. Just sold it recently before a cross country move. Mine lacked any data integration, but that may be available in the newer models. It's just a flat, low gear treadmill with a control head on a cable, so you can use it with any standing desk or engineering cart.

1. http://www.treaddesk.com/

jke123 1 day ago 2 replies      
Curious - does anyone find advantage being on a treadmill while working? Seems like it would kill my productivity.

If for exercise reasons - its far better to just go jogging / running for a few minutes each day?

brudgers 1 day ago 0 replies      
Could you share your research so far?
thyselius 1 day ago 0 replies      
Slightly OT but is there any other alternatives to moving while in front of the computer? Would love any ideas and hear about your experiences.
haspoken 1 day ago 0 replies      
Ultimate treadmill combining classic style, fine wood work, artistic statement and semi-private work space:


drallison 1 day ago 0 replies      
ChetCode 1 day ago 1 reply      
First off, awesome plan. Some questions to help narrow it down.1: How long have you used a standing desk?2: Do you use it all day or switch back and forth?3: Are you going to want to switch between a mat and a treadmill?4: What kind of desk do you have?
thearn4 1 day ago 2 replies      
For folks who have made the transition, was learning to type while walking difficult? It seems like it could be somewhat nauseating at first.
Dynamic animated GIF
8 points by b_ribeiro  1 day ago   4 comments top 2
starshadowx2 23 hours ago 1 reply      
Mine was close, but wrong neighbourhood. One of my friends said it wasn't anywhere near him.
replete 22 hours ago 1 reply      
API limit :)
Ask HN: How many freelance programmers are there?
9 points by ahfarmer  1 day ago   18 comments top 8
brudgers 1 day ago 1 reply      
It's hard to see the value proposition of a bespoke freelance programmer hourly billing application versus a general purpose book-keeping application familiar to accountants, backed by regular support, and having been debugged over many years of field deployment.

What makes your solution better than Quickbooks or GnuCash?

What percentage of the market for free-lancer programmers can a bespoke product capture?

Why go through all the development effort of a book-keeping program and then only target it at a very limited market?

Good luck.

danielvf 1 day ago 1 reply      
I've been freelancing for 15 years now. Sending invoices is by far my least favorite work activity.

I have my own rails app that handles time tracking, and invoices. (Some customers just log into the app, and pay their bills without my involvement.) I spend about two hours a month on invoices.

pranavpiyush 1 day ago 1 reply      
One way of answering this question is to look at total number of service providers on odesk, elance, fiverr, etc...

This article has some stats - http://fortune.com/2012/11/27/welcome-to-the-age-of-the-free...

jefflinwood 1 day ago 1 reply      
I think that if you look at elance/odesk/upwork, you can actually rule out all of those developers because they get paid through the upwork platform - they wouldn't be sending invoices based on their git history. They might have other clients that they invoice directly, but I wouldn't count on it.
a3n 1 day ago 1 reply      
As many as there are pingpong balls in the schoolbus.
Firegarden 1 day ago 1 reply      
Freelancing for 15 years as well. 1999 was a great year! Sending invoices is my favorite activity. "America is not a country, it's just a business. Now fuckin pay me."
eds2015 1 day ago 1 reply      
What does your software do?
1arity 18 hours ago 0 replies      
I did a market sizing on "programmers" ( not just freelance ) about a year ago, and came up with around 20 million worldwide. If you take the statistic that 40% ( by 2020, or 35% today ) of US workforce is freelance and apply that it would be around 8 million freelance programmers worldwide.

Perhaps a really cool way of doing this sizing would to use "authorship attribution" techniques over webpage javascript to see how many "authors" there were -- tho that could likely be way off as well. Seems like a ridiculously involved way of calculating it tho.

Ask HN: I need a standing desk. Should I buy or build?
5 points by wyclif  1 day ago   18 comments top 13
Donmario 12 hours ago 0 replies      
You can buy a finished product for $350! The side is in Polish but and the delivery time can take up to 3-4 weeks, but it's worth the price. I have one myself. They also have an English website but the price is twice as much, don't ask me why. http://www.ajprodukty.pl/meble-biurowe/biurka/biurka-z-elekt...
lowboy 1 day ago 0 replies      
What about a fixed standing desk with a drafting chair?

I have a Conset 501-27 legs with a custom top, and it's been great. [0]

Last I looked, hand crank desks weren't much cheaper than the motorized ones.


blueside 8 hours ago 0 replies      
Build one with "spare parts" you have laying around and then try it out first and see if it's for you. I've seen a few people go out buy a fancy standup desk and then decide it's not for them. Don't worry, they aren't for everyone.

If you really like (and it takes a good month for you feet to get conditioned to the change) then you'll have your answer :)

cweagans 1 day ago 2 replies      
I went down the route of trying to build one, and it's simply not worth it. To get to a point where you can easily adjust the height on a homemade desk is really, really difficult. You're much better off (both in terms of time and finances) with going with a prebuilt solution.

Here's a few of the commercial options that I considered:

* Crank-adjustable desk frame: www.amazon.com/Ergo-Elements-Adjustable-Standing-Black/dp/B00YE6CRY8 with an IKEA desk top, perhaps. I also considered using a solid wood door that a friend was going to give me, but it was quite heavy and looked pretty bad.

* The IKEA electric standing desk (Bekant): http://www.ikea.com/us/en/catalog/products/S19022530/ A couple friends have had mixed success with this one. If you live near an IKEA, go check it out in person.

* A fixed standing desk and a tall stool (this is likely the cheapest option and would be the easiest to build yourself). Nothing in particular that I can link to on this one, but if you can find something that has the desk top at > 40" from the ground, that's probably a good candidate. I'm 6'0" and my standing preset is at 43.5" (sitting is 27" if you're curious).

* NextDesk - this is the one I ended up going with. I got the Terra (http://www.nextdesks.com/terra) and I'm very happy with it. It's expensive, but it felt a lot more solid than many of the other options that I looked into, and at the end of the day, it's holding a lot of expensive things. I don't want any issues with it, particularly those that result in the damage or destruction of my electronics.

A question, though: you said you didn't want electronics or a motor. I'm curious - why not? I'm assuming you're a developer, and you're going to have a computer at your desk, so there's likely power nearby. Is it a philosophical thing or something?

georgeam 1 day ago 0 replies      
I just noticed that IKEA has a new product called SKARSTA, which is a hand-crank standing desk. This is different from the electric IKEA standing desk that others have mentioned. Lets see if this link will work: http://www.ikea.com/us/en/search/?query=SKARSTAps. I do not own this product and can not recommend for or against it, just saying that it exists.
aprdm 15 hours ago 0 replies      
You should just build one opensource from opendesk


kaolinite 1 day ago 0 replies      
I've heard good things about the Renew[1] by Herman Miller. The IKEA standing desk, as mentioned by others, is a good and more affordable option too - however it does have a motor.

[1] http://store.hermanmiller.com/Products/Renew-Sit-to-Stand-Ta...

justinv 1 day ago 0 replies      
Not sure where you're located, but if you're anywhere in or near the UK, check out Biurko: http://biurkobiurko.com/

Incredibly well crafted (& in full disclosure: made by a friend!)

cdvonstinkpot 1 day ago 0 replies      
Buy & get an extended warranty. Then get back to working on whatever it is that you do, that you're good at.

If you're good at woodworking, build it. You can be better than a warranty- be your own repair guy. I've never checked, but I would imagine there's a community online which can point you to guides & plans/prints.

Either way, I wish you the best.

ramtatatam 1 day ago 0 replies      
Check out what kind of desk does Linus use :-)


ellegiers 15 hours ago 0 replies      
You can get a wooden minimal one from Jaswig.com their Kickstarter launches in 4 hours!
saich 1 day ago 0 replies      
Ironing board. Works great and folds up when done.
1arity 16 hours ago 2 replies      
I like the trestles you can get at IKEA and putting a large table top from IKEA on top of them. The trestles look very DIY / workshop / cave like and you can adjust the height. I'm not so tall so if you are more than 6 ft something you may not find it high enough.

If you don't find any table tops to your liking you can buy solid wood fireproof door blanks at a hardware supply and use that instead. They have serious heft and will last and are relatively cheap.

Having a good high stool to sit on when you don't feel like standing is also useful.

Ask HN: Where do people usually complain?
7 points by AndriusSutas  1 day ago   6 comments top 3
Mz 10 hours ago 1 reply      
I will suggest that one way to find big problems that can make a major difference if solved would be to look for things people talk about as a necessary evil. It signals that they know it sucks as a solution, having no solution is so much worse that they are willing to accept the downside, and they can't even imagine a real solution that lacks that kind of big downside.
AndriusSutas 1 day ago 0 replies      
jeffmould 1 day ago 1 reply      
Your question is kind of vague. Yelp, TripAdviser, Angie's List, GetSatisfaction, and a few others all field both customer complaints and compliments for B2C businesses and even B2B businesses.
A Twist on the Liar's Dilemma
6 points by charleshmorse  1 day ago   3 comments top
insoluble 20 hours ago 1 reply      
> lie like a rug and use the results to your advantage

I have seen and witnessed this proposition in many areas of society. In my opinion, this stance is based on the idea that a given person's lifetime is all that matters. It has completely no concern for the future of humanity or the sustainability of the greater system.

You may not be discovered on your deceptions now, but the effects of them have lasting detriments. And sometimes those lies may come back to bite your children, your nation, your race, your species, or even your planet in the long run. In the social sense, you are a representative of any group in which you affiliate. In the flesh sense, you are a representative of your genes. In the practical sense, you affect the world around you.

Ask HN: Any good guides/examples on writing a research/technical paper?
5 points by sgy  17 hours ago   discuss
Ask HN: What is the simplest stack to learn?
16 points by Raed667  2 days ago   29 comments top 12
rbosinger 2 days ago 1 reply      
It depends where you're at with the PHP stuff. If you're using a LAMP stack (as you mention) but using something like MAMP/XAMPP and keeping it simple, staying away from the terminal or PHP frameworks like Laravel, etc then most of this other stuff will be hard for a bit. Ruby on Rails is always talked about as being "easy" but it's really not at first if you're lacking knowledge of things like package managers, command-line tools, deployment that involves application servers and deployment scripts, MVC patterns, etc.

I'll say this: if you've been sticking to PHP to avoid all these things I mentioned then you'll do yourself a favor by picking almost anything (I'd say Rails or a Node stack) and getting into it. Once you get the concepts of these stacks you can use that knowledge to jump to other stacks a lot easier as well. Eventually it all feels kind of similar. You'd even be fine to stick to PHP but would be a much better PHP developer after nailing some of those concepts.

jnbiche 17 hours ago 0 replies      
Learn the new "HTML5" JavaScript APIs: Canvas, WebSocket, WebRTC, Web Workers, File API, Geolocation, Web Storage, etc.

They're relatively easy to learn, well-documented, and are pretty in demand on the job market.

If you want to take things a step up, learn ES6 JavaScript. It has a lot of very nice improvements, but is a steeper learning curve than just learning new JS APIs.

Regardless of what you do, learn how to use modern, vanilla JS in place of jQuery. There is often no reason to use jQuery these days if you're targeting modern browsers. With `document.querySelector`, you can even replicate the selection capabilities of the jQuery `$`.

LukeB_UK 2 days ago 1 reply      
Use whatever you want and ignore what the rest of the internet says.
sheepmullet 2 days ago 1 reply      
I'd pick a stack with a steep learning curve.

After all, the two most important skills in software development are the ability to learn and the ability to solve problems.

A stack with a steep learning curve is likely to improve both of these skills.

digitalzombie 2 days ago 1 reply      
PHP (Laravel 4)/Postgresql or Cassandra/jquery

For back end, I run Vagrant + Ansible with PHP composer

Front end, it's bower + grunt

My other tools are Vim + Tmux.

For data and webscrapping I use scrapy (python framework).

The current project I have is what I've listed and going to learn Apache Spark and Elasticsearch. I'm currently stuck on learning Ansible to provision stuff.

I think many worthwhile things are going to require some learning curve whether it's steep or not is more up to the individual.

I'm putting off AngularJS, EmberJS, React stuff. I think it's to early. Likewise Docker and container are too early. I'm waiting on perhaps Docker 2.0 and some technical book out. Kubernates in my personal opinion is really an Alpha software there are many caveats.

I'm thinking of moving to Django/Python stack in my next project and tinkering with Apache Accumulo.

Someone 1 day ago 0 replies      
HN uses Arc (http://arclanguage.org) :-)

Seriously: if you fear a steep learning curve, replace one item of what you use now. For example, replace MySQL by PostgreSQL, then replace PHP by something else, then move out JQuery.

zhte415 2 days ago 0 replies      
Depends what you want to do.

That's it.

Don't obsess about changing too much. Speaking with a colleague, he was asked why he chose mainframe as his career.

"It doesn't change much. COBOL, DB2, CICS, JCL, etc. I can learn them and the applications to a deep level, and not worry about that learning going out of date. That lets me focus on getting deeper and understanding the business applications of why we do what we do."

DougWebb 2 days ago 0 replies      
Every answer you get here will be pretty much useless to you unless you describe the kinds of web projects you expect to do going forward. Your current stack may be perfectly suited, or you may have been using an inappropriate stack for a lomg time and making life harder for yourself.

"The right tool for the job" requires consideration of both the tool and the job.

Mc_Big_G 2 days ago 1 reply      
Ember and rails compliment each other very well with many gems like active_model_serializers and devise on the rails side and many add-ons for ember like ember-simple-auth-devise. ember-cli saves weeks of environment setup and includes automated test support.
loopydorothy 2 days ago 0 replies      
I have been working with MongoDB/Node.js/Express/Angularjs and I think it is one of the easier stacks to work with because you are using javascript for the database, client-side, and server-side.
Firegarden 1 day ago 0 replies      
mindcrime 2 days ago 2 replies      
I do a lot of work using Postgres -> Grails -> jQuery, and I'm just now starting to think a lot more about picking a fancy new JS front-end framework to focus on. I'm torn between React and Angular, but leaning towards starting to invest time learning React.
Ask HN: Who/what companies are working on artificial general intelligence?
10 points by arthurcolle  2 days ago   6 comments top 6
brudgers 1 day ago 0 replies      
IBM -> Watson.

The problem with separating one kind of AI from another (such as machine learning) is that anything we do with a computer can be described at as a Chinese Room [1] at a high level of abstraction.

[1]: https://en.wikipedia.org/wiki/Chinese_room

cdvonstinkpot 2 days ago 0 replies      
This sounds like it would be a good question for a service I've had a good experience with called 'Wonder' [1]

They were able to provide an in-depth answer to a question I had asked various communities about & received no answer to.

It's a paid service, charging ~$20 per answer, but I didn't have to pay for some reason- I don't recall. IIRC the first question is free, but I could be wrong.

[1] https://wonderlib.com/request

dennybritz 2 days ago 0 replies      
Deepmind (http://deepmind.com/) comes to mind. It was acquired by Google though. Their vision it is "We combine the best techniques from machine learning and systems neuroscience to build powerful generalpurpose learning algorithms."

AFAIK they work mostly on reinforcement learning coupled with Neural Networks

arthurcolle 2 days ago 0 replies      
*what is the avenue to pursue if you want to work on potentially building thinking/self-aware machines?
nicholas73 1 day ago 0 replies      
Numenta (open source)
1arity 1 day ago 0 replies      
is your goal to contribute to the effort or get mega rich by birthing general intelligence?

if it's the former, work anywhere you feel you are making an impact.

if it's the latter, work in secret until you have the money to protect and launch your ideas.

this business is invested in now as if it is highly lucrative. if you are known and good you'll be agressively poached.

Ask HN: How to find consultants?
4 points by alagunambi  1 day ago   1 comment top
michaelpinto 1 day ago 0 replies      
It sounds like what you really need is sales person rather than a consultant, no? One thing you may want to do is to show examples of the work you have done on your website with links to the actual sites and the apps.
Ask HN: Best tools for scheduling emails with gmail?
9 points by zabramow  1 day ago   8 comments top 6
tima101 1 day ago 0 replies      
Hey, https://mixmax.com/ has scheduling.

http://www.boomeranggmail.com/ has it as a main feature.

Also http://www.getsidekick.com/ will add it soon.

If in doubt, check: https://zen.market/?q=schedule%20emails

Vitaly 22 hours ago 0 replies      
I use my own simple google apps script. Has a benefit of working with any mail program: https://github.com/vitaly/gmail-later

With gmail keyboard shortcuts work like a charm.

bradavogel 1 day ago 0 replies      
I highly recommend Mixmax (admittedly biased; co-founder here :-P). It offers a ton of free features beyond just scheduling emails. You also get unlimited email tracking for free and can put message enhancements in your email (things like link previews, polls, surveys, meeting invites).
CardenB 1 day ago 0 replies      
Google Inbox also has the "boomerang" style feature of snoozing emails.

You can't schedule emails to be sent, however.

Ask HN: Resources on secure coding in C?
18 points by kensentme  3 days ago   13 comments top 8
kjs3 3 days ago 1 reply      
Seconding CERT. Lots of good advice. Certainly the place to start.

Along the same lines are the MISRA guidelines, though they are 1) targeted more towards embedded systems and 2) stupidly not freely available. There's an ISO standard for secure C coding (ISO/IEC TS 17961:2013) which is also not free. While you might not get to source document, there are hundreds of sites that summarize the requirements and recommendations.

SANS has a secure coding track worth checking out.

There's a tremendous amount of useful stuff in the NIST SAMATE project.

The OpenBSD folks write a lot about secure C coding.

Mozilla has some pretty good general advice at https://wiki.mozilla.org/WebAppSec/Secure_Coding_Guidelines

So does Apple: https://developer.apple.com/library/mac/documentation/Securi...

BudVVeezer 3 days ago 0 replies      
I would highly recommend looking at the CERT C Coding Standards, which are available for free: https://www.securecoding.cert.org/confluence/display/c/SEI+C...

One thing to note, they split them into recommendations and rules. Recommendations are more stylistic and open to debate, whereas violations of rules generally result in definite security concerns.

sarciszewski 3 days ago 0 replies      


Not many.

If anyone has any resources to suggest, we'd like to increase our section in the Awesome Appsec list for C programming too. :)

jwdunne 3 days ago 2 replies      
http://c.learncodethehardway.org/ by Zed Shaw is an introduction to C that seems to have emphasis on writing secure C programs. It's an introduction to C so I'm not sure if it's a comprehensive guide to security in C but it does aim to teach C with security in mind, especially buffer overflows.
appleskin 3 days ago 0 replies      
This is loosely related but if I were you I would want to know about it. Casey Muratori is doing a series on game development in C. I find it educational and entertaining.


vu3rdd 3 days ago 0 replies      
Highly recommend the Coursera Course called "software security".


jwdunne 3 days ago 0 replies      

Here is another interesting read, though again not comprehensive.

cylinder714 3 days ago 0 replies      
David A. Wheelers Secure Programming HOWTO: http://www.dwheeler.com/secure-programs/
Ask HN: Good book about statistics and probability?
24 points by lpman  4 days ago   12 comments top 7
akg_67 4 days ago 0 replies      
Based on the books mentioned in your post, I assume you are looking for light readings on statistics and probability. You might enjoy following books.

* Darrell Huff, Irving Geis How to Lie With Statistics

* Ian Ayres Super Crunchers Why Thinking-by-Numbers Is the New Way to Be Smart

* David Salsburg The Lady Tasting Tea How Statistics Revolutionized Science in the Twentieth Century

* Emanuel Deman, Models Behaving Badly

* Benoit Mandelbrot, Richard L. Hudson The Misbehavior of Markets A Fractal View of Financial Turbulence

* Nassim Taleb, Fooled by Randomness

valhalla 3 days ago 0 replies      
"How To Lie With Statistics" by Darrell Huff. It's a pretty old book (1954). But it talks about the most common uses of statistics in everyday life (marketing reasearch and infographics showing extrapolating trends inaccurately) and how the results are often gathered carelessly. Here's a short review by Bill Gates: http://www.gatesnotes.com/Books/How-to-Lie-with-Statistics
sharmi 2 days ago 0 replies      
I would like to add 'Introduction of Probability' by Joseph K. Blitzstein, Jessica Hwang. I actually have not used the textbook yet but I have taken Prof. Blitzstein's Harvard Stat 110 and it has been the best of all online courses I have taken for statistics. I have also heard very good things about the book. Worth checking out.

The problem sets for the course are available free online. So you can have a look at them to decide.

shortoncash 4 days ago 1 reply      
Get "Introduction to Probability" by Dmitri Bertsekas. The solutions are available on the web also, so it makes it easy to work through the problems until you get it.

There's other good books out there, but I still keep the Bertsekas book on my desk, along with Kutner's Applied Linear Regression Models.

znt 3 days ago 0 replies      
Statistics without Tears is a good read. It makes use of very simple examples to explain the concepts.
codeonfire 4 days ago 1 reply      
Well I was going to suggest several textbooks but they are all $250 now. Are you interested in just popular math?
joeclark77 4 days ago 0 replies      
The Nate Silver book is outstanding. Read it. I would then think about one of Nassim Taleb's books, either "The Black Swan" or "Antifragile".
Ask HN: Tools of the trade
25 points by zuckerei  4 days ago   18 comments top 18
elijahlofgren 4 days ago 0 replies      

 Windows Server ASP.NET Github Desktop SVN Visual Studio Brackets - awesome text editor with JavaScript syntax checking and undefined variable checking Jenkins Octopus Deploy Stripe.com Red Gate SQL Source Control Keen.io - not affiliated but wanted to plug since has been coolest thing recently awesome, easy analytics (paid but free plan has 50k events/mo and we've stayed under that so far)

bobochan 4 days ago 0 replies      
My tools changed quite a bit this year. I am using:

 emacs textmate2 R python / pandas jupyter notebooks (python, R, julia kernels) c++ Clojure Common Lisp linux on the server os x on my laptop ipad / prompt2 / pythonista / bluetooth keyboard
Almost all of my serious work is being done in either R or python right now, which is a big change from using more proprietary tools like SAS, Stata, and Matlab.

I think I might have been the last person on the planet to figure out that an iPad with a bluetooth keyboard in a coffee shop or library is a very productive work setup and that I do not need to lug my laptop everywhere.

We are living in a fantastic era and I just cannot believe the amazing free tools that are available for things like network analysis (NetworkX) and spatial visualization (ggmap).

RaitoBezarius 4 days ago 0 replies      
I am essentially using:

 *Development*: URxvt-unicode vim on Linux Sublime Text 3 on Windows Python (and a lot of libs, mainly, requests, Flask, AutobahnPython, Twisted) Rust (my new shiny tool) C/C++ (sometimes, but I try to avoid it) Frontend JavaScript (It has been a long time since I've written some ES5, I write only ES6 thanks to Babel) Node.js Webpack React.js Crossbar.io Git + GitHub Zsh (prezto framework) Fish (on servers sometimes) tmux (a.k.a the productivity booster) virtualenvwrapper (must-have for Python & virtualenv) nvm (must-have for Node.js & NPM) rvm (must-have for Ruby) fasd (when cd isn't enough, j somewhere) *Fonts*: Monoid whenever I can. Source Code Pro. Else, whatever can do the job. *OSes*: Debian on Server Archlinux, Debian, Windows 7 on laptop (1st, fallback on others...) I try to use the most appropriated OS for containers (Docker) *Services*: PostgreSQL OR RethinkDB whenever I can. SQLite when I can't. Redis Docker (+ dockercli) Docker-Compose nginx *SaaS*: Slack Inbox TweetDeck Asana Hacker News (the worst one :c)

pwang 4 days ago 0 replies      
When my startup was <10 people, I used Vim and Git a whole heck of a lot.

Now that we're almost 140 people, I mostly use Gmail, Google Calendar, Sublime Text and Evernote, and Google Hangouts for engineering meetings. But, a lot of those people are using Vim and Git, so it's not all bad. :-)

Of course, we all use Anaconda Python.

Oh, and I read a whole lot less Hacker News.

caffeinewriter 4 days ago 0 replies      
Some of mine:

 JetBrains' WebStorm Node.js MongoDB Redis MySQL MyCLI Git GitLab (Hosted and Self-Hosted) Gulp FireBug Trello Slack CircleCI or Travis, depending on the project WakaTime
I'm sure I'll find some more that I missed on my own list as well.

hackertoolbox 3 days ago 0 replies      
I made a toolbox which includes tools from "Tools of the trade"/"Show HN". Glad to hear suggestions on how to make it (more) useful.


zuckerei 4 days ago 0 replies      
Ok, let me make a start. This is what I use:

 Debian Apache MySql PHP VIM 99designs Upwork GitHub webpagetest.org Google PagespeedInsights Google Analytics

RedNifre 4 days ago 0 replies      
Haskell for large things

Ruby for small things

Java to earn a living (with a bit of Ruby here and there)

(I'm currently evaluating Kotlin and Javascript as well)


OpenBSD on the server

Ubuntu for developing


Android Studio (IntelliJ) for Java

Atom with Vim Mode (and a thousand other plugins that turn it into an OS similar to how I imagine emacs) for everything else



tmaly 4 days ago 0 replies      
VimPerlBashmakeGovim-go pluginChrome Developer ToolslibsassuglifyjshomebrewredispostgresqlGimpDropboxGoogle DocsGoogle CalendarTrelloSlackbitbucket.orgstartssl
mod 4 days ago 0 replies      
UbuntuVIMGitChef / MinaRails / DjangoReact / jQueryDigital OceanFreckleAsana

Various APIs including Twilio, Stripe, MusicBrainz, Amazon, Shopify.

That's most of my professional and/or serious side projects, and then I dabble in other stacks when I can. Clojure lately.

VOYD 3 days ago 0 replies      
I'm mainly focused on web apps so:

VS Online/Visual Studio, Adobe Brackets, Git

C#: IIS, ASP.NET, Node.jsJavaScript: vanilla, jquery, Knockout.js

The modern browser matrix & related built-in "dev tools"

anon987 4 days ago 0 replies      

Last merge was 2 months ago but it has 32 outstanding PRs so maybe he abandoned it.

lovich 4 days ago 0 replies      

 Sublime Text LinqPad VS 2012 SQLServer 2008 SVN Windows 7

erbdex 4 days ago 0 replies      

 terminator/iTerm vagrant travis tmux Twisted ELK

fumar 4 days ago 0 replies      
Google Docs, OneNote, HipChat, Jira, TerminalOne, TapAnalytics
1arity 3 days ago 0 replies      
I use:

 vim on Darwin. javascript es6. chrome canary chromestatus.com chrome apps apis. gae managed vm docker gce python brain

sampwing 4 days ago 0 replies      


Vimium w/ Chrome







GoTo Metting





yellowapple 4 days ago 0 replies      
Well, I guess I'll go from the ground up in each category.


For development machines, I have a company-supplied Macbook Air for work and a variety of laptops and desktops that I use for personal things. The Macbook runs OS X Yosemite. My personal machines almost invariably run GNU/Linux (I've been especially fond of Slackware lately) or OpenBSD. My primary rig has a 122-key Unicomp Model M keyboard and a Logitech M570 trackball mouse, along with two monitors (one 1680x1050, one 1440x900); my desk at work has a 2560x1440 Thunderbolt display, connected to one USB port of which are a Logitech K570 solar-powered keyboard (Mac model) and a Logitech M570 trackball mouse (I really do love these trackball mice).

My primary editor as of late is Emacs. My workflow revolves heavily around fiplr for fuzzy-searching and Magit for git repo management (on Linux / OpenBSD, at least; on OS X I use GitX).

Git is currently my VCS of choice, though this is more out of necessity (since the vast majority of the projects I work on are hosted on GitHub, be they public or private repos; I use Bitbucket somewhat as well, so I've been looking a little bit into Mercurial lately, but I've yet to really use it for real work).

My dayjob revolves around Ruby on Rails programming. As a result, common Ruby-related tools (in addition to, of course, Ruby itself) - particularly RVM and globally-installed versions of Bundler, gemr, and Rails 4 (mostly for the various generators, though I don't really use those a whole lot) - are installed on most of my machines, including the Macbook. My job is more geared toward system administration and backend programming, so I've yet to explicitly install common frontend-development tools (like Node, bower, grunt, etc.) on very many of my machines, but I do have them installed on the Macbook as a precaution.

When it comes to building personal projects, my go-to languages have been Ruby (without Rails; I'm more a Sinatra/Padrino fan) and Elixir (recently with Sugar, which I find to be much friendlier to use than Phoenix). I maintain some private Erlang and Elixir Slackbuilds to that effect in order to track the latest versions of both on my Slackware machines (the Erlang on Slackbuilds.org tends to be slow to update, and AFAIK there's no Elixir Slackbuild at all yet); I've yet to publish them, but probably will in time. I've previously used a lot of Perl in my projects, but other than CPAN, I rarely use any Perl-specific tooling.

For databases, SQLite and PostgreSQL are my go-tos; I stay clear of NoSQL databases (except perhaps CouchDB or Mnesia), since I don't feel that they offer anything compelling over Postgres for my needs.

When it comes to the minimal frontend work I do, I generally steer clear of Javascript; when I do need to delve into JS, I've found Mootools to be nice for my uses. I've been using Yahoo's "Pure" CSS framework for things like menu bars and grids, and I've been quite happy with it so far.


Going into servers, my software stack tends to stick to Slackware or OpenBSD. My mail server runs OpenBSD with OpenSMTPD and a mail pipeline that includes SpamAssassin, spamd, and ClamAV. Meanwhile, for web servers, I generally go with either Nginx or OpenBSD's httpd (depending on whether the server runs Slackware or OpenBSD), along with PostgreSQL and one or more language runtimes (usually Ruby, Elixir, or Perl, inclusively, as described above). I don't really use any sort of config management system (like Chef or Puppet) on my personal servers; I prefer to configure them individually, using Emacs' TRAMP to edit configuration files over SSH.


I do some general electronics repair, too, on my free time. I thus carry around a physical toolbox in my truck with at least basic tools and parts (screwdrivers (particularly my really nice ratcheting screwdriver with a bunch of electronics-specific bits), spare USB/ethernet/power/SATA/etc. cables, wire strippers, soldering iron w/ solder, electrical tape, duct tape, crimpers, spare RJ-45 connectors, heatshrink tubing, zip ties for cable management, anti-static strap, multimeter, some spare PCI peripherals (including a spare dial-up modem card; you never know when you need to fix someone's dial-up), extra keyboards and mice, bag of spare jumpers, spare flashlight (in addition to the one in my glovebox), some sticks of DDR and DDR2 RAM, various AV cables, speaker wire, the works). I have a more thorough superset at home, and a thinner subset at work.


... I think that about covers everything.

Ask HN: Is This Enough to Get a Job?
34 points by ipbyrne  4 days ago   24 comments top 13
bcg1 4 days ago 3 replies      
Your demos might be good... but I can't see without logging in. One suggestion... if you are trying to showcase your work, don't make people set up an account to try it out. Maybe have a demo site specifically for that purpose that doesn't require login or has a demo account for people to use so they don't have to sign up themselves.

EDIT: BTW, this is exactly how I got my first job... I wrote a demo app and showed it to a potential employer. It was enough to get my foot in the door at a place where I had the privilege of working long hours for low salary until I had enough experience to apply for more desirable positions. Confidence and shoe leather can be as good as an formal education... good luck :)

curt4675 4 days ago 0 replies      
Yes. The market is full of uninterested, uncaring, 9 to 5ers. The bar is really really low. Just show up with some excitement and a "can ship" attitude and you will be snapped up in no time.
mod 4 days ago 0 replies      
To answer your question, which nobody else seems to have done:

Yep, they're plenty to land you a job.

panorama 4 days ago 1 reply      
> "Do these apps that I built 100% myself demonstrate enough skill and understanding in web development to land a entry/mid level job?"

Like others have mentioned, this in particular is hard to evaluate without a. source code, b. demo login. Otherwise, all I can glean from this is that you know how to make landing pages :P

But I wanted to point out some design issues I found in your sites. This may or may not actually affect your candidacy, but I thought you should know about them in general as it might signal a lack of attention to detail:

a. Ex: https://i.gyazo.com/205c90719b7e16c19d29fba8b27006c9.png - the error messages are unstyled.

b. Ex: https://i.gyazo.com/fa23a197fa0adb4f8fc0a9aa88ae3797.png - the error message here is too small for me to read.

c. Ex: https://i.gyazo.com/fa3dcbe0c61735b8f958d4d556f57526.png - This is nearly impossible for me to read.

Basically this would signal to me that you're likely not too design-inclined and I would probably focus more on your backend abilities (if given source code). These would be red flags if you were applying for a position that involved design or UX though.

theGREENsuit 4 days ago 0 replies      
I think it's definitely enough to get you hired. It's also exactly how I landed my first job. During the interview, the senior developer that did the hiring made a point of mentioning that having a demo project showed what I could do and made me stand out from the other applicants he was looking at. Good luck!
27182818284 4 days ago 0 replies      
The logging in is a bad practice for demos, like the other person said.
threesixandnine 4 days ago 1 reply      
I can't see sh!t. I really, really wanted to read what to do list app is all about but I just can't. Light Blue and White just don't work well together.

As far as landing a job. I see you already got a lead. I feel like dumbass now. These kind of apps I made just for fun with web.py and felt it's way too simple to pitch similar demos for a job. Even entry level ones.....I think I am suffering from imposter syndrome.

Good luck to you and thanks for reminding me of some things....

ipbyrne 3 days ago 0 replies      
Alright guys for any one who made comments about the landing pages I have removed them for demo purposes so you can now see more of the app with out having to be logged in or sign up. You just need to be logged in if you want to post,like,etc. I hope this enhances the demo experiences!
fiveoak 4 days ago 1 reply      
Is the source for these projects on GitHub?
chad_strategic 4 days ago 0 replies      
I am self taught web developer! <---- Awesome.


joshmn 4 days ago 0 replies      
Confidence and (this part is tricky) the _ability_ to show your willingness to learn is often more than enough to get yourself any job :)

Best of luck! I think you'll do just fine! :)

johnnyg 4 days ago 0 replies      
Checked out your demos and your blog, sent an email.
pravint 4 days ago 0 replies      
Ask HN: Methods and guides for engineering a great project name?
6 points by 1arity  1 day ago   discuss
       cached 18 August 2015 04:05:02 GMT