hacker news with inline top comments    .. more ..    17 Jul 2016 Ask
home   ask   best   12 months ago   
Ask HN: How should the CLI be designed today?
72 points by danfrost  1 day ago   80 comments top 33
Udo 23 hours ago 5 replies      
My primary complaint about Unix CLI is that the commands try to do two disparate things simultaneously: outputting text for humans and generating data for consumption by other commands. In a properly designed command line ecosystem (it's far, far too late for that now), there would be good human readable output in one mode, and tools would exchange structured, already escaped data amongst themselves in another mode. Alternatively, the shell would render the output for humans, and tools would just communicate in machine format.

Consider for example executing a compression command on all jpg files in a folder and below. Currently, the syntax goes something like this:

 find . -iname "*jpg" -exec gfxcompress {} \;
Naive Unix users would have expected this to be achievable by piping, but no! In reality there is a special syntax of the find command that does this, and it's not completely clear how you would deal with file names further down the line, or how you would achieve further chaining. This syntax is also completely unique to the find command. You can't just plug in another data source and perform the same operation. In a CLI where tools are designed to be chained, it would look something like this:

 find | match :name="*jpg" |> gfxcompress :name 
In this example I used an imaginary |> operator to indicate I want something performed on every item, and I can refer to the "name" field of each directory entry directly. If I wanted to filter by time, for example, I might use the :time field instead, without any need for explicit support. If I wanted to mutate the name somewhere in the chain, I could do it. If I wanted to chain additional commands, it would be obvious how. And it would just work.

The same goes for error handling. Imagine a compiler spitting out structured error information which you could use directly in other tools without having to parse and interpret it first.

jhallenworld 5 hours ago 1 reply      
History should be recorded in non-volatile storage immediately, not just on clean exits (can do this in bash, but it needs to be the default).

You should be able to step though history for just arguments (can be done in bash, but needs to be easier).

Take a look at TOPS-20: it had "question-mark help"- any time you hit ?, it told you what the next argument is for.

The terminal emulator should have inline graphical output- it should not be text only. Someone should define a protocol so that you can have full graphical programs running in the terminal emulator. When you exit the program, the last view remains in the scroll-back history.

Some plan9 things are good: network access should be in the filesystem so that you don't need special programs like wget: cp /net/www.google.com/http/index.html foo

Same with local I/O: parameters for opening a serial port should be part of the filename when you open, something like: cp foo /dev/ttyS0:9600n81

The filesystem should be extended to also be a database. SQL is ugly, but some kind of relational algebra query language should be built in:

 cat /mydatabase/name="joe" is like 'select * from mydatabase where name="joe"'

vasili111 15 minutes ago 0 replies      
It should understand human language. Not commands, functions and etc, just plain human language.
viraptor 23 hours ago 0 replies      
I'd basically like to have powershell. Potentially with a better introspection and attributes so that you can build a more interactive CLI. For example output size estimation + tagging local read-only commands to allow showing some output preview as you combine the commands. On-a-side display of help for arguments.

My pet hate is that commands themselves cannot tell you things about them in a structured way. There's no reason why completion and --help are somehow separate from the execution itself.

Love: context aware shell like zsh/oh-my-zsh provide. If I'm in a git project, show me a good git summary for example. If I'm in python venv, tell me about it. If I'm in some python project, extract its name from setup.py.

gue5t 23 hours ago 0 replies      
Don't google errors. Don't network anything that isn't explicitly requested to be networked. Don't give any built-in affordances for HTTP or other poorly-designed, politically-imposed protocols. I don't even know what you're talking about with microservices, as that notion only makes sense in the context of implementation details of RPC services ("Cloud APIs" in 2016 parlance).

A modern shell would:

- Never use text as the interchange format, but rather keep binary representations in memory and link all commands in a given interaction into a single computation, doing inlining and optimization across the boundaries of what are currently separate processes communicating via pipes/IPC.

- Know about the structure of valid invocations of commands (essentially, their type signature and the algebraic type structure of their parameters), preventing any "invalid invocation" error messages a priori. Only valid options would be permissible for tab-completion, and un-tab-completable options would give error feedback directly without executing the program.

- Have a principled, data-race-free alternative to the filesystem for persistent storage of data, which maintains type information without preventing useful generic operations like bytewise encryption.

- Support unicode as the only character set for text.

- Encourage proportional fonts, so as to make box-drawing characters not work properly. An associated UI system would permits applications to refer neither to character cells nor pixels, but only to a graph of modifiable or immutable values and a set of presentation hints. Platform-specific modules would interpret these based on the capabilities of the local terminal. Full graphical applications over SSH are trivial under this model--no more "I use a shitty 1980's-era UI because that's the only thing I can export across the network consistently".

- Allow addressing both local and remote system resources (RAM, CPUs, I/O devices) via a uniform interface, and allow dynamically attaching and detaching these from running processes, both local and remote.

- From a more traditional shell perspective, it seems important to support "by" operations with good ergonomics. This is stuff like "sort all these files based on the output of applying this other file-accepting command to each" or "filter out all paragraphs in a text file containing the string 'foo', but only print the last seven characters of each one.".

These would be a start.

kranner 6 hours ago 0 replies      
I'd like to leave this cautionary tale against getting too clever from the Jargon File:

Warren Teitelman originally wrote DWIM to fix his typos and spelling errors, so it was somewhat idiosyncratic to his style, and would often make hash of anyone else's typos if they were stylistically different. Some victims of DWIM thus claimed that the acronym stood for Damn Warrens Infernal Machine!'.

In one notorious incident, Warren added a DWIM feature to the command interpreter used at Xerox PARC. One day another hacker there typed delete $ to free up some disk space. (The editor there named backup files by appending $ to the original file name, so he was trying to delete any backup files left over from old editing sessions.) It happened that there weren't any editor backup files, so DWIM helpfully reported $ not found, assuming you meant 'delete '. It then started to delete all the files on the disk! The hacker managed to stop it with a Vulcan nerve pinch after only a half dozen or so files were lost.

The disgruntled victim later said he had been sorely tempted to go to Warren's office, tie Warren down in his chair in front of his workstation, and then type delete $ twice.

bizzleDawg 1 day ago 1 reply      
As an aside, in terms of design and little helpers (e.g. git/virtualenv) powerline shell really made my terminal much more friendly: https://github.com/banga/powerline-shell

Idea: proper graphics for data/image/video display.

I think it's an interesting idea that a terminal editor can have text only input, but the ability to draw real high-res graphical output. e.g. a canvas to draw your matplotlib diagram in the terminal output or a more graphical version of htop (with time data graphs etc).

saynsedit 23 hours ago 0 replies      
Would love something that showed you how the current command was going to be parsed as an argument vector before actually submitting the command (pressing return). Would help with spacing and quoting.
nextweek2 12 hours ago 1 reply      
My biggest pet hate is the single tasking. Which is more to the nature of scripting languages. It would be great to have an event command queue.

<rant>Each time I do a npm, apt-get, brew command it irks me that all the downloads happen then they unpack, then they process. Where really it should be put on an event command queue. That way downloads can continue whilst processing is happening.

I have the same bug bear about the GUI, if I want to transcode a set of videos and move them to a NAS it's a linear process. I keep promising myself I should write a small app to get it done properly. I just wish the operating system was a little better at it. The main pain point is that if I send 10 files to my NAS it will transfer them all at the same time and take forever because of the seek time. What OS's should be doing is queuing up these things to make the transfer quicker.</rant>

majkinetor 9 hours ago 0 replies      
It should look exactly like Powershell. Its simply a space ship compared to any other shell.

Since it is comming to Linux you should start learning it now IMO.

Xiki also had promiss. Unfortunatelly, it doesnt look like it will become mainstream.

random_upvoter 23 hours ago 0 replies      
In TCC/LE (a CMD replacement for Windows by JPSoft) there is one little feature that I miss in Powershell because I got so used to it: if you just enter the name of a folder (as if it's a command), you change dir to that folder (so no need to type the 'cd').

In Powershell you just get an error that this thing is not executable. A waste of semantic space, IMO.

ubuntourist 15 hours ago 1 reply      
Although, through a long career, I've become accustomed to a wide variety of CLIs, I tend to agree: We've moved beyond 1999 a bit. The fact that a lot of these systems have legacy and tradition isn't sufficient. Languages like COBOL also have a long history. But now we have lots of other languages to choose from.

First off, as much as possible, I'd eliminate non-words. I tutor a lot and people think perhaps I have a speech impediment the first time I say "grep". (Yes, I know, it's not technically part of the shell. But okay how about "fi" and "esac"? Really? Why not "enod" then?)

I'd take command completion further: IDEs often have drop-downs and function signature descriptions as you move along coding. In a hypertext world with tooltips, etc, I think there's be a lot of room for those types of ideas.

I do think the philosophy of "do one thing and one thing only, but do it well" is a good one. Piping stuff together is wonderful. I wonder if it would make sense and be shorter to explain in plain English, if the "water flowed the other way" instead. For example:

"sort the output of the find result" = sort | find

as opposed to:

"take the output of find and sort it" = find | sort

(That last bit was just a random thought of the moment, just trying to think a wee bit outside of the box.)

alexkehayias 1 day ago 1 reply      
Easier inline editing of command args i.e accidentally executing the script when trying to enter a newline.
woodruffw 1 day ago 0 replies      
Hyperlinking is good, we should do more of that.

I have my urxvt configured to open http(s) URLs in my browser, but it would be nice if I could open URLs of arbitrary protocols via handlers. Similarly, being able to distinguish valid pathnames and open them in $EDITOR/$VISUAL (or perhaps via special file-type handlers) would be a nice.

Overall, I'm not particularly dissatisfied with the state of the command line in 2016. My experience has been that I make no more (or fewer) mistakes with command-line interfaces than I do with graphical ones, and that spending a few seconds thinking about what I actually want to do prevents me from using the wrong approach (i.e., a graphical or console program) to a problem.

0x37 23 hours ago 5 replies      
If we could start with having working ctrl-c ctrl-v that would be great :). (I know Windows improved on this with 10 but Linux is still lacking)

Other than that I wouldn't mind some graphical features, such as being able to display thumbnails of images for example.

abbasaamer 12 hours ago 0 replies      
It'd have the features of fish shell (https://fishshell.com) and would be able to pipe structured objects between programs like Windows Power Shell.
josh-wrale 16 hours ago 0 replies      
I've tried using Elixir's iex as a login shell. It was an interesting experience. The pipelining in Elixir actually makes it feel a lot like bash. In Elixir, remote shell [1], autocomplete are built in. Strings are binary. Structs help structure output for human vs machine use (e.g. see HTTPoison.get("http://example.org") vs. HTTPoison.get!("http://example.org"). Processes are cheap. Functions are compostable. Rock on!


tedmiston 1 day ago 1 reply      
Autocomplete globally for every command and its subcommands
myroon5 1 day ago 2 replies      
Default support for control-f searching output
modeless 23 hours ago 0 replies      
A standard method for programs to provide help, examples, and tab completion suggestions to the shell. Right now we have man, info, --help, -help, -?, etc, and tab completion is part of the shell rather than the apps. If all of that was standardized the tools could be much better.
y1426i 19 hours ago 0 replies      
I find CLI a great interface. Its just stuck in pre web days! Here are some thoughts on its design / UX -

- contextual help. if i write a command incorrect, it should suggest correction and link to more help.

- cloud storage of all my command history

- be more understanding. talk a bit in natural language. Eg. show my ip address -> translated to the right shell command.

- learn and grow automatically as the community builds more tools. Like, hey used this command but check this one out!

It is not feasible to upgrade all existing scripts to adhere to this but a wrapper shell that can provide this functionality should be very well possible.

lsiebert 23 hours ago 0 replies      
You should have a separate output for humans, instead of having a flag for it, and programs which are the last in a chained series should default to it, but you could also redirect stuff to it in the middle of piping.

I'd love if the bash shell language was less clunky.

jonsg 10 hours ago 0 replies      
A good CLI has to satisfy a number of conditions, IMHO:

* Human-friendly interaction:

-- Command completion

-- Help for all commands

-- Doesn't need a load of APL-like runes in order to achieve anything

-- Intuitively obvious, so far as possible

-- Low bar for entry

* Not too verbose (something that requires the equivalent of COBOL's "ADD A TO B GIVING C" ain't gonna roll, sorry!)

* Sensible and consistent

* Embeds a full programming language - but you don't need that language to run straightforward commands

* Completely embraces parallelism without pain

-- Including being able to spin off and manage daemon processes

-- And having a painless way of managing (plumbing, in other words) inputs and outputs of each stage - {Uni,Linu}x shells haven't really improved the way they do this in over thirty years, and they didn't get it right the first time!

* As much as possible of the operating system's capability should be exposed, to as deep a level as possible, through the CLI

* Not tied to one operating system - inherently capable of being applied to any (or at least any common one)

My preference would be that the CLI presents a genuinely object-oriented representation of data and the programs that know how to interpret the data, plus the operating system services as well.

Microsoft's PowerShell satisfies a lot of these requirements...however, it falls way short of the "Low bar for entry" criterion, as anyone who's tried to learn it casually will have discovered the hard way.

A Pythonic shell could also be made to work (yes, I've tried using Python as a shell. No, it didn't go well), but would require a bit of nurdling to bring it into compliance with most of the requirements above, particularly the human interface ones.

A lot of questions here - a lot fewer answers, but I thought I'd throw out these thoughts for the assembled masses to contemplate, be inspired by, or tear to pieces.

dlitz 23 hours ago 0 replies      
I'd like to see a good CLI design involving sandboxing-by-default, and handling object-capabilities (e.g. file descriptors) as first-class objects.

Right now, "convert a.jpg b.png" passes the strings "a.jpg" and "b.png" to ImageMagick's convert command, but that command is free to open whatever files it wants, since there's no distinction between strings vs resources such as filenames, network sockets, etc.

You can do this with pipes in simple cases, and bash has some support for this, but it's very primitive and the syntax is cumbersome.

xwvvvvwx 22 hours ago 1 reply      
Black Screen has some pretty interesting ideas:


hellcat84 6 hours ago 0 replies      

 int main(int argl, byte* argb)
For having just a byte* stream, not claiming this is a char, when I just have a byte of a char, and without terminating NUL character.

z1mm32m4n 23 hours ago 0 replies      
If you have a little sense of humor, Gary Bernhardt spoke at length about what effect a better terminal environment could have on things like terminal based editors:


J_Darnley 1 day ago 1 reply      
People say Windows' Powershell using some sort of objects rather than a text stream is good.

For me I want better control over how my shell records and stores history. I want it to record more and probably not in a flat text file. I don't want it to write commands that fail to disk but I do want them in my history so I can correct my typo and run again.

I'd like lines to be rewrapped if I change terminal dimensions. I'd like more automatic pagination (rather than forgetting to use less and nuking your scrollback). I think is an issue with mintty/putty but I'd like its command history to be printed correctly after changing the terminal width.

Pet hates: terminal bells that I didn't explicitly ask for; middle click paste; the obscure terminfo file that sometimes controls the features a program uses.

softEngg 1 day ago 1 reply      
Koshkin 23 hours ago 1 reply      
Looks like IPython Notebook is almost an ideal way to interact with a computer (as an information processing device, rather than, for example, a game machine).
joelthelion 23 hours ago 0 replies      
It should have a daemon to centralize things such as command history across multiple terminals.
joelthelion 23 hours ago 0 replies      
A modern protocol to communicate with the terminal would be nice.
Ask HN: Dad fell for tech support scam. How to help him several states away?
5 points by chrisgd  18 hours ago   5 comments top 3
leesalminen 18 hours ago 1 reply      
Yes, most likely a full HDD wipe would suffice.

I'd do a quick google on the make/model/OS of the system to see if it ships with a restore volume. If not, walk him through the DVD restore.

saluki 8 hours ago 0 replies      
Is it still in the return window where you could return it and start new fresh out of the box?
brudgers 14 hours ago 1 reply      
The degree of compromise depends on the sophistication of the attackers. It might just be unnecessary credit card charges. It might be that plus full system control.

My take is that the only way to assess the level of compromise is to see if Intel's Asset Management Technology [1] has been enabled. That means looking at the BIOS. It might be easier to ship the computer back and forth than to walk through diagnosis and repair.

Good luck.

[1]: https://en.m.wikipedia.org/wiki/Intel_Active_Management_Tech...

How to Partitioning Data for Linear Scalability in Geospatial Queries?
4 points by ninjakeyboard  14 hours ago   4 comments top 3
brudgers 2 hours ago 0 replies      
This podcast talks about scaling Second Life which has a strong geographic component:


My naive intuition is that sharding on two or more axes with some denormalization makes sense: e.g. sharding on both geospatial location and information layers. Infrequently modified elements that overlap several geospatial regions could be stored alongside each. This implies eventual consistency and high availability. On the other hand, some elements might need higher consistency and therefore have lower availability.

Which is to say that the proper architecture is one that allows accurate metrics and high levels of tuning based on actual use and application requirements.

Good luck.

ninjakeyboard 4 hours ago 0 replies      
I found this - may be relevant. http://arxiv.org/abs/1509.00910
SamReidHughes 13 hours ago 1 reply      
Having to query against 2 or 4 nodes is not bad, because you can and should run them concurrently, so you've still got the latency of one query. I wouldn't want to overlap data because that opens a new door for inconsistencies to occur.
Ask HN: How would you growth hack a hedge fund?
11 points by caruana  1 day ago   14 comments top 6
nugget 1 day ago 1 reply      
Are you really a hedge fund in that you actively hedge your positions or are you just an actively traded long-mostly fund that calls themselves a hedge fund because it's a trendy label? What benchmark do you compare yourselves to? Are you sure you haven't outperformed the market simply because REITs have been such a strong asset class since 2010? It's extremely unusual for any actively managed funds to consistently beat their benchmarks net of fees, and those that do, typically have no problem attracting huge amounts of capital (to the point where they lose their ability to outperform). A Random Walk Down Wall Street by Burton Malkiel [http://fave.co/29ZnkN6] is a fantastic book for anyone who wants to learn more about why this is.
jklein11 1 day ago 1 reply      
Can you explain how you serve middle class investors?

Only accredited investors can invest in hedge funds. The requirements for becoming an accredited investor, as described by Rule 501 [1] state that an individual's net worth, excluding real estate must be over $1,000,000 or have an income of over $200,000.

I think one of the biggest struggles to "growth hacking" a hedge fund are the regulator requirements. [2]

1. http://www.ecfr.gov/cgi-bin/retrieveECFR?gp=&SID=8edfd12967d...

2. http://www.investmentfundlawblog.com/resources/marketing/mar...

floki999 1 day ago 1 reply      
An RRSP in and of itself is not a fund type. Similarly to a 401K it is an account which holds investment positions (e.g. Mutual funds, ETFs, single-stock positions).

As for 'growth hacking', that's really not a mindset I would recommend for any investment strategy. First, think of the asset class (real-estate), the investment strategy and the securities/investment products involved: can you scale them up and be as profitable? If you can demonstrate that you can, then growing the AuM shouldn't be too hard. 'Growth hacking' sounds like smoke and mirrors - I wouldn't recommend that terminology with investors.

floki999 1 day ago 1 reply      
Caruana- as a more constructive comment, I would say your question is more one of marketing retire than investment strategy. In that sense, one advice I would give is to focus on customer education. The majority of funds, whether they are institutional funds or retail funds, do a poor job of educating clients. Especially with technology involved - a client who understands, is comfortable and truly engaged about your technology will probably stick around longer in the not-so-good times. From a sales point of view, education is a differentiating factor. My 2 cents, Canadian.
izyda 17 hours ago 0 replies      
Could you go into detail about how you are technically advanced relative to your competition?

Would be curious to hear what that entails / differentiates you from other investment firms in the same space. The alternative data space taking off among hedge funds is pretty interesting, and I'd be interested to hear how a real estate fund approaches it.

Ask HN: What's your favorite way to save money?
157 points by jmaccabee  4 days ago   182 comments top 64
rufus42 4 days ago 2 replies      
This app changed literally my life. YNAB! https://www.youneedabudget.com

It takes time to get used to, but after 6 years on and off, I am using it for the last 8 months regularly, and I already saved enough money for the next 4 months in advance.

This, and in addition, read https://www.amazon.com/Early-Retirement-Extreme-philosophica...

You don't need more, trust me.

But, of course, what these two have in common, is simply:

1. Spend much less than you earn2. Try to just spend 30-40% of your income, but an emergency fund which stores 6 month worth of money, and then invest the saved money.

What I recommend, is a little game:1. Don't eat out for a whole month2. Don't do any big purchases for a whole month

You will see how much many you usually spend, and how your mind is triggering you to buy things. It will be really hard, so instead of thinking about "oh no, I shouldn't buy this", just write a note on a piece of paper everytime you want to buy something.

At the end of the month, you will see how "stupid" you were to want a certain things. If a certain things come up on this list over and over, then maybe it could be useful.

faebi 4 days ago 6 replies      
For me the simplest solution is to have a second bank account I never take money from. Then every time I get my salary a certain amount gets moved to the savings account. I do not miss money I never really had.Additionally some days before my salary all my money above a certain threshold gets also moved to the savings account, so that I have the same money every month, even when I spent less.Also I have my I am poor level. When I have less than 1000Fr/$ I cut my spending to very basic things like food only. This protects me from depth and touching my savings.

All of this is easily possible in nearly any bank in Switzerland, I am not shure about the US or other parts of the world. Hope I could create some inspiration.

drinchev 4 days ago 15 replies      
My father always says : "saving money is the beginning of being poor".

So I always try to save money by thinking how can I make more. These days money = time is a strong equation, so just don't loose your time and use it in a way to make money.

Stop thinking about saving money and spend your thoughts on revenue stream. That's why I rarely use services like that and don't count the pennies ( I'm neither rich nor bragging )

bluedino 4 days ago 1 reply      
Since this turned into a personal finance thread, how about favorite ways to spend money?

Starbucks. Every morning. Latte and a danish/cookie/muffin. $7.00 * 30 days = $210.00

Eat lunch out. Every day. And not with a coupon or fast food, but a sit-down restaurant. Sandwich, fries, soda, tip - $12.00. Every weekday, that's $240.00

Vending machine snacks, my job doesn't offer free snacks. $2.50 for a Mt. Dew/chips when I get that craving at 3:30. Every weekday, that's $50.00

Spend more at the grocery store than you would eating out a restaurant. Throw food away, don't eat your leftovers, buy expensive meats, cheeses and fancy ingredients. $150/trip or $600/month

Now that we're past the daily items, let's go into the monthly expenses.

SUV instead of a small car. $600/month and another $250/month in insurance, $60/week in gas. $1100/month

Buy a new MacBook. Every year. You sell the old one but you're still spending another $700 on the new one and sales tax. Don't forget to buy a new case/decal for the new one.

Upgrade your phone. Every year. Buy new accessories for it, and get the mammoth dataplan. This can be $150/month.

Frivously spend $100/month on iTunes purchases. Songs you don't really like, movies you don't even end up watching, games you'll play once and never open again.

Drink heavily! What else are you going to do with $70/night? Inebriate yourself a few times a week.

Piss away $25/week on lottery tickets. Might as well try, right?

Impulse purchases under $500? Don't even worry about it. GoPro, new tablet, latest game console, high-end pots and pans for your house - just buy it!

s_kilk 4 days ago 2 replies      
I just record all my discretionary purchases in a spreadsheet and recoil in horror at the end of the month.

My monthly spend has been steadily dropping since I started doing this about six months ago.

EDIT: I seem to have misunderstood the topic of this thread, but, as another commenter puts it, the best way to save money is to not spend money in the first place.

tummybug 4 days ago 1 reply      
My method which is my least favourite but most successful was to marry a quite frugal woman. I was never the type who had any money left at the end of the month but have just put a 55k deposit down on a new house and have money left to furnish it (about 2 yrs of saving). I also have a young child, live in a nice area with high rent, have a car and have many hobbies which I enjoy regularly. The main savings have come from cutting back on expensive impulse purchases, the second would be cutting down to one coffee a day and bringing my own lunch to work. Next on my list is to quit smoking which should also greatly increase my savings ability.
papacoen 4 days ago 0 replies      
Personally, I save money by not buying stuff. Otherwise I tend to buy secondhand. Requires some sort of lifestyle to get this to work, since you don't always find stuff the moment you need it.Not needing/wanting to spend money, is also a (new) mindset; appreciating or even realizing/knowing what you already have. Yes, this is very close to tree-hugging-hippie-style-living, but what the heck :)Also: never, ever spend money you don't have. Don't borrow money. Maybe for a house, but never, ever for a car, t.v., laptop, whatever.
tedmiston 4 days ago 1 reply      
1. Fatwallet

Until it was acquired a few months ago I was a longtime user of FatWallet to make a few percentage points back on the dollar at many stores.

2. Jet Anywhere

Jet.com has an incredible cash back program called Jet Anywhere. While the number of stores is small, the percentages are very strong. For example, 20% back at Nike or Saks Fifth.

What I'm getting the most out of though is plane tickets. Flight purchases through them get 5.6% back via Orbitz or 4.8% back via Expedia. After verifying you completed the travel, they dispatch cash back in the form of Jet Cash in 30 days. Many items on Jet are equal or cheaper than Amazon, so this is effectively cash. 5% back on plane tickets becomes a significant amount of money very quickly.

By the way they do not have a Chrome extension and I have interest in working on one.

3. Cash back credit card

I also purchase everything on a card that gives 2% cash back on every purchase without exception. This is literal cash off your bill, not a rewards program.

I've received $100+ back from the first two methods, and even more from the third.


I'm really passionate about the topic of "money hacking" and happy to discuss more via email if you're interested. I'm currently writing a few blog posts on personal financial habits myself.

jasonpeacock 4 days ago 2 replies      
How about something that prevents purchasing, or forces a 1-day wait. The best way to same money is not to spend it, and most of us don't need half the stuff we buy....
onion2k 4 days ago 1 reply      
I read a lot of philosophy books. They taught me to think deeply about the things that make me happy, and it turns out most of the things that make me happy are essentially free (reading, coding, etc).

I doubt it'd work for everyone, and it would be tricky to turn in to a Chrome extension, but something that put a Stoic quote in to Amazon's checkout page might help people.

kamaal 4 days ago 2 replies      
1. Learn cooking: Saves a lot of money, healthy and a lot of long term advantages.

2. Learn to do the 'beginning with the end in mind': A lot of us here in India go and buy a plot on a reasonable loan, and then try to clear it off within 2-3 years. This way you get to acquire a resource, make a investment, and are forced to save up every month to clear the loan. This is more like forced savings. Repeat this for a long time, and you will get really really rich.

3. Keep a diary: Keep a habit tracker, try to get a continuous streak of $0 expense days.

4. Pick up a hobby like music: Gets you entertainment without bills for TV/Cable and things like that.

5. Buy for need and durability: Don't buy everything that you see people buying. Buy only if you need something and buy durable stuff.

There are a range of other things I do. But it might get a little too long for a HN post.

eswat 4 days ago 0 replies      

It wasn't until recently that started to cook my own meals every day. I felt time was always time limited when I worked for a company so I would get takeout a lot. Especially in my time in Toronto due to the large amount of good places to eat at. Switching to eating predominantly stuff I make has saved a lot; next to rent food was my biggest monthly expense.

Phone plan:

In Canada carriers have different plans for each province, with the prairies getting the best deals. It's gotten so ridiculous that there's a "black market" where resellers sell SIM cards from other provinces and carriers trying to lock that down.

Anyway I lived in Manitoba and got a phone plan there where I'm paying half the cost for 3x the amount of data and features I would get in Ontario. The only downside is that most people calling me would get dinged long-distance since I'm using a Manibota number in Ontario, but Canada-wide calling plans are so common for mobiles now that I don't feel guilty about it.

fleitz 4 days ago 2 replies      
Ad Block Plus, no ads, no desire to purchase the products I didn't see.

Seriously, not buying stuff / eating out is the best way for me to save money, especially if I spent the time that I would have been shopping / going out, working.

Something that might be an idea is linking to a savings account and adding a button beside the purchase link on amazon, etc, like "Save money instead, if you saved $56.32, you'd have $2345.54 in total savings" it would be epic if it went into a GIC or something not very liquid.

simonbarker87 4 days ago 0 replies      
I save money the old school way - envelope/budget system.

We have a current account for day to day expenses (groceries, toll road pass top up, a couple of meals out) and the same amount gets out in that at the start of the month. Then with a separate bank we have an account for all direct debits and standing orders (mortgage, electricity, internet, phone etc) including a standing order to an investment account which we view as a monthly expense (we are essentially paying ourselves but it's taken monthly so no excuses to miss paying it), so we put the same amount in to that every month.

We then have a number of savings accounts that cover the various expenses that crop up on an irregular/long terms basis. Holiday fund, clothes fund, Oh Crap! fund, TV License, insurances, christmas/gifts etc. We know how much needs to be in these by the time a payment is due (say annual payments) so each month one 12th of the amount gets added so when the payment is due the money is there. For gifts and christmas we adjust as we go on a six monthly basis, basically by Christmas we know we need a certain amount and it's great come November and all of christmas is paid for.

Any money left over gets put into a either investments or a big pot for a large purchase we may want to make in the future (eg, property).

Historically we have tracked expenses with a web app that I wrote however recently have switched to Pennies on iOS.

For cash back we use Quidco, to reduce monthly costs we look at moeysavingexpert (Martin Lewis's old site).

Beyond that we often check if something counts as lifestyle creep - the tendency to needlessly upgrade aspects of your life just because you have more disposable income that before. If we see a habit developing that costs extra money or we are making a big purchase we have a quick chat and ask if it's needless lifestyle creep? Sometimes we decide it is and we're ok with it, other times we'll decide that in the long run it's not worth the extra spend so stop.

Seems to work for us.

bybjorn 3 hours ago 0 replies      
Favorite way? No apps, just automatic monthly savings the day after I get my salary.
codegeek 4 days ago 2 replies      
Give me a chrome extension that always alerts me if I am missing a possible coupon on an e-commerce site that I am on. For example, automatically check sites like retailmenot.com etc and tell me possible coupon codes for a product i may be checking out without applying any coupon. Bonus points if u also apply that coupon for me :)
cylinder 4 days ago 2 replies      
I would love a Chrome extension that converts all dollar figures on the page into a the number of hours of work at my salary it would cost.
thesignal 4 days ago 0 replies      
Since I set a goal for myself(hose/flat/something like that), I looked for a lot of ways to save money, my tips are:

- keep track of every cent spent, i started using GnuCash, but there are a lot of other solutions available- don't buy yourself a lunch every day, make a sandwich at home, or buy a thermo-box for warm food (this saves me ~30 every week)

- if possible, drive by bike instead of the car or public transport

- i changed my petroleum gas and power provider and save about ~100/y

- my opinion about coupons and "best deals" (on the web) is: they only mislead you to buy something you don't need. I only use coupons for grocery, and here you also need to be careful and compare the reduced price to prices of other stores.

- instead of going to the cinema/restaurant my girlfriend & I make picnics in the park or nature near, sometimes a bottle of wine + glasses is sufficent ;)

- second hand buying, ebay doesn't have the good deals anymore i think, but there are other (local) platforms (maybe there is a plugin which cross checks other platforms and puts it next to te amazon price tag?)

Ntrails 4 days ago 1 reply      
There are a bunch of apps that help you spend money more efficiently - but I always feel they're in the lower % of effective saving, and the real answer is 'choose not to buy that thing'.

So my question is - are you looking to help people buy thing x more efficiently (and I'm not sure there's a lot of unment need there), or to help people not spend at all (in which case monetisation becomes contrary to the goal of the app).

ehnto 4 days ago 0 replies      
I often frame my not-spending as a positive revenue, which works really well for small items. Don't run your business this way though!

For example, I didn't buy a coffee on the way in, that is five dollars more at the end of the day than I would have had otherwise, so the question becomes "Do I want five dollars for doing nothing?"

I have some habitual spends like that which are much easier to cut down on if I think I frame it that way.

vemv 4 days ago 2 replies      
There's https://digit.co :

Every few days, Digit checks your spending habits and removes a few dollars from your checking account if you can afford it.

samblr 2 days ago 0 replies      
Eat out LESS - invest in kitchen appliances :). I wonder now how I lived without a FOOD PROCESSOR and ate out/prepared not so good food. Must haves food processor, a flask, a good lunch box. Take home food to office, beach, parks. Life gets so much better. Though one cannot avoid an occasional icecream on a summer day ;)

Invest on health - buy an exercise bike, bench/squat rack instead of gym. Saves a lot of time and money.

Property investment - dont know need to learn.

3eto 4 days ago 0 replies      
Buying second hand. From utensils to a motorbike, the amount of money I have been saving is insane. Perhaps if the extension showed me the second hand value of the item or when available, where to get it?
CalRobert 4 days ago 1 reply      
I live in a city where I don't need a car.

I brew my own beer (fortunately I enjoy this activity, and I live in a place with very high alcohol taxes).

I eat little meat.

meric 4 days ago 0 replies      
I never buy anything unnecessary if I'm counting how much financial impact it's going to have. I don't have a car, but if I do, it's because I need it for the income, or because I have so much money buying a car feels like getting a packet of chips. "Why not, looks like something fun to do.".
timwaagh 4 days ago 0 replies      
you might look into helping people save people money on their work commute. i save something like 232 euro each month by commuting outside of peak rail times (meaning i spend just 99 euro each month on this). but I'm not sure what the costs are for other options (if i bike it would cost more time, if i get a car then there is a number of costs to take into account). an app might analyse all the options and give people a good overview of the pros and cons.
dsfyu404ed 4 days ago 4 replies      
Since nobody else said it.


If it flies, floats or fks it's cheaper to rent than to buy.

If you can't stay single at least avoid kids...

I know that won't be a popular opinion but the numbers don't lie.

pjc50 4 days ago 0 replies      
Essential life habits: reduce, reuse. Do I need to buy a new thing? Do I have space for the new thing? (housing floor space costs a lot here) Am I really going to get good use out of it? Can I just use the old one or buy something good enough from a charity shop? Can I make do with the $2 Chinese electronics solution?

Beyond that, review your regular expenses. Anything daily or monthly. Is that subscription still good value? Mortgage interest rate and payment schedule optimal?

About once a year or two I'll pile my downloaded bank transactions into a spreadsheet and look at the biggest categories.

I'll also reccomend moneysavingexpert.com to anyone; UK-focused but great general advice. I'm not a big fan of coupons as they're mostly a way of getting me to buy things I wouldn't otherwise, which isn't actually a saving.

kyleblarson 4 days ago 0 replies      
Zillow: use it to buy a house that's not in the Bay Area and move to a place with a reasonable cost of living.
ogandda 4 days ago 0 replies      
Here is a chrome extension - Honey - that deals with coupons.


johnloeber 4 days ago 1 reply      
Not quite on-topic, but I think that for a normal tech worker, it's usually easier to increase your revenue stream than to increase your savings.
hkmurakami 4 days ago 0 replies      
Automatic deduction into a 401k plan.

Separate bank accounts for everyday spending and long term saving.

LukeFitzpatrick 1 day ago 0 replies      
I stumbled upon this, which I think is pretty cool, www.wealthnation.com (every time you spend money on your card, it rounds up your purchases to the nearest dollar and saves them for you). On the other hand, you also have Robo-advisors like "Acorns" who do the same thing, but instead of saving it - they invest it shares.
ziggit 4 days ago 0 replies      
I like simply using the approach of pretending a portion of my income doesn't exist at all. I've got a Money Market account that I shuffle money over to automatically, and in a reasonable enough quantity that I don't have to run the risk of tapping into it.

I make a point to never look at my paychecks and never check the balance of the account, and instead simply deal with my post tax, post saving total.

It doesn't lend its self to an app, but it has served me well over the years.

jheriko 4 days ago 0 replies      
not spending. :P

its a shame banking services are still pretty archaic in their infrastructure - with secure access to user data through a good, secure, api, i'd love an app that would give me alarming notifications if i was spending money out of my account. :)

Zelmor 2 days ago 1 reply      
GnuCash, definitely. Habit of my lifetime is to enter all expenses and incomes on a daily basis. It makes you accountable, and once a month I can sit down and check on financial plannings, where we are and where we ought to be.

YNAB is a paid SaaS whereas Gnucash is free, libre and has a nice mobile client to accompany it. Mobile also uploads to cloud storage, from where you can auto-import on desktop client startup.

s3nnyy 4 days ago 2 replies      
Saving money is primarily a mindset. Tools might help but in my opinion they are absolutely not needed.

Reading http://earlyretirementextreme.com/manifesto.html helped me to get the "saving money mindset" into my bones more than any other resource.

orthur_b 4 days ago 0 replies      
I am using this spreadsheet https://www.reddit.com/r/personalfinance/comments/2tymvf/poo... for budgeting
myroon5 4 days ago 1 reply      
I also created a Chrome Extension that searches for the best discounted electronic gift card on Raise.com to help people save money.


Rmilb 4 days ago 0 replies      
I live in a 126 sqft Tiny house I built my self with my partner. Saves an incredible amount on rent.
Havoc 4 days ago 1 reply      
I like the CamelCamelCamel.com extension for amazon. It does something useful - shows me price history graphs so that I can see if that 40% discount is actually a discount or a sales tactic...and they also allow me to set alert for the stuff I buy in bulk but need regularly (toothpaste etc).

The amazon prices seem to fluctuate enough to make this worthwhile.

Gustomaximus 4 days ago 0 replies      
For me a good way to save money is 'not have it' and not get used to spending it. Each pay cycle I move set %'s of my income into 5 separate accounts.

These are;

Daily spending, risky investments, safe investments, lifestyle savings (e.g. holidays or other luxury spends) and bills/fixed expenses.

Often I will dip into lifestyle savings if I overrun my daily spending.

The best simple extension would be to have something that tracked my current spend for a month against time left in a month for my 'daily spending' account. But not sure I'd want to give just anyone access to my bank details.

grecy 4 days ago 0 replies      
In the past I quit my job and spent 2 years driving from Alaska to Argentina on my savings.

Now I've done it again and will spend 2 years driving around Africa.

By far the number one question I get asked is how do I save money to do all of this - it's become a huge topic of discussion.

I wrote an eBook on the topic - called "Work Less to Live Your Dreams" which describes exactly how I'm able to do it.


pm24601 4 days ago 0 replies      
How about modifying the displayed price to reflex the cost of the item after cc interest.

If person is going to put something on a cc, display the price after 6 months of interest has been applied.

arc_of_descent 4 days ago 1 reply      

 * Walk a bit more so I save money on my drive to work * Work from home most of the week * I've stopped eating/ordering outside food dramatically * Stopped smoking cigarettes almost 15 months now * Reduce alcohol consumption * Turn off fans, AC, TV at home/office
And of course, investing. I usually force myself to invest whatever money I get in stocks or forex trading.

cdnsteve 3 days ago 0 replies      
I physically put a piece of electrical tape over my Visa card number. It sounds completely weird but I encourage everyone to do this. You'd be amazed that when you whip out your card all excited to buy something that it really, really makes you embarrassed to use it in public. Aka save the money, or you can't afford it.
sawthat 4 days ago 2 replies      
Don't use credit cards. I also recommend YNAB: https://www.youneedabudget.com
amerkhalid 4 days ago 0 replies      
Before I purchase anything, I read reviews, both positive and negative for balanced views. A lot of time negative reviews change my mind, even when product is rated highly overall. Though it is not intentional for me but I guess if someone is trying to save money, show them negative reviews first.
JamesBarney 4 days ago 0 replies      
Instead of buying a house, bought a triplex. I save about $2,000 a month in rent/mortgage from this one decision, and it only taxed my willpower once. And I get to go out with my friends and loved ones as much as I want without running into any money problems.
bechampion 4 days ago 0 replies      
I do something that's been working for me:i save X amount every month ... if I save > X then it makes me happy , the rule is never save less than X , whatever it takes.I don't buy expensive clothes anymore or go on the piss massively you now it's all about balance.
danieltillett 4 days ago 0 replies      
The best way is get your income above your interest in spending money. I buy everything I want and I end up saving money because I earn more than I spend. It helps that I am not that interested in consumer goods, but I can't think of a better way to save money :)
sickbeard 4 days ago 0 replies      
Frankly.. do boring things that don't cost you a thing. Stay away from vices (bars, pay to pay games, tech gadgets you don't need etc). Spend money on things that last, a nice bed, nice shoes, reasonable car, your family.

Live.. but don't waste.

patatino 3 days ago 0 replies      
I know myself and my spending habits, so I have an account at another bank, no online banking, no credit or debit card. If I ever need that money I have to go to the bank.
kearneyandy 4 days ago 2 replies      
I like https://paribus.co/It automatically requests refunds for things you buy online that drop in price. It's nice because it's very passive and it's basically found money when it works.
fuzzfactor 4 days ago 0 replies      
Be a producer, not a consumer.
paloaltokid 4 days ago 0 replies      
My strategy:* use mint.com for budgeting and expense tracking.* a budget line item is "savings".* set up an automated transfer from my direct deposit checking account to my savings account. * fire and forget.
kwc98 4 days ago 0 replies      
Growing a pony-tail. I have not had to pay for a hair-cut in more than 1.5 years. When I get a little neck trim-up they only cost 10 dollars. Haircuts are expensive.
koolba 4 days ago 0 replies      
Create a chrome extension that somehow keeps people working as if you're busy making money, you're generally not spending it.

Something that disables access to HN would probably be enough.

sdegutis 4 days ago 0 replies      
Show me a free alternative to some product show-cased on HN.
return0 4 days ago 0 replies      
tmaly 4 days ago 0 replies      
from this book the richest man in babylon, I like the simplicity of just putting aside 10 percent to start.

It build up over time, and it is dead simple to implement.

artur_makly 2 days ago 0 replies      
simple..move to a country where your USD = (3-5)x.
start123 4 days ago 0 replies      
Automate. Automate. Automate.
pramit 4 days ago 2 replies      
> The stock market gives 10-11% returns on an annual basis.

Before 2000, maybe. Not so much since, especially if you took the two rides all the way down.

Ask HN: Best daily practices u've come across to design-code faster and better
45 points by samblr  2 days ago   32 comments top 15
jskulski 2 days ago 2 replies      
I try to setup a feedback loop as soon as possible. I spend time setting up so i can do some simple action (hit a button, run a command, or automatically watch some files) to see if I'm on target it.

I found this saves immense time and keeps me on task pretty well.

This is from:- GOOS book https://www.amazon.com/Growing-Object-Oriented-Software-Guid... - https://www.youtube.com/watch?v=nIonZ6-4nuU

ozten 2 days ago 2 replies      
touch typing - some folks don't learn to type quickly without looking

tmux - per project, persistent terminal

shell aliases - stop typing frequently used commands

GTD - some form of productivity process like Getting Things Done, including a prioritized TODO list

hot reload - don't accept slow development cycles

timeboxing - avoid rat holing a day or two away on a low value task

programmer notebook or wiki - document steps or arcane knowledge for the next time

hard coded - unblock yourself for missing data or dependencies

user testing on paper prototypes - save months of throw away code

tmaly 2 days ago 1 reply      
I like keeping functions small and writing tests first.

When you are under a lot of pressure to finish something same day, it helps to know all the basics are working by automatically running your tests.

jneumann004 2 days ago 0 replies      
When I get to work, I try to get any distractions out of the way before I start actually working; email, rss feeds, project management, etc. This allows me to focus on the important things throughout the day and not worry about if I missed something that happened.

Since I get the distractions out of the way in the morning, I will know what I'm working on throughout the day and not have to change gears unless something urgent comes up.

greydius 2 days ago 1 reply      
Spend 99% of the time thinking, 1% of the time typing.
yladiz 2 days ago 1 reply      
It's not really along the lines of IDE, tools, etc., but one thing that's been helpful for me is to bounce ideas off of someone, even if you're trying to remember something, and the act of explaining or working through my thought processes helps me pieces together "mental puzzles". This is also known as rubber duck debugging.

I've had multiple instances of talking to a coworker about a topic, and halfway through the topic I realize what I was going for and cut it off, saying, "I got it! Thanks for being my rubber duck."

tboyd47 2 days ago 0 replies      
I like to do exploratory coding in an interactive shell, then when I've accomplished something, save the readline history to a file and refactor it into a reusable module with tests. This works in both Ruby and Python.

Over the years I've developed a pretty good sense for when I've gone too far down a dead end. Some people try and dig their way out, I prefer to just turn around. It helps when you delay the design stage as much as possible. Makes it easier to let bad ideas go.

lgunsch 2 days ago 0 replies      
Aside from using TDD for years, a few incredibly helpful tips I remember daily out of the book titled Test Driven Development: By Example, by Kent Beck:

Test lists - plan out a feature/system by listing out its tests. I do this in the form of behaviours and required inputs.

"Start small or not at all" - begin coding by doing the simplest super basic pieces first. You can then start the harder pieces last with a more informed complete understanding of the problem.

Edit: formatting

im_down_w_otp 2 days ago 0 replies      
1) Spend significant time understanding "why", not just "how and what" things are going on in your local problem, and also do the same at least 2-3 layers above and below you in the stack. You should be able to walk away from any significant piece of work with functional expertise in at least two domains related to your local problem.

2) Carve out the time and space to make 3-5 variations of a unit of work before considering it minimally complete for iterating and building upon.

3) Pay really close attention to feelings of pain and/or drudgery when implementing something. Very often those are signals your design and separation of concerns are wrong, because you're fighting uphill against your problem space.

meagher 2 days ago 0 replies      
Walk around and think.
aymeric 2 days ago 0 replies      
Learn your IDE shortcuts.
tedmiston 1 day ago 0 replies      
When the code is something tedious, I keep a physical timer on my desk and timebox a working solution to 1020 minutes, then (as long as it works), I move on after that. No need for perfection with everything.
teknologist 2 days ago 0 replies      
Things that I find helpful:

- an ability to restore clipboard history (alfred on mac or hain on windows)

- snippets

- keyboard shortcuts

- toast notifications for lifecycle events (test and linter failures, CI build events)

- having enough monitors (I tend to arrange mine in an way so that the leftmost shows designs, the middle is for my IDE and the right one shows live output)

- most of the things already mentioned

ofcapl_ 2 days ago 0 replies      
currently I'm into switching all keyboards to same model in work and at home (muscle memory boost)
MollyR 2 days ago 0 replies      
drawing prototypes on paper
Ask HN: Why Y Combinator? Why not Y Combinator?
11 points by yeukhon  1 day ago   7 comments top 6
brudgers 1 day ago 0 replies      
Among the reasons not to do Ycombinator would be a desire for a business that isn't built on the startup model, where "startup" is used in the specific sense it's used among Venture Capitalists and not the more generic sense of "new business".

Some people want a business that lets them focus performing the service rather than running the business, e.g. a consultancy, a workshop, etc. A chef might open a restaurant so that they can create a menu and stand in front of a stove and talk to diners enjoying the work of their hands. That's different from opening a restaurant in hopes of franchising it so as to become a restaurant industry executive.

auganov 4 hours ago 0 replies      
Well the right question is why would one pick a different incubator over YC. There's a multitude of great reasons for not going with an incubator at all. Or going with an angel that you really love.I'm sure some might pick NYU over Columbia but it's rather rare. I doubt there's many that turn down YC for another incubator. When they do the reasons are probably pretty specific to the company's/founders' situation.
brianwawok 1 day ago 1 reply      
Well incubators are really cool for a younger person with no family and kind of not good for older people with houses and families. I would be interested in hearing about anyone 35+ with a family and house who made YC work.

So that would be my guess on a large segment of the population that dont persue incubators. And if you dont apply obviously you wont have an offer to accept or reject.

tedmiston 1 day ago 0 replies      
Any incubator or accelerator being the right fit is really dependent on the company.

None are right for every company, and as you may know, incubators and early stage accelerators have exploded in growth over the past couple years (there are so many now, and not all are worth your time).

Vetting that any one has worthwhile resources for you is important. Mainly you're thinking of longterm benefits like the network they provide and not shorter term ones like how much cash they exchange for 310% of your company.

The best way to get advice about any accelerator is to talk to founders who have already gone through it about their experience. You can easily find YC companies and early- to mid-stage founders are more likely to reply to your emails. Though a referral from a mutual connection would be best, you can reach any YC co with the founders@ email.

By the way -- this advice is about improving your odds in applying to YC, once you're at the offer stage it's a different question. I don't know many founders that would turn down the YC offer after being accepted.

untilHellbanned 1 day ago 0 replies      
It's good for young people same as college. The value is in credentialing (and notch in belt confidence building). You learn most professional lessons while doing your job which has little to nothing to do with YC per se.
Ask HN: When Twitter is going to fix it's URL shortening?
6 points by vikasr111  1 day ago   3 comments top 2
mikecke 1 day ago 1 reply      
This is not big of an issue you make it out to be.
Ask HN: Ruby Dev, is moving to PHP a step backward career wise?
20 points by sfrailsdev  3 days ago   24 comments top 20
usernamebias 3 days ago 0 replies      
I think a resume with Ruby, Python and soon PHP it will see very little resistance on the job market. Like the universe, programming languages burn really hot for a while then, depending how hot it burned, they cool off very slowly. Sometimes even reigniting. God I love metaphors. My thoughts are, don't see it as a step down or back, see it as a widen field of vision. Cultured, season devs are hotter than any language will ever be. Also, never settle.
craigmcnamara 3 days ago 1 reply      
I'd wonder why they're pressuring you to move to PHP. I've written PHP in the past, and recently started maintaining a site in PHP through a company acquisition. Normally I prefer Ruby on Rails and have used it since Rails v1.2.3. I consider PHP to be a step backwards technology and tooling wise. Laravel seems like the nicest copy of Rails, but it seems like everything nice in PHP is a crude copy of something from the Ruby/Rails ecosystems.

Frequently in PHP I found myself missing a proper REPL, yes PHP can be run interactively with `$ php -a`, but it doesn't print the last returned value, so spelunking in a running system is slow and awkward, luckily I've found Boris(https://github.com/borisrepl/boris) which is more like IRB or Pry, but it's still unpleasant when I'm trying to kill a tricky bug. On the package management front Composer is a better solution than previous PHP offerings, but it's got some quirks that make it seem unpolished compared to Bundler.

If I was given a choice PHP I would never willingly pick PHP. I suspect your company is pressuring you to move because they think they can get PHP devs at a lower cost than Ruby devs. If you're in the Bay Area there are plenty of companies that will hire you to write Ruby so you don't really have to switch if you're not comfortable with it.

saluki 2 days ago 0 replies      
I moved from Rails to Laravel (PHP).

If they are moving to Laravel it's a great framework, go for it. Some parts you will like even better than Rails. Hopefully it's Laravel, it's by far the best php framework. (my opinion).

Pay for Laravel projects and jobs are approaching rails work so I wouldn't worry too much about pay or opportunities.

If anything you'll be more valuable because you know both.

I would keep at least one personal rails project going so you keep up with updates, whats new and can roll in to a new rails job in the future if needed.

Keep your Rails skills sharp and you can keep Rails prominently on your resume.

Good luck.

themtutty 3 days ago 0 replies      
Do you want to work for a company / team that pre-judges based on the acronyms in your technology list?
hidden_sheepman 3 days ago 1 reply      
There is nothing wrong with Php, I would think that if your worried about companies looking at your resume I think they would be concerned more about the project you wrote than the language it was written in.

To add to this comment, Solving problems is more important than the language you implement the solution in. You can write good Php code and the same goes for any other language. At the end of the day the result is what matters. I personally think your putting to much emphasis on the language.

kapv89 1 day ago 0 replies      
Career wise, no. Learning wise, yes, its a step backwards. PHP has nothing new to offer.

If you want to stick to api/backend dev, pick up node, its "async everything" mindset is very hard to turn back from once you become accustomed to it. One big benefit of this would be getting good at javascript, which can help you become a proper full stack dev(browser, and mobile with react-native).

If you want to explore systems programming, or high perf computation, golang is a good option.

Or switch to a completely new area of programming, like data science, where python has a stronghold for now.

siscia 3 days ago 1 reply      
My thought is that you should aim to do something different from what you are doing now.

Just change language is not a step forward nor backward.

Keep doing the same type of application over and over with always the same set of constrains and problem is not a step forward.

I wouldn't worry about change language... I would be worry about don't change the set of problems you are facing and the kind of tool you are learning.

(with tool I don't mean "git" or "make" but I mean mental tool, paradigms, ideas.)

nedsma 2 days ago 0 replies      
If you're not dramatically excited to code in PHP, don't do it. I'm not comparing PHP vs Ruby/RoR vs some other tech stack, it's just that there are quite many new exciting technologies that might be a better choice. I've seen it many times developers leaving companies because they didn't find satisfying companies' new technology choices.
johnward 3 days ago 0 replies      
Anecdotally, I've been applying to a ton of jobs over the past 2 years. PHP compensation is much lower than Ruby by my observations. However, having multiple languages opens you to a wider market. I'll see "senior PHP developer" jobs that are trying to pay $40k-60k. Where those senior roles in a Ruby/RoR shop are almost always six figures.
yolesaber 2 days ago 0 replies      
atsaloli 3 days ago 0 replies      
What are your career goals? (Where are you trying to get to?)
justanotherbody 3 days ago 0 replies      
I think the kind of php you'll be working on us critical here. Will this be modern php, or are you being asked to switch to an old framework entrenched in the company?

If there's a genuine opportunity for growth and learning with modern skills i think you will always be able to spin that positively

pyb 22 hours ago 0 replies      
It's fine, just leave it off your resume afterwards (or have it on there as a secondary skill) if you find it embarrassing.
niftich 3 days ago 0 replies      
Learning, but especially becoming well-versed with an additional language/platform is never a backwards step.

There are places that hire solely on what language you're using right now, but there are also companies that know better, and look at your total experience.

niroze 3 days ago 0 replies      
Someone told me something 20 years ago, "adapt or get left behind" and I think that applies here.

You need to adapt to the changing technologies, even if they aren't as awesome to you personally. Why pigeon-hole yourself? I'd rather hire someone that is adaptable without stubbornness for technology (and usually an ego).

PHP used to be royal crap, but it has a ton of good stuff in it now-a-days, at least feature and performance-wise.

Being adaptable and open to learning more about programming languages will be much better for a career. Are you a programmer or not? Do you love programming or do you love a specific language only? Overcoming challenges and implementing business needs is one of the best things ever!

Aeolun 2 days ago 0 replies      
PHP is a perfectly valid language. If your entire team is working in PHP, consider moving to PHP as well. There's nothing making it better or worse than RoR (well, maybe a few things that are slightly nasty), and having experience with another language and it's quirks is going to be quite valuable in the future.
cweagans 2 days ago 0 replies      
PHP developer here. Highly recommend Laravel if you have a choice. It's basically PHP On Rails.

Also, as someone who has been writing PHP for what many would consider too long, I can safely say that there's always tons of work to be done. Not all of it is pretty, but it pays the bills, and there's a lot of really interesting organizations out there that you can work for.

mdholloway 2 days ago 0 replies      
PHP won't win you any cool points, but there's still a whole lot of it running in production.
cdnsteve 3 days ago 0 replies      
What are the other devs backgrounds on the team?We just switched from PHP to Python and the whole team loves it.
howlett 3 days ago 1 reply      
You have the opportunity to get paid to learn another language. Give it a go, if you don't like it look for something else and by that time you'll have proof that you can pick up new (not 'recent') languages quickly.

But if they ask you to work with PHP 5.3, leave.

Ask HN: Is Microsoft sabotaging older versions of Windows?
16 points by _Understated_  3 days ago   35 comments top 9
teh_klev 3 days ago 2 replies      
> but I have a batch file I run after every Windows update to get rid of the spyware stuff so that isn't an issue.

Could be that over time whatever your batch script is doing is possibly interfering with the correct operation of OneDrive. You might need to review whatever it's disabling/hacking and make some adjustments. I doubt Microsoft are deliberately trying to sabotage your machine. I suspect whatever your script does is probably not documented well, or is doing "not-recommended" things that may be trampling over incremental updates to OneDrive and unexpectedly and subtly clobbering the way it functions and/or the things it expects to be there. There can be some surprising dependencies in Windows, and Windows does evolve over time due to patches and fixes.

edited: to fix my english

nhemsley 3 days ago 0 replies      
Who knows, but at the end of the day, they are only going to have so much resources to deal with older versions of Windows.

They seem to be operating with an attitude that if they can get as many people as possible to use their newest version of windows, that they will save money by not having to deal with such a diverse environment of versions.

Something tells me they looked at the way companies like google release their updates often, and by default. Release numbers are becoming less important, more of a tool for developers to use (which is what version numbers were invented for, before marketroids don't got a hold of them). Perhaps a light went on when they saw that chrome just quietly updated, without any fanfare about 'upgrading' to new whole numbers, large features just got included when they were ready, from whichever version they were releasing at the time.

This approach makes alot of sense ongoing, and in the long term. Developers in the past got used to having various versions of their desktop software being in the wild, and it was a part of life. Then people started going, hey with the web, I only need to be supporing one version of our codebase, which is actually pretty awesome. Google came along with chrome and decided that it made sense to have as few versions in the wild as possible. It seems Microsoft is playing catchup with this, but they still have large releases of windows, with interface changes between large versions, which causes folks like you to want to hold onto older versions. Seems they are still working on fine tuning their social engineering.

WorldMaker 3 days ago 2 replies      
I can be programming something in Visual Studio on my desktop and then an hour later I decide to use my laptop and it hasn't syncd

It sounds like you are looking for an almost live real-time sync. It's not really a use case I think OneDrive has ever prioritized. Certainly it tries its best, but I remember having a lot of issues with the timeliness of OneDrive sync in Windows 8. (It feels like sync has gotten better in 10's client, even with the two steps back in usability.)

I don't think they are intentionally sabotaging it; I would suspect it's more that you've found edge cases in the sync platform.

That said, you may want to consider a different sync platform intended for closer to real-time sync. BitTorrent Sync has been useful to me in that category.

Spooky23 1 day ago 0 replies      
It's not a conspiracy. They just suck.

Try supporting a large O365 environment. Whenever there's a major product release that uses Azure Active Directory, you end up getting redirected to new end points for auth.

Since they also suck at publishing their IP ranges, your users get screwed with random fail until you update your proxy and firewalls.

Office ProPlus is joy too. Try running that on a distributed network where bandwidth is at a premium. Fun UX.

davismwfl 3 days ago 0 replies      
I'd say you are seeing development tradeoff's that they are having to make. Likely code bases, like the one for OneDrive sync, is shared across multiple versions of Windows. That comes with tradeoffs though as newer versions of Windows might have features which are utilized to gain functionality, security or reliability. Then to support the older OS's the team tries to implement similar limited functionality but it isn't as thoroughly tested as the OS likely. Not to mention, think of it this way, if say 70% of your clients are on Windows 10, you'll probably optimize testing and features around that, not anything prior.

I highly doubt this is done specifically to force people to upgrade, or to screw their older versions of Windows. And I am sure more then once a developer or product manage has said, well if they don't like that they can upgrade Windows. If you have ever written a client deployed application you have likely said it too.

herbst 3 days ago 1 reply      
They may are just shitty devs as always, maybe thats their tactic. Who knows. Just upgrade to Windows 10, thats what Microsoft wants you to do, and you know yourself you want all that Spyware stuff, else you would not title yourself windows dev.
AdmiralAsshat 2 days ago 0 replies      
FWIW, I didn't bother uninstalling KB updates on my Windows 7 laptop. I let them all install, then used a utility called Spybot Anti-Beacon to disable the Telemetry services:


You might try giving that a shot.

brudgers 3 days ago 3 replies      
I'm curious about the reasons for not upgrading to Windows 10 since it's free and likely to be better supported.
HappyFunGuy 3 days ago 0 replies      
I know they're sabotaging their newer versions :(
Ask HN: Is it okay to have a short gap of unemployment on your resume?
14 points by jressey  3 days ago   27 comments top 15
enrmarc 3 days ago 5 replies      
Serious question: what's the problem with rsum gaps? Is it a big deal in USA? I'd say that in Europe it's not such a big deal. Nobody is going to ask you why you have, for instance, a 4 month gap in your rsum if you have been working 3 or 4 years in a row. Almost everyone would guess that you took that time off, and that's not a bad thing precisely. Perhaps you took that time to learn new skills, to read a ton of books, to travel around the world, to be with your kids,... a lot of activities that do more good than harm. Most of us are going to work until we are 60 or so, so what's the big deal with having a few months every 5 years or so in our rsum? They give you a medal if you finish your career without gaps?

Imagine this scenario: developer A has been working in a time span of 10 years without rsum gaps. Developer B has been working for 9 years and has been taking gaps of 4 months every 3 years. Do you really think there is going to be a big difference between the two developers in terms of skills set? 10, 9, 8 years, it doesn't make a difference at all in terms of accumulated knowledge. But developer B has been doing "something else" during a whole year (3 gaps of 4months each). Maybe he travelled the world and learned a little bit of a couple of languages, and I'd say that's a valuable non-technical skill to have.

As I've said, I see more good than harm in taking a few month off from time to time.

Going back to your question: if it's just for a few months I see no problem at all, and if recruiters ask then just explain what you have post.

hijinks 1 day ago 0 replies      
Few months is no big deal.. If they ask just say you moved because your spouse for a new job and you helped manage the move and the new place so you took a bit of time off.

I've hired a lot of people and I wouldn't even question a few month gap.. Life happens. I would question more then a 6-8 month gap.

davismwfl 3 days ago 0 replies      
Yep, absolutely fine. If anyone asks, just tell them the truth, you moved, left one company and are learning the new market and who's there.

My only comment, if you let a few months turn into 5-6+ months, you may want to explain up front versus them seeing a 6 month gap as you may not get in the door for a competitive position. You can do this in your intro email/cover letter, mention that you recently moved to the city, took some time to vacation and get to know the city a little and recently saw their position advertised and felt it might be a good match. Or something along those lines.

dhruvkar 2 days ago 0 replies      
It GREATLY depends on the narrative.

Yes, some companies will have filters for things like "hasn't worked in X months => automatic dismiss pile", but by and large, I've found that it depends how that gap fits in with the rest of your life/work story.

They'll wonder about the following Was that gap after 3 months working somewhere? Was it after 5 years? What caused it? Boredom? Familial reasons? Illness?With a tight narrative (e.g. reasonable explanations and a human story), you'll be fine. The person(s) on the other end are also human beings, and most recognize that life happens. It's okay.

probinso 3 days ago 0 replies      
I have two (5+ month) gaps in my resume; one was so that I could party, the other was so that I could work on a personal project (that would definitely not make money). When people ask what I did during those breaks I tell them 'personal time' and that I wanted to explore a personal project in more detail (respectively). I do not seem to be any less employable.

(USA - North West)

audleman 2 days ago 1 reply      
I had a friend who was looking for Administrative Assistant roles with a 2 year gap on her resume and it was a problem. The companies could always find a younger person to sit in the chair and do the menial tasks, and somebody with no gaps is more likely to stay put. They also marked her down in interviews for not knowing the latest Excel version (even though she knew Excel and had been using it for years, like anything significant had changed in a year). So jobs like that are kind of shitty to applicants.

But you as a programmer? I cannot imagine it being a problem. You are a high-skill worker who earns enough that you can easily afford to take the time off. Just say you were exploring personal projects in your spare time. That sounds awesome.

JSeymourATL 2 days ago 0 replies      
An asterisk on your CV time line will suffice: * Transferred to New City with my spouse. Took some personal garden leave during the transition.

Should anyone probe further, tell them ... I'm not a job-hopper, I've been very selective on my search looking for a good company match. Things that are important to me are the quality of the people, interesting work problems to solve, and obviously a good compensation package.

Artlav 20 hours ago 0 replies      
A related question - is there an official job registry in the USA?

That is would the gap be known about from public record, or is it up to you whether to specify it in your CV or not?

Also, how would you put the "tried a startup, failed" unemployment period into the CV?

RockIslandLine 2 days ago 0 replies      
As someone with gaps in my resume for various reasons, I have found a range of responses by potential employers.

I have worked in two different career fields. When I made that switch, getting the professional certifications took me about 3 months, during which time I was not working. Almost nobody asks about the gap, though almost everyone asks about the career switch.

I have a several year period in which I was working only contract employment. There are gaps of up to 5 months between contracts. Most employers ask something about that time, and most are satisfied with the simple explanation that finding a new contract took that much time.

Some employers care more than others. IBM required me to write a letter of explanation for every gap of 3 months or more. Some employers don't even ask.

pyb 22 hours ago 0 replies      
Yes it's fine. In this day and age, it's almost suspicious not to have any gaps in one's tech resume.There are just so many sources of discontinuity in a career nowadays.
siquick 2 days ago 0 replies      
I had a 13 month gap between my last job and my current job, because I went travelling and then migrated to a new country.

It was absolutely no problem and I actually think it helped me because I spent a decent amount of that travelling time developing skills I didn't have previously (both technical and soft skills).

saluki 2 days ago 0 replies      
I wouldn't worry about it too much. Any chance you can obtain a contract position or freelance work during that time so you can just list it as contract position/work.

But I really wouldn't worry about a small gap especially when moving to a new city.

Once you know you're leaving and getting ready to turn in your notice you could ask HR if you could take unpaid leave so your last official day is a few months out, not sure this is possible but if you're worried about your last official day of employment or a gap it might be worth asking.

I think I've only had one company contact my previous companies HR to verify my dates of employment. And one of my former companies HR staff called to let me know about it and see if it was ok to give them information and say they weren't even sure they can legally call up and ask for employee information like that.

Anyway good luck landing a new gig.

dudul 3 days ago 1 reply      
Yes it's fine. You could take advantage of these few months to do something, like volunteering, OOS contributions, mentorship, etc to make it even "more okay". But your scenario is valid explanation enough.
mspaulding06 2 days ago 0 replies      
Having gaps on your resume isn't a big deal. If you're good at what you do you shouldn't have any problems. I have two 6 month gaps on my resume and it wasn't any problem getting my current job as a DevOps engineer. It can be a smart move taking your time to find the right thing. The last thing you want is to end up working somewhere just so you can have a paycheck.
c0110 2 days ago 0 replies      
This is anecdotal -- but it seems like companies are more or less pretty understanding if your reason is justifiable. I had a string of jobs (fulltime, then laid off, then consulting for 3 separate clients). I interviewed with over 20 companies this year and no one had a problem with the gaps in my resume. They were more interested (concerned?) about why I had worked with so many companies.
Ask HN: Military to tech jobs
9 points by boniface316  2 days ago   14 comments top 7
jcbeard 2 days ago 1 reply      
I can definitely comment here. I was also in the same boat a few years ago. I was a US Army Officer for 5 years, and now I'm a senior research engineer. First, here are my observations after getting "into" the tech industry:1) I've observed I have a huge amount of leadership experience compared to my peers. This doesn't mean I run in commanding, no..it means I know how to get people to do things that need to be done. I can motivate people, align their viewpoints...which means I can change my view if needed.2) You're going to be far ahead of your peers on things like organization, work ethic, world view, etc.3) I've found it useful not to talk about my military experience. I will occasionally, but seems to be what people focus on if you do...and this isn't generally what you want.

As far as operations, you should be golden. I can't count how many times I've used the same skills I'd use to plan an operation to plan projects. They're exactly the same skill sets, just different semantics and new acronyms to learn. You might contact student veterans of america. Even if you're not a student, they usually have "tech" resume workshops that can help you translate for the civilian audience.

techjuice 2 days ago 0 replies      
Tech industry treats veterans the same as non ex-military. Just insure that you have the technical knowledge and background for the job. If you do not, government contractors will gladly bring you on to teach you, especially if it is something that helps maintain your security clearance. They will normally put you in a journeyman position if you have zero experience in a certain technology sitting right with experts in the technology.

With enough time on the job and at home teaching yourself you will be at the junior level in no time. Once your able to do all your regular tasks along with more advanced projects you may be able to start working in a senior role and be handsomely compensated for it.

Now if you have heavier military only skills government contractors more then likely still have a place for you, I would recommend checking the top government contractor job sites. They can normally place you in something very similar to what you were doing in the military with the added benefit of you learning new tech and some times becoming the expert on that tech, especially if it is very popular in the tech industry.

If you want to use many of the benefits that come with joining the military long term you may want to check out jobs at the intelligence agencies (CIA, NSA, NGA, DIA, etc.) or usajobs.gov to see if there is anything there you like. You may also be able to get a higher paying ranked job based on your military experience.

Do not forget to also take a look at the agencies like FDIC, SEC, Patent and Trade office too. They are smaller but pay better and offer more benefits than many of the larger agencies for tech talent.

SEJeff 2 days ago 1 reply      
I was the same as you, got out with no college, and got a job as a Jr Unix Systems Administrator. That being said, I had a lot of Unix/Linux knowledge already from personal study. I worked my way up to a Sr Systems Admin, but wanted to build things and couldn't do that without teaching myself to code.

I'm now a Software Engineer for one of the larger financial firms in Chicago. I never went to college and am self-taught. Every firm that sees "military" treats it the same as a degree aka:

Requirements: batchelors degree or "equivalent experience".

Work hard, and you'll be fine. Tech has no issues with vets at all from what I can tell. What in specific were you looking to go into?

For reference, here is a very not up to date resume: http://www.digitalprognosis.com/resume.htm

JSeymourATL 2 days ago 1 reply      
Probably better to connect with veterans who've already been down your path.

Jump on Linkedin's advanced search feature. Sort for profiles of local individuals in software/hardware with past military backgrounds. Reach out to them, ask for advice. They'll likely have some solid ideas and thoughts on opportunities.

josh_carterPDX 2 days ago 1 reply      
It depends on the company to be quite honest. You should look up Operation Code (http://operationcode.org). Full disclosure: I'm a Founding Board Member. If you have questions my email is in my profile.
flignats 2 days ago 1 reply      
I'm in tech, a veteran, and in Los Angeles if you're interested in talking more about opportunities in this area.
twunde 2 days ago 1 reply      
One thing I haven't seen mentioned is that many tech companies especially mid-size to large ones may have a special program to recruit veterans like Google's https://www.google.com/about/careers/veterans/

Mid-size to large companies tend to also be understanding of reserve duty and may have someone ex-military review your resume and/or interview you to understand your military experience.

Ask HN: Finance industry devs, where do you put the business logic, DB or Code
18 points by ruslan_talpa  3 days ago   21 comments top 9
antrix 3 days ago 0 replies      
I've worked in finance technology for eight years now, in various domains.

As a broad generalization, if you are latency bound (milliseconds or less) then everything is done in code and the DB is never in the main loop.

At the other end, if you are throughput bound - think end of day/month activities - then stored procedures all the way.

For everything in between, prefer to have the logic in code due to the maintenance benefits that come with it.

> Do you have an API on top of DB that enforces the rules?

In general, a database is owned by the app it is associated with and the app mediates all access to that data. The usual enterprise integration patterns (esb, messaging, web services, file dumps) are used to share data with other systems.

> Is the security/data validation also done in the API/app layer?

Largely yes. There's some level of security (like app access control and encryption at rest) that's handled in the DB tier but authorization is largely an app level concern.

Similarly, some constraints are imposed in the DB schema but those are quite basic. Most validation is done in the app tier.

niftich 3 days ago 2 replies      
> * You can't test/debug BL in DB (or it's very hard)

You test/debug in a separate, isolated full-stack environment that has a copy of the data.

> * You can't do continuous integration


> * The code a mess and hard to maintain/make sense of

This is conjecture, and it's entirely dependent on the quality of the code.

bbcbasic 3 days ago 0 replies      
I've worked at finance places where a lot of BL is in the DB.

Testing is a trade-off. You can test the end points of stored procedures that the app has access to for example. Although where I worked admittedly there was no automated testing.

You can do CI if you have a way to deploy changes to scripts automatically.

The code doesn't need to be a mess but admittedly PLSQL doesn't have the same nice abstraction patterns as OO so it does get a bit W.E.T. sometimes.

CyberFonic 3 days ago 0 replies      
My experience is with insurance, funds management and telco billing systems.

Although every project is different, as a general rule I prefer to use stored procedures to make changes to the data. The SPs are written to ensure data integrity. Of course, there are some very basic business rules evident at this level but the primary concern is the correctness of data as updated/inserted. I would characterise these as the "data integrity rules".

Each SP encompasses a document, a test suite and the implementation. It goes through the DEV-TEST-UAT-PROD QA - promotion stepwise deployment. I see that as a reasonable substitute for continuous integration.

The OO layer implements business rules. (The SPs are transactional/procedural). I consider the BRs as a lower level business logic. Then the application provides the high level business logic, e.g. validation, workflow, etc.

In reference to your question, I generally end up with three layers, DB, BR (API), BL (app). Technically the DB also has an API, but that is only visible to the BR layer.

nostrademons 3 days ago 2 replies      
Most hardcore finance shops (quants, hedge funds, algo traders) I know don't use a DB in the traditional SQL RDBMS sense. Proprietary time-series databases rule here - because microseconds count, it's very important to think about the access patterns of your data and optimize for the algorithms you're actually running.
schappim 3 days ago 2 replies      
When doing consulting for an agency, I was managing the integration of a new iPhone app with a legacy government database. We were given access to their code and their database.

One of my wise old developers frowned and when I asked why he told me there were literally hundreds of stored procedures in this database and no documentation.

It was at this time he told me to when possible keep business logic in code so it can be managed by a version control, and easily replicated for CI.

He advised the exception to this rule was when the stored procedure gave a large performance boost.

cdnsteve 3 days ago 1 reply      
All in app for this particular API, using CI, good test coverage.

DB handles data integrity.App/API handles data validation.

flukus 3 days ago 0 replies      
I don't like a lot of logic in the the database, but you can do continuous integration with tools like flyway:


In fact, it's pretty hard to do CI without tools like this, even with zero stored procs.

usernamebias 3 days ago 1 reply      
I am not in "Fintech", but I may be able to help with some background in solution architecture.

A pattern that applies to most industries is Service-oriented Architecture (SOA) -- Where each layer (presentation, logic, data) is independent of each other.

This allow for fantastic scalability and granular debugging.

Ask HN: How do I make a shell?
11 points by instakill  2 days ago   9 comments top 5
DougMerritt 1 day ago 1 reply      
Having written a number of shells, I can confidentally say that the actual heart of one is the ability to execute a series of commands.

Doing this in a very high level language like Ruby is trivial; it does all the work for you.

Doing this in C, as Bash does, requires learning some systems programming. Under Unix/Linux that means using fork() to create a child process and then having that child call exec() to run some specified command.

If not run "in the background", then the parent process needs to call some variant of wait() to idle until the child is done.

If it is desired to have input and/or output different than the parent, say for redirection of stdin/stdout/stderr, then one has to fiddle with variants of dup() to arrange this.

In some sense, all of the features mentioned in the other comments are optional, and the number of features in a sophisticated shell like Bash is mindboggling, so it would be a good idea to figure out a "minimum viable product" so that you can get your minimal desired feature set working before the end of time.

frou_dh 2 days ago 1 reply      
The first thing to recognise is that is shell is not a special kind of program. It's just a normal executable like everything else.

Next, recognise that a shell is a language, so you're basically building a commandline programming language interpreter (like python and ruby offer). The difference compared to a general-purpose language is that a shell language traditionally has super-lightweight syntax for operations related to processes and files.

The first step of building a language interpreter is being able to lex (tokenize) and parse a stream of characters.

Someone 2 days ago 0 replies      
One step at a time. Some of the things people expect of a shell:

- can search $PATH for things to run (traversing $PATH),

- ?must check 'executable' bit?

- ?must discriminate scripts from binaries?

- must exec things to be run

- must intercept stdin, stdout, and stderr of things being run

- pass arguments to programs

- expand wild card characters (for UNIX shells. A in some sense more reasonable alternative is to put wildcard expansion in a separate library and let executables do wildcard expansion. That would prevent problems with expanded command lines becoming too long)

- allow for back tick substitutions

- evaluate environment variables when interpreting arguments (again, this _could_ be something left to programs to do. For this, I don't see a benefit, though)

- allow multiple commands on a line

- allow redirection from and to files

- build pipelines and execute them

- has some builtins (mostly optional, to speed up things)

- reading and interpreting .shellrc

- control structures (if, for, etc.)

You can implement them in whatever order you want.

I would probably start like this:

- a program that starts a single executable.

- starting an executable and intercepting its output.

- also sending it input

- accept the name of the command to run on the command line, search for it, and execute it.

- allow sending arguments to the program to run

- loop infinitely, running the executables whose names the user types in (this is where your program becomes shell-like)

You will likely encounter many things I let out above (do you need to interact with the terminal? How to handle Control-C, for example to nicely kill all commands in a pipeline) or do not even know about, but I would tackle them when I met them.

vmateixeira 2 days ago 0 replies      
Hope this can help [1]. Otherwise, if you just want an API wrapped up with python [2].

[1] http://brennan.io/2015/01/16/write-a-shell-in-c/

[2] http://www.ibm.com/developerworks/aix/library/au-pythocli/

schappim 1 day ago 0 replies      
I actually just saw this post on Wednesday: "Writing a Shell in 25 Lines of Ruby Code"[1].

[1] http://www.blackbytes.info/2016/07/writing-a-shell-in-ruby/

Ask HN: Is there an open source license that requires you share data collected?
9 points by andrewtbham  3 days ago   6 comments top 3
yulaow 2 days ago 1 reply      
Privacy Laws. In some countries (eg the whole EU) privacy laws about data are VERY strict and I don't think you can force them with just a license. To make an example here you must identify in a sort-of-contract who are the people who manage (in any way) the data, for which explicit purpose and for how much time. Also you have to give a way to delete it in a permanent way. And typically you cannot share that data with third parties not explicitly know at the moment in which you write the contract and the user accept it (you can't be vague, they must be people with name/surname/etc or companies).

So consider that, in most cases, your program cannot be used if there is even a single data relatable to privacy laws that it gathers (and again, here in EU even temporary geolocation is considered covered by privacy).

viraptor 3 days ago 1 reply      
Depends on the meaning of free you use. It would be incompatible with GPL, but compatible with many less restrictive ones like MIT/BSD. Of course you can write your own licence, but whether that's enforceable you'd have to talk to a lawyer. Details would likely matter there - how do the results have to be published, for how long, who to (it could conflict with local laws about not selling tech to country X for example), etc.

Of course there's still the question of who would care to follow the licence. Did you think about doing to in terms of incentives instead? For example a cheaper version which always (or opt-out) uploads the results and a considerably more expensive one which doesn't. If you're thinking about releasing it free with the source, how about official compiled package which publishes the result, but that you can compile yourself with that option turned off?

benjaminjosephw 3 days ago 1 reply      
So some kind of Share-Alike license? Perhaps this: http://opendatacommons.org/licenses/odbl/summary/
Ask HN: Emacs-like Incremental Search?
2 points by _acme  1 day ago   3 comments top
ScottBurson 1 day ago 1 reply      
That's funny. I've used the original ITS Emacs, Zmacs (the Lisp Machine editor), MINCE, Coral Common Lisp's FRED, GNU Emacs, XEmacs, and probably a couple more Emacs clones I've forgotten, and I don't recall any of them having that behavior when searching forward. (They do leave the cursor at the beginning of the match when searching backward.)

Anyway, you can get Aquamacs and customize its behavior to your liking.

Ask HN: Could a religion be started today?
18 points by dhruvkar  4 days ago   15 comments top 11
Gustomaximus 4 days ago 1 reply      
Scientology is obvious example. But sure. Most religions, even old one tend to adopt parts of other religion quite closely. Which also makes Scientology more unique.

Some others: https://en.wikipedia.org/wiki/List_of_new_religious_movement...

tlb 4 days ago 1 reply      
An interesting trend is secular churches that provide the community and inspirational parts of church without invoking the supernatural. For instance, http://www.sundayassembly.com/

Transpersonal psychology has some elements of a religion. https://en.wikipedia.org/wiki/Transpersonal_psychology

Both the above seem compatible with logic and freely available information.

notahacker 3 days ago 0 replies      
> Freely available information, lack of privacy, and a vastly more educated populace would nip that sucker in the bud

The evidence of the popularity of some of the sillier conspiracy theories - even or especially amongst the relatively well-educated - would suggest otherwise...

pesfandiar 4 days ago 0 replies      
With a looser definition of religion, we already have modern forms of religion: Apple, Whole Foods, ...

They stimulate the same neural paths [1], they have the same cult following, and they for sure have reliable revenue streams from their members.

[1] (low quality link, sorry) http://www.businessinsider.com/apple-is-a-religion-neuroscie...

prawn 4 days ago 1 reply      
How different would it need to be from existing religions? If not especially different, I imagine variations spring up almost daily around the world.
cwt 2 days ago 0 replies      
The Church of the Flying Spaghetti Monster was founded in 2005. https://en.wikipedia.org/wiki/Flying_Spaghetti_Monster
imauld 2 days ago 0 replies      
Pokemon Go released just the other day.
Lorenz-Kraft 4 days ago 1 reply      
I think that starting a religion is not that difficult because almost all religions are based on austerity/deprivation with a promise.
meric 3 days ago 0 replies      
The way people write "Science" capitalising the first letter, and says things like "one day Science will solve these problems for us", sound a lot like putting faith in a religion to me. What is religion but philosophy mixed with some faith?
jjoe 2 days ago 0 replies      
You only need three ingredients: miracles, prophecies, and a timeframe.

You need a couple of miracles to get people to listen. And you need true prophecies (accurate predictions of the future) to have long term following.

Good luck

lttlrck 4 days ago 0 replies      
I would daub that so long as there are religious/God believing people in the world there is the potential for new religions to be created.
Ask HN: How to tell a good friend you don't want to include him in your startup?
14 points by sueddie  4 days ago   13 comments top 8
davismwfl 3 days ago 2 replies      
Not to be a dick, but just man/woman up. Tell him/her that sorry, I just don't think we'd make good partners right now and (if true) I'd rather preserve our friendship. If it is true tell them the friendship is more important then a business that may or may not make it, and frankly you don't think the two of you would make a successful business together right now.

If they don't grasp that they are a pretty fair weather friend to begin with so don't loose sleep and get your business moving.

boniface316 3 days ago 0 replies      
One of the biggest reason my startup failed was I included friends who didn't bring value. We kept in the group because he was a good friend, when it came to delivery, he was bad.

Once the business started to fail, we started to fight between each other. We lost our friendship and the business. If I could go back in time, I would have had this chat with him.

On the other side, I talked to a friend of mine who is running a successful business in Toronto. He started his business when I was his room mate in university. I was very bitter that he didn't include me as his business partner. His answers were that I didn't bring value to his business. I am glad he did that, because we are still friends and he is willing to help me with whatever business I start in the future.

AnimalMuppet 4 days ago 1 reply      
I might say, "I don't think I can do a startup with you and still maintain our friendship. And I'd rather be your friend." (Without telling him/her why you can't do a startup and still be their friend...)
MalcolmDiggs 1 day ago 0 replies      
When a friend wants to start a business with me, I just tell them my rule:

I don't work with friends, and I don't make friends at work. I keep those two areas of my life completely separate.

The benefits are: you can make whatever business-decisions are prudent without worrying about upsetting a friendship, and you can make whatever friendship decisions you want without worrying about how it effects your business.

I have a similar mantra for business & family, never mixing the two.

lsiebert 3 days ago 1 reply      
"You are a good friend, but I need people who can follow my lead, and I'd never say you are a follower."
saluki 2 days ago 0 replies      
How valuable is your other friend to the startup? It might be easier to start this on your own without including any friends in the same circle.

It's always going to be awkward if you're talking about how great your startup is going and he got left out.

Keep business separate from your friendships.

Businesses are a lot easier to find than a good group of friends.

Most startups fail, friendships can easily be forever. Don't mix them if you think it's going to be trouble from the start.

Good luck with your startup and keeping your circle of friends together.

mod 3 days ago 0 replies      
I've had this problem with my family. I own a brick & mortar business with my brother, and I am a developer. I built a side-project that he was part of and he failed to do his part, and it is just sitting, stagnating at this point.

He has more ideas he wants to pursue and I'm unwilling, due to his role in the first.

But because I have an ongoing partnership in the b&m business, it's hard to be fully forthcoming about not wanting to work with him.

My situation is different in that I'm not going ahead with the idea without him. Mostly I've just put off working with him again and he hasn't been too persistent about getting started on anything.

Even still, if I were faced with the conversation of "why don't you want me to be a part of this?," I would tell him exactly why. He wasn't a good co-founder in the past, I don't expect he will be this time either, and I'm not prepared to risk another business on him.

I would tell your "good friend" that you don't enjoy working with him, even though you like him, and that you won't be including him.

mbrodersen 2 days ago 0 replies      
I lost a good friend because I included him in my startup and it didn't work out. So simply say that you don't want to risk loosing him as a friend.
Ask HN: Which startups will expand internationally in the next 1-2 years?
8 points by rsmoore215  3 days ago   3 comments top 3
rtcoms 2 days ago 0 replies      
I guess https://deepart.io/ has a chance , considering how populer ios app prisma is becoming.

They launched earlier than prisma , but didn't have mobile app, thus didn't get viral even if they are more advanced than prisma.

JSeymourATL 3 days ago 0 replies      
ViriCiti just announced expansion plans in the US & EU > https://startupjuncture.com/2016/07/14/viriciti-funding-eur7...
drijkhof 2 days ago 0 replies      
My educated guess states teletext.io it's just to good not to become big.
Ask HN: Should SaaS charge a non-profit?
13 points by michaeloblak  5 days ago   21 comments top 15
giaour 4 days ago 1 reply      
If you're going to have a policy, I would caution against having one that requires a case-by-case evaluation. That will not scale well and can lead some to allege bias.

As an example of a reasonble, scalable policy: Salesforce used to (and still might) offer any 501(c)3 non-profit organization 10 free licenses. The IRS makes a judgment call when issuing or renewing 501(c)3 status, and you can save yourself some time by relying on their evaluation. If an organization is big enough to require more than a small number of licenses, then they're big enough to pay for them.

matthewowen 4 days ago 1 reply      
I used to work for a digital agency that specialized in working with non-profits.

It's perfectly acceptable to charge non-profits for services, and non-profits expect to be charged. Getting free services and products is often a great way to get crap. Non-profits have budgets, and they're willing to spend them to achieve their goals.

It might be effective to offer discounts or limited free functionality to non-profits, but you should probably view this as a marketing strategy more than as a moral pursuit.

davismwfl 4 days ago 0 replies      
Set up a policy and not a case by case evaluation as giaour pointed out.

Personally, differentiate between charity and non-profit. All charities are nonprofits but not all nonprofits are charities. I'd give a significant discount to charities upon proof of status, say 50% off, but not necessarily for non-profits. Think of it this way, your Home/Condo Owners Association is likely a non-profit, so are a number of exclusive country clubs etc, but they are not charities and shouldn't be seen as equal.

Also, having been an exec at a Charity, make sure you also talk to your own accountant as if you follow a set policy like this, and validate proof of status (annually) I believe you are entitled to some tax benefits as well.

codegeek 4 days ago 0 replies      
They may be Non-Profit but you are probably not. If you really like their cause, you can offer them a small discount. I don't usually know if my subscriber is non-profit but when they do mention it, i happily say that we offer a <insert random> percent discount and give it to them.

Don't bother checking if they really use your service for non-profit. Check if they are abiding by your TOS and that's it.

herbst 5 days ago 0 replies      
I dont see why non profits should be free. Isnt even FIFA a non profit on paper? If it fits your company i would just mention somewhere that you offer discounts for non profits and decide from case to case.
Mz 4 days ago 0 replies      
First, educate yourself about the NPO sector, example:


Second, look for articles like this:


Not for profit organizations are not inherently more moral than for profit entities. They aren't inherently better run. They aren't inherently doing a better job of serving the greater good.

Some sorts of services work better under certain organization models than others, eg it is best to have a government run or volunteer or not for profit fire department that automatically responds to all fires, regardless of ability to pay. That simply works better than a for pay model because if you do not put out your neighbor's fire because they are poor and cannot pay, the fire can soon become your problem and, at that point, it can be a bigger problem that is harder to solve.

But that does not mean that a non profit model is inherently superior in all cases. Business done right is a force for good. It is a civilizing, peace promoting force. And, sometimes, NPOs are all kinds of fucked up and were created for all the wrong reasons.

jasonkester 4 days ago 0 replies      
Only if it makes business sense to do so.

For a long time, I used to give out free Twiddla licenses to students and teachers. It generated a ton of good word of mouth referrals and established it as something that people use in the classroom. Now that I'm charging again for those licenses, I sell quite a bit more because of that positioning.

I occasionally get non-profits asking for free licenses too, and I always say no. There is no upside like there was with .edu, so it just amounts to giving things away for free.

A non-profit is an organization with a budget that they can spend on things like software. Your software has a price, so they get to pay it. Tell them as much and they will understand.

sjs382 4 days ago 0 replies      
I don't get enough people asking for discounts to matter, but I usually give a discount to anyone who asks.

I do this a bit as a pay-it-forward thing. When I was in college, Github was offering their lowest plan (which included a few private repos) for free for educational use, if you emailed them. Well, I reached out to them, they gave me the free account without any verification. I had the account well past my time in school, though I lost it sometime in the last few years.

I'm happy to pay the same sort of thing forward to anyone who asks.

saluki 4 days ago 0 replies      
I would offer them a discount and think about donating to them once a year a portion or all of their subscription if you like the cause.

Free accounts could become a burden over time and could lead to people just trying to sign up for a free ride.

Add a link to your pricing page that says Are you a 501(c)3 non-profit contact us for discounted pricing.

See how much interest you get. You can decide on the discount when the first email rolls in. (Setup a new contact page/form that indicates to you they are interested in non-profit pricing).

Make a difference.

wallflower 4 days ago 0 replies      
Slack has a great policy. It is not a blanket policy - they have exclusions.


Domo 'gives back' by helping non-profits use their BI platform (Hadoop with a pretty front-end).https://www.domo.com/customers/goodwil

nparsons08 4 days ago 0 replies      
Do you have overhead? If so, yes. A non-profit still generates a significant amount of revenue... especially since they don't have to pay the same tax as a normal company does.
gus_massa 5 days ago 0 replies      
Do you like the activity that they do? Would you donate $5 to them?
partisan 5 days ago 0 replies      
Check the pay for the top executives at non-profits. Then decide whether you should forgo your profit for theirs.
3eto 4 days ago 0 replies      
>How to make such help good for both sides?

Convert the value of your service and reinvest it back into the nonprofit as unrestricted funds. Nonprofits are usually in need of unrestricted funds.

mankash666 4 days ago 3 replies      
Unfortunately, most non-profits are notorious for money-laundering and illegal activity. I believe you should consider waving fees on a case-by-case basis, if you can spend money to evaluate, but if you can't, I'd err on the side of caution and not waive fees.
Inky 3 Encrypted emails using ANY email provider
8 points by tatoalo  2 days ago   3 comments top 2
stephenr 1 day ago 0 replies      
I had a look at this earlier and it mentions they operate a CA, to provide S/MIME certs.

How are these certs handled by other mail clients/systems? Do they have a chain to a widely accepted Root CA?

0942v8653 2 days ago 1 reply      
So this is, what, a worse version of PGP? I'm not sure I understand.
Ask HN: Anyone running a SaaS based on machine learning?
14 points by osazuwa  4 days ago   3 comments top 3
LuisFerreira 4 days ago 0 replies      
Im trying, is a service for acounting people we get data from the local IRS then we use machine learning to predict the best way to classify it and type it again on the original system but already classified.
duked 2 days ago 0 replies      
We're using some ML for our cloud security platform.
namanbhutani 2 days ago 0 replies      
simplify user analysis, engagement, retention and supportWe are a product development company which has worked on several projects in the last 5 years. We have built both internal products and helped other entrepreneurs with their prototype and MVP development. Even though these projects varied across industries and geographies, the one common pain we noticed was with user interaction, engagement and support tools and the lack of integration. Hence we decided to build one ourselves.


Our goal is to build a product which allows web and mobile app builders to communicate with their users in a seamless way across different channels and for different purposes. We hope that through this vision we can help you understand your users, communicate with them more effectively and retain them for a longer time.

Ask HN: Family friendly beach town in California?
17 points by ishbits  4 days ago   17 comments top 15
poof131 4 days ago 1 reply      
Lived in the bay area, LA and San Diego for extended periods.

If I were remote, focused on family, and somewhat price conscious, first choice would be San Louis Obispo: beaches, nice downtown, college town. My next choices would be San Diego (north of La Jolla) or Santa Barbara. If you are less price conscious and want to move north, then Half Moon Bay or Santa Cruz. Can find more remote places too that are amazing if you want that, like the Big Sur area or north of the Bay Area. Tend to like the places mentioned more than Carlsbad or Ventura, but those places arent bad by any stretch.

Been to Costa Rica, its nice, but more expensive than people think and issues with crime, like dont ever leave your house unattended. Brother goes to Nicaragua to surf a lot, sounds like Costa Rica but cheaper and less stable. Mexico still feels too dangerous to me. About three months ago our nanny was scared to go home because of the crime. When I was in the military not too long ago, you needed a Generals approval to go. Some areas are probably good but doesnt strike me as family friendly, more like retirement and vacation compounds. No idea about Panama, but all sound like an adventure.

Good luck and have fun. Remote sounds better by the day.

jasonkester 4 days ago 1 reply      
You asked in the right place. I recently spent the better part of ten years trying to find this place, for exactly the same reasons. Sadly, the short answer is that it doesn't exist.

Like you, I'm 100% remote, so my constraints were "Somewhere in the world, with pleasant living and good surf". Sounds easy right? The problem though is that they nearly always put the good surf right on the beach, so anywhere that also has pleasant living will have $5m houses to go with it.

California crosses itself off the list immediately. Santa Cruz has tiny run down houses for around a million dollars in the Pleasure Point area, walking distance to some really good surfing, but you need to at least double that if you want a house that isn't being sold as a teardown. Santa Barbara has good waves and possibly four houses within 30 miles that you can afford, but none down by Rincon where you want to be.

San Clemente could work. If you drive far enough up the hill from Trestles, the soulless, yardless, cheaply built houses eventually come down to $800k. Further north, you might find a house inland from one of the urban breaks for that price, provided you don't mind people shooting at your kids on occasion.

As to Parts South? I'd recommend you spend a good full season in Nicaragua or similar before you buy there. You'll learn a lot about the psyche of your typical Expat Surfer In Central America. Turns out he's kinda bitter, and not a very pleasant guy to spend your time with.

And the places where you'd buy your house tend to be of the "cleared farmland on the coast between fishing villages" variety, with gates at the road to ensure you never meet any locals and Fancy-yet-Sad houses overlooking the sea at prices that aren't really as cheap as you'd expect. It's unlikely that you'll actually find a nice piece of land next to the quaint fishing village with an undiscovered point break out front.

We spent several winters in places like that, and never found one that really felt like we could make it home.

One ray of hope might be Puerto Rico, in the West Rincon or Aguada area. Spend next winter there and see if you can deal with the combination of dusty cinder block houses on the coast with giant Walgreens/KFC strip malls on the outskirts of every little town. With a good architect and a well chosen plot of land, you could make it work there. A lot of people have, and the vibe is a lot more friendly than the Mexico crowd.

All the best, and don't hesitate to hit me up with any questions!

ScottBurson 1 day ago 0 replies      
Surprised no one has mentioned the northern California coast. There are lots of little towns on the coast, of varying sizes. If you want something a bit more populated, there's Eureka.

I haven't lived in any of these places -- though my wife and I have enjoyed vacationing in Mendocino a few times -- so I can't offer an unqualified recommendation, but it certainly seems like they would be worth looking into.

re_todd 3 days ago 0 replies      

 San Luis Obispo is awesome as others have said, but it is about 10 miles from the beach. Ventura County is also good, but has been getting very expensive that last 10 years. Carpinteria would have been great 15 years ago, but prices have gone through the roof. This would be my short list: - Between Carlsbad and La Jolla - Cayucos/Morro Bay/Los Osos (all pretty close to each other; I prefer Los Osos because not many people know about it and thus not a lot of traffic on holidays and weekends) - Some of the lesser known towns between Monterrey and Santa Cruz - Fort Bragg/Mendocino area If you're ok with living 5/10/15 miles from the beach, housing gets much cheaper.

lewisgodowski 3 days ago 0 replies      
San Luis Obispo (and surrounding areas) - Went to Cal Poly, absolutely fell in love with the city. https://www.youtube.com/watch?v=MZBLZDk4HTQ

Redondo Beach - Live here now. As another person said, not a lot to do, but it's nice and family friendly. Plus, you're not too far from Venice/Santa Monica.

Peter_Franusic 4 days ago 0 replies      
Arroyo Grande (AG). It's close to Pismo Beach and SLO (San Luis Obispo) along Highway 101.

My wife took my young sons to Pismo Beach often. She let them play in the surf with no worries, because the surfers were vigilant of little kids.

As for afforable housing, we have friends that live inexpensively in rural AG, back in the hills. Very beautiful.

SLO is a great college town. Lots of engineering students and faculty for potential friends. Lots of fun things to do in downtown SLO.

31reasons 2 days ago 0 replies      
San Clemente is pretty nice, laid back beach town. House prices are also not too crazy. Closer to Irvine/ New Port Beach.
niftich 4 days ago 0 replies      
Coastal towns are expensive everywhere, but that being said:

Santa Cruz suburbs are a good bet; Soquel, Aptos, Watsonville (last is inland).

Or in the San Luis Obispo area: Pismo Beach, Morro Bay. Cayucos, recommended already, is here too.

axrami5 3 days ago 0 replies      
Look into Redondo Beach CA. Amazing little town. By far one of the most affordable beach towns, not a ton to do but its quite and safe.
gspyrou 4 days ago 0 replies      
Naxos island in Cyclades , Greece http://www.naxos.gr/en/ .
saenns 4 days ago 0 replies      
cayucos - better weather than SC


LarryMade2 4 days ago 0 replies      
South of Bodega Bay is going to be more expensive than North of it, but Nothern coastal communities are much more rural.
3eto 4 days ago 0 replies      
Not on your radar, but I've been getting a solid answer for the same question. Cape Town
mergy 4 days ago 0 replies      
Santa Cruz or Aptos.
harroweddude 3 days ago 1 reply      
This comment violates the HN guidelines and we ban accounts that do so. Please re-read them carefully:


Ask HN: A systematic approach to picking app colors?
7 points by archagon  3 days ago   9 comments top 7
bigmanwalter 2 days ago 1 reply      
Wow. It feels like nobody even tried to answer you.

For starters, there won't be any easy algorithmic way to defines shades and tones of colours (shade is the term for mixing a colour with black, tone is mixing a colour with white) as the eyes perceive them all a bit too differently, so they will all require some hand tweaking.

When users can choose colours, try and keep any preselected colours neutral. Blacks, whites and greys. Sometimes a slight blue can be applied. Blue is universally the easiest/most agreeable colour.

For finding good color combos the major ways to go about it are to either pick color chords and tweak slightly, or to play with the hot/cold contrast.

Color chords means using 3 or 4 colours which are equidistant on the HSL wheel (90 or 120 degrees apart), you can then play with them a bit to see what you like.

Hot cold contrast just means that warm colors and cold colours always look good against each other. So red/orange/yellow against blue/violet.

Also worth noting that different colours have different weights. Yellow is perceptually bigger than purple. So if you have two equal sized dots, one yellow one purple, the yellow will appear larger.

Most of this comes from The Elements of Color https://www.amazon.ca/Elements-Color-Johannes-Itten/dp/04712... . Im sure many other books cover it but this one is considered a classic.

huevosabio 3 days ago 0 replies      
For the palette look at http://www.colourlovers.com/palettes

in general I found this talk to have some interesting recommendations https://www.youtube.com/watch?v=uKpfO331DY4

tracker1 3 days ago 0 replies      
Look into the source for bootstrap 3 or 4... They only define a handful of colors. In the end, pick your main branding color, and work out from there.

Even if you don't use bootstrap, it's a good baseline to look at, and imho every web developer/designer should definitely dig through the source of that codebase.

spotman 3 days ago 0 replies      
You are approaching it too much like a programmer in my humble opinion.

Yes there is rules and guidelines, but before you can follow them you need a style , a feel , a culture .

You should get ( pay ) a graphic designer friend to come up with some food mockup of a single page. Work on it worth them or have them do a few iterations until you are really excited about it and both of you think "aha!"

Once you get that far your next challenge is to truly use this as a style guide and pivot off of it as you design the rest of the pages.

Good luck, it can be rewarding!

siquick 2 days ago 0 replies      
Always found this useful https://color.adobe.com/create/color-wheel/

And whatever you do, don't spend too much time on this stuff.

As long as your colours aren't too garish, then you should spend way more time on whitespace and typeface.

niftich 3 days ago 0 replies      
I've used 'color scheme designer' [1], recently renamed 'paletton' [2], in the past. It has some of the specific features you are looking for, like darkened/lightened alternatives of your main colors.

[1] http://colorschemedesigner.com/csd-3.5/ [2] http://paletton.com

MyNewAcc 3 days ago 1 reply      
Just so ya know... the color scheme will look very different on different monitors. So make it look good, but be careful not to yak shav over colors only you will ever see as intended.
Ask HN: Dangers to making public young-project code?
12 points by probinso  3 days ago   10 comments top 5
Terribledactyl 3 days ago 1 reply      
Accidental release of sensitive info/keys/values etc.

If it's an alpha/beta or just a proof of concept then state that or you may have issues with public expectations.

If you plan on making a business around this project, might make some paths more difficult to take or lower the bar for competition.

gravypod 3 days ago 0 replies      
Terribledactyl basically nailed the only issue I see: leaking your private information.

Other then that, I'm sure the other cautions that they bring up aren't as big of an issue.

You are basically ok in my book so long as you plop a copy-left license on it.

kevinsimper 2 days ago 0 replies      
I have not seen any negative consequences of making project viewable on Github, rather the opposite where you missing out on opportunities to get noticed. I had the same thought last year when I started my first serious startup, we ended up not doing it which was a mistake because it made it so much more difficult to do later, because of shortcuts with secrets and Github issues, but in the end we did it later!

If you think about doing it, make no mistakes and just do it from the start!

samblr 2 days ago 1 reply      
bwackwat 3 days ago 3 replies      
Ask HN: Best Windows tablet for work email, office document review, edits
6 points by skynetv2  4 days ago   12 comments top 4
code777777 3 days ago 1 reply      
Surface Pro 4, it's a great machine with a useful stylus.

A few people at the office really like the Dell XPS 12 2-in-1[1] with the upgraded keyboard[2].

[1] http://www.dell.com/us/business/p/xps-12-9250/pd?ref=PD_OC

[2] http://i.dell.com/sites/imagecontent/products/PublishingImag...

freestockoption 4 days ago 2 replies      
I've been using a Chuwi Hi 8 Pro. 8" 1080P screen, 2GB ram, latest Atom processor. Fits in some of my pockets. $90.

Bought it from a store that shipped from China. They also have tablets that have cellular and higher resolution screens. Runs for $200-300. But I'm not sure I'd spend that much for an offbrand.

At that point I feel I'd just get a Surface or Galaxy Tab Pro S to get the warranty, peace of mind, etc.

Still, a Windows tablet is incredibly useful! Especially for dev work.

AngeloAnolin 4 days ago 2 replies      
If your primary laptop is a MBP, and then switching over to a Windows 10 tablet, there might be instances where you may get confused on how things work, as both features offered by the OS (Microsoft vs Apple) is very different.

But to stay the course of your question, the best Windows 10 tablet would be Surface Pro 4.

giucal 4 days ago 0 replies      
(Joke) The best Windows tablet is no tablet at all.
Ask HN: Why have been articles about terrorism attack in Nice been flagged?
13 points by gonvaled  2 days ago   21 comments top 2
dragonwriter 2 days ago 1 reply      
As someone who flagged one, because they were articles that clearly were simple direct breaking news articles of general interest with no hook for discussion beyond people's prejudices. They are important news articles, but not something that people are going to miss without HN and not something well suited to the kind of discussion HN exists to foster.

This is, of course, subjective, and people can disagree, but HN replies on subjective and largely community-driven moderation to maintain its character.

greenyoda 2 days ago 3 replies      
As per HN Guidelines:

"Off-Topic: Most stories about politics, or crime, or sports, unless they're evidence of some interesting new phenomenon. ... If they'd cover it on TV news, it's probably off-topic."


As for your example [1], I remember that there were dozens of articles about the same topic that were killed by flagging, because they were off-topic for the same reasons as the current story (TV news/politics/crime). You just happened to find one that slipped through the cracks.

Ask HN: If you have a hard time reading can you still be good programmer?
11 points by Onixelen  3 days ago   10 comments top 8
jerven 3 days ago 0 replies      
One of the most impressive programmers I know is blind. So yes,it is possible.

Being dyslexic myself I can say some languages are easier for some people than others. For example I like java verbosity and camel case as it helps with my particular variety of reading problems. This frustrated me because I love python in its philosophy but I can't work in it.

dqdo 3 days ago 1 reply      
My brother reads on average 0 to 1 book a year and he is a better code than me. I personally read about 50 books per year. There is nothing about programming that requires you to be a good reader. If you are an avid reader, you will get some more interesting ideas to make your life and work more fulfilling. If you study another language, you will find many similarities with the grammar structure of a "human" language and the grammar structure of most programming languages leading to much cleaner and more well formed code. As a programmer, as long as you can think clearly about your problem, understand your users, and have a good understanding of the documentation of the tools that you are using you should be fine. Reading more exposes us to ideas that we would usually never think of ourselves but in my personal experience there are few ideas that come through this way. Most things come to you the old fashion way -- trial and error. As long as you are persistent and dedicated to your craft you can become a good programmer regardless of where you start and how often you read.
nness 3 days ago 1 reply      
I have a degenerative eye disease and have worn many different variety of contact lenses (RGP, scleral, piggy-backing etc) before eventually undergoing a corneal transplant.

I made do for years, it has never been much of an inhibitor.

stevenwiles 2 days ago 0 replies      
Yes, some of the best programmers I've ever met had a hard time reading.
makach 2 days ago 0 replies      
yes, most code is (jokingly): write once, read never^^

It is also said that it is 10x more difficult to read code than to write it.

If you enjoy it, practice. Comment well.

If there is something you don't understand, rewrite, break it up into smaller pieces. it really takes a long time to understand things, considerable effort is most of the time required - but it gets easier as your skills improve.

For your own sake or for whomever might read code in the future. Keep it small, simple - It really helps!

spotman 3 days ago 0 replies      
Depends how hard you try, but don't let reading stop you!

My greatest mentor was mostly blind. He could see the terminal but would need to be about 2-4 inches away and would be energetically moving his head as he read the contents of the screen.

amorphid 3 days ago 0 replies      
I have a super hard time reading. ADHD and all that. Getting started with a new tool is hard, but I power through it. Sooner or later it gets easier.
bjourne 3 days ago 0 replies      
It depends on what "hard time reading" really means. But generally the answer is no.
       cached 17 July 2016 20:05:02 GMT