hacker news with inline top comments    .. more ..    29 Jan 2017 Ask
home   ask   best   2 years ago   
Ask HN: Which tool do you use to configure your DNS entries?
2 points by wkoszek  5 hours ago   3 comments top 3
stevekemp 3 hours ago 0 replies      
I suspect most individuals use online control-panels, from their domain-registrars.

If you need to be dynamic, or outsource your DNS, there are options from Dynn, Digital Ocean, Amazon, etc, which allow you to use their API (and optionally a panel-interface).

Those APIs can be wired up to allow you to update things frequently if you wish, for example automating zone-transfers from a hidden-master, or converting a git-repository of text-files into live DNS entries.

Really your question is quite broad, and a more specific question would be required to provide a decent reply.

chrisked 2 hours ago 0 replies      
Configuring mostly through the web interface of dnsmadeeasy. Great service, good pricing.
skiltz 2 hours ago 0 replies      
Ask HN: What are the things/informations that you cannot find on internet?
3 points by aloy  7 hours ago   1 comment top
usgroup 23 minutes ago 0 replies      
All those things on the edge that are actually the difference between success and failure, that wouldn't be so if everyone knew about them ...
Ask HN: What's the most unexpected social convention you've discovered?
12 points by EleventhSun  18 hours ago   3 comments top 3
usgroup 26 minutes ago 0 replies      
Whether it's investors/bosses/clients, if you're invited to share your weakness/inexperience on premise that doing so is a sort of strength through honesty; it's a trap, and the right answer is expected to be the opposite.
Sevii 6 hours ago 0 replies      
When you meet someone you often say things like: "Hey how are you doing? or "How is it going?" These phrases are not intended to be literal questions but are actually used to gauge the other person's feelings towards you. From their tone and the length of their response you can determine whether they want to expand the relationship or are indifferent. These meaningless phrases are actually an important part of social interactions, despite having no apparent meaning.
oldmancoyote 8 hours ago 0 replies      
In parts of Mexico it's considered embarrassing to admit not knowing how far away someplace is. The conventional solution is to use the code phrase: "Quatro kilometers, seor.
Ask HN: What is the best tech stack to develop a SAAS Service?
32 points by AgharaShyam  1 day ago   22 comments top 10
shotgungg 1 day ago 1 reply      
I wanna say "There are no best tech stack". It all depends on your use case.

What language are you good at OP?

You can quickly mock up majority of your use case using PHP, ruby or even Node.

Create a monolithic app and stay away from microservices until you have clearly drawn service boundaries. I'd say (6 to 12 months) in production. You dont need the headache of the distributed overhead.

Just keep in mind that you should "write code that can easily be disposded or replaced, not extensible"

For generating client sdk's i suggest using swagger. Grpc is there but i have trouble grasping protobuf sharing at the moment

For user clients, i would go for react native.

You're better off using a 3rd party for analytics when you are starting up: if you have the money, I'd suggest using segment, new relic or even google. Else, do it with prometheus or kibana.

My 2 cents

pacnw 20 hours ago 0 replies      
First, do know that the scope you have outlined is a huuuge undertaking. Maybe think of limiting the scope to start off with (inventory mgmt OR dealer mgmt OR accounting OR payroll). For tech stack, my suggestion is to use a back-end that provides as much out of the box as possible.

Ruby on Rails provides huge bang for the buck with their integrated database ORM, as does Phoenix (what I used). Your scope involves a lot of referential data, stick to traditional robust SQL database system (Postgres for example). If you use a NoSQL db, you may be quicker out the gate (as it'll take any JSON you give it), but once you get to the analytics with lots of joins, it won't be as much fun (personal experience). Also, I would suggest using the server frameworks' rendering engine to get your MVP up and running, as you can then fast iterate between data model changes and visual representation (i.e. HTML output), and avoid front-end builds and all that encompasses. Phoenix is very snappy, and with something like Turbolinks can potentially be as snappy as a dedicated front-end app.

Personally, I needed very interactive front-end, so had to build a separate front-end using Ember. I found Ember with Ember Data provides a robust toolset that manages complex data. I also have experience with React and Vue, but keep in mind with their state management (e.g. Redux / Vuex) that you'll need to manage complex data relationships yourself.As far as mobile, don't think native, as you'll need to learn specific technologies to implement that as well (more time...). Grab a bootstrap template that is already responsive, and you can run the same web-site on an iPad (forget the phone initially).Good luck!

source: just finished a 2 year build of an investment-related accounting and analytics webapp

gii2 1 day ago 0 replies      
Generally I would go with .NET Core - it is still in its infant stage, but by the time you have MVP it will be OK - Microsoft are throwing a lot of efforts in this direction.

For the mobile apps - Xamarin. You will still write C#, just use a different way of thinking.

Having the same technology stack in web and mobile will allow you to reuse skills one day when you build a team.

AgharaShyam 1 day ago 2 replies      
So what i am planning to build is SAAS service that provides all the feature's listed above and more, customised for an (unspecified for competitive purpose) industry. The web client is used for entry of data related to sales, stock, payroll. I am also making apps for various operator's inside the plant to upload data using their android phone's and tablets.

Then i want to process and display all this data (related to Manufacturing, Sales, Marketing etc) on web, iOS and Android.

So essentially there will be apps for employee's working in the plant (for data entry) as well as for the managers and owners (to monitor everything and make decisions)

I want the web dashboard to look somewhat similar to - https://demo.baremetrics.com

And since i have no experience in building mobile apps i want to know what languages/frameworks would be best suitable to develop good/native looking apps for iOS and Android using web technologies.


kayman 1 day ago 1 reply      
What language or framework do you know well right now?Use that.
hcarvalhoalves 19 hours ago 0 replies      
I would suggest Clojure to reuse code across the backend, web (ClojureScript) and mobile (w/ React native). That can help with time to market.
i336_ 1 day ago 1 reply      
Some additional details about the project may be useful to others - you've described a fairly wide range of scope at a rather abstract level here.

I'm quite confident a number of highly knowledgeable people have looked at your question but have been unable to answer for lack of context. Narrowing things down a bit would likely get you more focused answers.

With that said, the best tech stack is the one you already have in your pocket. You could argue that this is why having a good all-around knowledge of all of the major stacks is a good idea.

siquick 1 day ago 0 replies      
Language should be the one you know best, and if you're aiming to launch both web and mobile apps then make sure you build with an API-first mindset to make your life so much easier.
fantasyui-com 12 hours ago 0 replies      
Heart and Love, or Ghosts in the Machine.

You learn what is evolving, and you grab onto it, and evolve right with it. This is easy territory for flame wars and "whatever fits you"/"there is no best stack", but that's not the full picture.

Your survival depends on what you know, life is full of surprises, death in family, cancers, car accidents, addiction, breakups, and depression.

Imagine a warrior, ask him, "what is the best weapon?" and can you really imagine him saying "There is no best weapon", no, s/he would never say that.

You go on the most popular code hosting website, you sort by number of stars and begin at the top.

To give you a specific answer "iOS, Android and a Web App" in context of "Inventory Management - Dealer Management - Accounting - Payroll - Analytics" is Apache Cordova, (iOS, Android, and others), you use npm/node this way you will have one code base, you won't have to write the same code in multiple languages (just imagine scaling a live data sync requirement in one app and then standard REST in another -- keep it all in one language, or you will fail.)

"Inventory Management - Dealer Management - Accounting - Payroll" is all pretty simple (but, please explore ideas like http://vorpal.js.org/ just to develop your API before getting to G-UI, finish your programs in the terminal first.

Don't pretend programs are written GUI first, they are not. GUI is a leaky abstraction to say the least.) Don't fall for redux, relax and use https://github.com/mobxjs/mobx for actual GUI, (by the time you get to this part https://vuejs.org/ will rule)

And for your Analytics front-end D3, it is a departure from standard JavaScript but it has a lot of love inside.

Finally, remember develop commands/API first, get your apps working in the CLI and you will finish your program before starting it. Think about using the power of Unix (https://www.npmjs.com/package/commander), for the love of all that is mighty think about IRC, NOBODY! has time to learn to use your apps/GUI and NOBODY! ever needed to learn how to use Siri, so create a Command Line Interface version of your program and before you jump to React/Vue meditate over https://hubot.github.com/ and programs like Siri.

Finally, if I was facing your requirements, I would build a wiki/forum where your users would interact with bots. Over time I'd rip put some of the robotic guts and boldly go where humanity needs to be headed, I'd replace them with what I call Artificial-Artificial Intelligence, networks of Human Mechanical Turks where anybody could participate.

Neural networks are easy to train, but they are also easy to trick. Nothing will beat a random sample of Humans from across the world reaching a consensus on a tough decision.

In closing, People, Real Hearts, Human Minds, powering your network would share in your profits, and you'd do your part in battling what ails us all, World's Poverty.

If a mother in Rwanda and a Boy in India participating in your Mechanical Turk can find their way out of poverty, by helping your to detect fraud in your circuit. Then, you did your part, to help Humanity grow.

https://www.youtube.com/watch?v=XGK84Poeynk <3

dsacco 22 hours ago 1 reply      
There is no "best" tech stack. In fact, this is one of the least important questions you should be asking when starting a software company. In rare cases your choice of tech stack will have a meaningful impact on your business outcome. For example, Whatsapp probably did benefit quite a lot from deploying Erlang. I would argue that if you have to ask this question, it's the wrong question to focus on.

In almost all cases, the tech stack is essentially meaningless. This runs counter to what we frequently want to believe as engineers because there certainly are meaningful technical differences between languages and frameworks. These differences just don't generally translate to meaningful business results.

For example, I am aware of a SaaS company with fewer than five employees total that generates over $3M in revenue annually. The profit margins are mouth watering - total non-payroll expenses are high five figures/low six figures each year. Everything is developed with PHP and MySQL - it would be vilified here, but it's more successful than virtually all the SaaS companies mentioned on HN.

I cannot tell you how many YC companies I have worked with that use Python, Ruby, JavaScript, Go, etc. At this point when I'm on a scoping call with a founder, I can roughly map out when the company was founded +/- a year simply by listening to their technology choices. I have not seen any meaningful difference in whether or not the company ultimately went on to great success based on the tech stack. Instead, I have seen companies go on to great success based on proper identification of real pain points, product-market fit, marketing and ability to execute well while wearing many hats. (But do keep in mind that this is anecdata and subject to usual biases of statistical rigor, or lack thereof).

My advice to you is this: develop your software in whatever language allows you to think more about business decisions and less about technical decisions. Your aim should be to build fast, iterate fast and fail fast. Many engineers who start companies struggle with this because technical decisions are their comfort zone, but your company will succeed or fail based on how well you identify market opportunities and figure out what your users want. If you just happen to be most comfortable in an "academic" language or a really trendy one, go ahead and use it. However, if you're most comfortable in Python, but you fetishize functional programming or React + Node.js because of the Medium posts that pop up on HN, go with Python.

Practically speaking for you specifically - I would first revisit whether or not you actually need a web app and two mobile apps. Could you get away with a minimal web application and choosing only one mobile application to start? Maybe develop in iOS or Android first, observe how your potential customers use the app, address grievances and product a mobile app for the other platform in the next iteration.

As for the actual technical choices - if you know several ways of developing iOS/Android/web applications, go with what is most familiar to you unless you have clear and incontrovertible evidence that one technical choice is clearly superior. If you have to learn a new tech stack to develop one of these, then 1) don't focus on it now, focus on market validation and 2) choose tech stack with the best combination of stability and ease of use to get up to speed with that platform.

Good luck!

Ask HN: How to best teach a group of children how to code?
246 points by jiblyyyy  1 day ago   110 comments top 70
mattferderer 1 day ago 8 replies      
I've done this for several years. Here's what I've learned.

TLDR: Focus on getting them to have fun & enjoy learning about 'code'. Don't care so much on how well they learn it.

Every kid is unique & will respond to different things.

Social & mentors are awesome. It's usually more fun to build with others if possible. Also they will want to easily share & show off their creations with others.

Show them how to "hack" Google with the browser's dev inspector tools. Wins them over every time.

Give them simple partially completed programs that they can modify. I've had a lot of success with a simple trivia game that lets them start by modifying the questions/answers & the replies it gives. A great first lesson in how to use strings & gets them looking at the code. They can then share what they created with others (social aspect) & have them play their game.

Do NOT lecture to them or try to do long demos. They often listen to teachers lecture all day long. They want to have fun & explore. They also don't care about types or any other computer science terms until they've created a lot of things & are trying to figure out why they don't work.

I've had decent results with Scratch. For pure beginners though, still start them off with a semi-completed program.

muaddirac 1 day ago 4 replies      
I used to help teach kids (12-16ish) how to code.

One thing that we always did towards the beginning of a class was an exercise where we tell them to write down the steps to make a peanut butter and jelly sandwich. Then we'd literally get bread, peanut butter, and jelly, and follow their instructions to the letter. No one ever adequately describes the process: "put peanut butter on bread" - With what? the jar is closed, I can't! etc.

You might argue this introduces too imperative a thought process - but it gets the "computers do exactly what you tell them to" idea across very well.

dopeboy 1 day ago 0 replies      
I've been volunteering for three years in the classroom on behalf of a non-profit [0]. We teach HTML, CSS, and jQuery. Here are some high level lessons I've learned:

* Don't teach unnecessary details. For example, students get hung up on the <title> tag because titles are usually at the top of the page. Just skip or defer teaching it - it's not important to their end goal of understanding code.

* Reinforce that the computer is dumb. I tell my kids outright that the computer is stupid. What this gets across to kids is that when they talk to this box, they need to be very precise with their language. Syntax errors---a constant demoralizer---then become not a shortcoming of the student but of the machine.

* When you craft / select exercises for practice, make sure they always fit two criteria: instant gratification and fun. By the former, I mean the students are producing code and instantly seeing a visual reward for it. With the latter---adults always forget that kids are kids. They couldn't care less about "Hello world". But an "About me" page is fun because they get to express themselves. When you talk arrays, don't push and pop fruits. Push and pop Justin Bieber and Ariana Grande.

I might expand on this in a blog post. Happy to talk more offline.

[0] - https://scripted.org/

PS - if you're in the bay area OR NYC and want to teach underserved high schoolers how to code, reach out!

jpolitz 1 day ago 0 replies      
Consider Bootstrap:


Bootstrap 1 is computing tied to algebra concepts, targeted at the middle school age group (US grade 6-8). Students learn things like order of operations and what a function is while building up their own game. The curriculum has lots of activities that show students how to use code to generate images early on, which gives something immediately interesting and tangible to work with.

It runs in a stock browser (lots of students do Bootstrap on inexpensive Chromebook models), has a great support mailing list, and is used in schools across the US already. It also explicitly helps with math skills, which can be doubly useful in preparing for other STEM topics in the future.

ivan_ah 1 day ago 1 reply      
It depends on the kids' age. Older kids could probably handle Python though setting up + computer availability might an obstacle. If they have access to shared computers maybe javascript could be good since they can test things out in the browser.

For younger kids maybe a block-programming interface would be good: https://developers.google.com/blockly/ || https://snap.berkeley.edu/ || https://scratch.mit.edu/

For a less high-tech approach, you should look at http://csunplugged.org/ , e.g., http://csunplugged.org/binary-numbers/

In all cases I think the instruction/teaching is going to be keythrough the physical presence and support. It will be comparatively more difficult to bootstrap and get them to learn by themselves. Peer tutoring is very promising though: See: https://www.youtube.com/watch?v=dk60sYrU2RU and https://www.youtube.com/watch?v=y3jYVe1RGaU

It would be great if you write a blog post about this and what worked so people can follow in your footsteps. Good luck!

gkop 1 day ago 0 replies      
This curriculum is over 10 years old and I think doesn't go beyond HTML/CSS (I.e. stopped short of JavaScript), but I found at least a couple perennial helpful concepts for teaching young kids (the original developers of the curriculum were really smart and dedicated): https://www.scribd.com/mobile/document/58467154/Wired-Woods

I taught this curriculum to 120 or so kids aged 6-13 from underprivileged backgrounds in the Boston area. The experience changed my life - kids are so amazingly smart and learn so fast - and they ALL got really into making websites! I have no doubt that for at least a couple of my pupils the early exposure led to success in tech careers, helping to break them out of generational poverty.

The Web is an incredible platform for learning, self-expression, creativity, and empowerment. Unfortunately in the age of iPads etc. I think it's more difficult now to get kids into web development than it was 10 years ago.

My contact info is in my profile if you read the curriculum and want to ask any questions.

ChrisBland 1 day ago 1 reply      
Logo -- it helped me learn when I was younger. The best part is as it is visual, kids can see how what they type changes what happens on the screen. It gives them instant feedback in to learning how to give machines instructions. This software can be loaded on any laptop or other computer. It doesn't require any crazy hardware either. https://en.wikipedia.org/wiki/Logo_(programming_language)
bearble 1 day ago 1 reply      
I taught a group of 9-12 year old basic logic and algorithms using Scratch to animate a scene.

One kid wrote a basic brick breaker and another pong.They all seemed to enjoy the process since it's pretty straight forward drag/drop logic.


faster 1 day ago 0 replies      
I taught a class of 10-year-olds an hour a day for two weeks a while back. We used scratch for programming, but the first day, we made paper airplanes. First, two kids sat together while one made a paper airplane and the other wrote down the steps that the first one took to make the plane. Then they traded instructions and tried to follow someone else's steps. This got them thinking literally, and they had very little trouble with missing details after that.

After getting a jumpstart, they started building games using Scratch and sending them to each other to play (test). That's the hands-off part. The prep was simple instruction in reaching a goal with code, including the importance of accepting feedback from others. The school had already taught them to be respectful, so I didn't have to deal with a lot of egos. The boys all knew that some of the girls would be better programmers, and didn't fight it.

umutisik 1 day ago 0 replies      
At the UC Irvine Math Circle, we teach students aged 11-16 functional programming with Haskell by having them make 2D images with functions.

It was easy for the students to get started because it was connected to math that they already knew. Just different notation.

We use a web-based interface based on glot.io that was popular on HN a while back. The code is run server-side in docker containers.

Source code and screenshots:https://github.com/umutisik/mathvas

Web site:https://www.mathvas.comlogin details if you don't want to sign up:email: misik@uci.edupassword: guestguest

ashark 1 day ago 1 reply      
Fool-proof steps to produce a software developer:

1) Force them to learn how to navigate filesystems, the basics of file-based config, how to find and download files, and basic networking to make their video games work.

2) Give them little money, but a decent Internet connection, and make 3rd party private discussion forum solutions expensive, so they have to learn Linux and DNS and how to configure a webserver and a database and one or more scripting languages to stand up a discussion forum for their friends.

3) Make doing similar things for others pay way better than anything else they can do, even if they don't really like doing it 40 hours a week. Make this be true year after year.

I can vouch that this will work.

laurieg 11 hours ago 0 replies      
I have done a little teaching with younger age ranges, coding and math included.

I had a lot of success with 'unplugged' computer science activities. Basically, any activity without computers. Let's learn what an algorithm is. Let's play with binary and make a 'secret code'. These activities are engaging and teach something worthwhile. It's very easy to get bogged down with tools, syntax and minutia when actually programming. For younger age ranges definitely try some computerless lessons.


iansowinski 1 day ago 1 reply      
Check out @ntoll work, I was on one great speech by him at pyconf about teaching kids with micro:bit and Minecraft.

I have no experience in teaching kids how to code, but I have quite big experience in working with kids in scouting, and what I can advise is to do with your students things that really work, and are not considered "boring" - like controlling LED lights, "hacking" websites with dev tools, making computers in Minecraft, etc. Your mission should be to open their minds and spark a passion to coding, then they'll learn a lot on their own and will have own ideas for projects.

krsmith35 1 day ago 0 replies      
This thread is amazing. I started a company with the goal of helping kids learn to code, so I peed a little when I saw that the HN crowd was giving me ideas.

Here are the main things I have figured out (3.5 years, ~6,000 kids in 8 states):- It has to be fun. Lots of people have said this already, but I have tried and failed starting with academic rigor. Hello world was a psychological payoff in the past, but for this generation it's more like a multiplayer video game (easy on scratch) or fake hacking a news website (people have said this above)- It has to be social. Anyone can get online and teach themselves, but most people won't. We hold weekly meetings at public libraries where the librarians facilitate (they don't know how to code) and the kids teach themselves. Someone mentioned Sugata Mitra +1.- It has to be inspiring. I try to help the kids feel part of a movement, like for example getting the governor to talk at a hackathon, and hand out expensive prizes. But not all kids care about that stuff, and the goal is to figure out what they care about and show them how coding can help. Art, business, sports, etc.

To the original post - I know a lot of inner city, rural and tribal libraries that would LOVE to have a shot at those donated laptops.

callmeed 1 day ago 0 replies      
I've been teaching after school programs and community classes through our university for a couple years on and off.

I've been using the CS-First curriculum from Google. It uses Scratch as the programming environment (a visual environment from MIT).

Overall, I like the CS-First curriculum a lotthough some of the themes are better than others (some lean towards animation/storytelling and are light on actual programming topics). In my workshops I almost always inject some of my own lectures and exercises with the kids.

Biggest issue I've run into is with Scratch being Flash-based. I'm starting to see browser issues more often (especially in a tightly controlled university lab). This could be a big issue for you if you're teaching kids remotely.

One new thing I'm looking forward to trying with a class soon is Hopscotch. It's a scratch-like visual programming environment for iOS. I've tested it on my own kids and they love it. Plus they put out a ton of useful videos and tutorials.

Good luck




troupe 1 day ago 0 replies      
CS Unplugged (http://csunplugged.org/) has some good resources for teaching CS concepts without needing a computer. I'm not sure how easy they would be to do at a distance, but you might find some aspects that would work well.

Bootstrap World (http://www.bootstrapworld.org/) is a curriculum for teaching CS and Algebra while making a simple graphical video game using Racket (similar to Scheme). You can do the exercises using Dr. Racket IDE or by using a web-based IDE (http://www.wescheme.org/).

You also might take a look at Picturing Programs (http://picturingprograms.com/) and How to Design Programs (http://www.htdp.org/). Both of those may be more advanced than what you would want to start with, but they are both focused on teaching computer science concepts more than the particular language and both are aimed at beginners without any background with code.

mjhoy 1 day ago 0 replies      
I've done a little of this with 9-12 year olds. The most important thing is quick feedback and keeping it simple. They absolutely loved making websites. I taught them enough HTML to get started and set them up with a editor and preview window. I wrote a little web app for this, so that they were editing a "live" site they could show their parents when they went home (or keep working on it, on another computer). It was super simple and just had the functions they needed. Also, as someone else suggested, using the inspector tool to mess around with existing websites was really fun for them.

Another project was using arduinos -- and I even got them writing C, which more or less worked. You didn't need too much code to blink a light and they loved that. The mix of coding and the hands-on wiring up their breadboards kept it engaging. We did a little project where the light blinked with a frequency related to a temperature sensor, so when you put your finger on it, it would blink faster. One kid had the grand idea of having it blink faster when cooler and slower when warmer, and watching him figure out the math was great.

kevindeasis 1 day ago 1 reply      
I'm teaching three of my younger siblings to code.

It was one of the more meaningful things that I've ever done and was nothing short of hard.

Here are the things I've learned teaching my siblings full stack development in a few months.

You have to be patient, programming is complex and takes time. Sometimes you have to re-introduce the basics multiple times and hold their hand along the way as they try to connect the dots.

Offer them free food, support their interest, help them with their school work, reduce their stress levels, and take a keen interest in their hobbies

Build something right away, and introduce theory immediately after the project is finished. When introducing new concept explain it in an ELI5 fashion.

Give them multiple resources. Sometimes one source of knowledge is not good enough and giving them other resources not only helps with repetition, but it gives them other places that will explain the same topic in a different manner.

sailfast 1 day ago 1 reply      
A nephew of mine (~9) got a Kano for Christmas and the setup and all the gamified coding exercises were really fun. He really enjoyed them.

Perhaps something to explore as a platform as well as it's not too expensive and comes with what you need to hack around.

It comes with Minecraft Py installed and has a few tasks to customize a level, character, etc. Python dev tools comes installed as well as Scratch and other exercises.

The idea of gamifying tasks across the platform is interesting especially if you think of a class of folks and a leaderboard or something - maybe not something to stress but some folks like competition more than others to drive them to learn.


rb808 1 day ago 0 replies      
Take a look at code.org, its a resource for teaching coding. I haven't used yet but was interested in https://code.org/minecraft for teaching kids.
justjonathan 1 day ago 0 replies      
I have been extremely impressed with the free ciriculum and environment at https://code.org/ . It has lots of child friendly skinning and bite-sized "puzzles" that teach you step by step but build real understanding of more complicated ideas. I have "assisted" mainly watched and answered occasional questions with a bight 7 year old who has completed Course 3, which uses a scratch like visual block programming enviroment.

There is a more advanced class that teaches javascript.

nrjames 1 day ago 0 replies      
It depends a little bit on the age of the children. One important thing to consider is that the sooner they can see visuals that are produced by their code, the more they will be able to understand the cause/effect of programming. I've taught groups of middle schoolers to code with Processing and they've far exceeded my expectations. Daniel Shiffman's resources (http://natureofcode.com/ and his YouTube series) are great.

You can also get things up and running really quickly with LOVE2d and Lua. love2d.org

yumraj 1 day ago 0 replies      
Going by my personal experience with my kid, I think the best tool at the moment is a Raspberry Pi + Minecraft Pi + Python. Python and Minecraft Pi edition are both included by default in Raspbian and there are several free resources, such as https://www.raspberrypi.org/learning/getting-started-with-mi...

It is an extremely rick environment..

owebmaster 1 day ago 2 replies      
Games! Find games that the players can extend it with programming. It is the best way to make kids interested, imo. At least was what attracted me (games & animes).
v4n4d1s 1 day ago 0 replies      
My first programming experience was a course for about ~10 kids between 8 and 12, where they showed us to program Lego Mindstorm roboters with NQC.http://bricxcc.sourceforge.net/nqc/

Some other thing could be Scratch/Kara, but I'm not sure if it exists in english and personally I don't like it.

antirez 1 day ago 0 replies      
I had good results with two children using something I wrote for this purpose: http://github.com/antirez/load81. Simple instructions doing something graphical was BASIC selling point, and how many children in the 80s learned, and IMHO still works.
vram22 1 day ago 0 replies      
Give them LOGO (the language), teach them a bit of it, give access to the manuals / online help, and set them loose on it.

Stand back and see the fun :)


teach 1 day ago 1 reply      
I've been teaching children to code for 20 years.

The book I wrote is designed for self-study and seems to work pretty well for some kids.

More details on my blog here: http://grahammitchell.com/writings/how-i-teach-beginners.htm...

splatcollision 1 day ago 1 reply      
Great question! I'm a fan of the Mozilla Thimble project - "An online code editor for learners & educators" - https://thimble.mozilla.org

Easy to use code editor with live preview, fun starter projects to remix, easy to follow tutorials.

Sholmesy 1 day ago 0 replies      
The most important thing is getting them to have fun, and have a positive association with coding. I use to help out with a CoderDojo, teaching kids of all ages, and the best thing to do was get them to have fun. Kids that actually enjoy the content they are learning, will learn much better.
Angostura 1 day ago 0 replies      
If you're interested in using Scratc, check out the materials in the UK's Codeclub. I've run a lttle club in a primary school based on Code club and it went very well


katesull 1 day ago 0 replies      
Codesters is a great way for beginners to start programming in Python. The drag-to-text toolkit let's kids get started right away and the text exposed in the editor allows and encourages them to start modifying and customizing the code. The platform is free to build and explore (www.codesters.com/project) or there are also structured coding lessons like the one here: https://www.codesters.com/curriculum/intro-to-codesters/Buil...
hywel 1 day ago 0 replies      
Hey, you should try this book which Scholastic published www.goodreads.com/book/show/28232614-coding-unlocked#other_reviews

It's available as an ebook as well as in paper. Short pitch: don't just learn to code by typing out existing code, learn how to think algorithmically and write your own code instead. Learn Scratch and Python side by side, seeing the same Computer Science concept in one and then the other. As well as the reviews, I've heard great anecdotal feedback.

Full disclosure: I wrote it. If I could get you a discount, I would, but I don't have that kind of sway with the publisher.

codingdave 1 day ago 0 replies      
Do not teach them how to write code. Teach them computational thought. There is a huge difference in approach, and in results.

I've been working indirectly with school districts doing this for a couple years now, and have seen great results from curriculum very similar to this -- https://code.org/educate/curriculum/elementary-school#overvi...

There are other courses for different ages, too. Not sure what age groups you are looking at...

Once they know computational thought, THEN teach them how to code for an app.

brentjanderson 1 day ago 0 replies      
Getting from zero to fun as fast as possible is key. Open up the DOM tools, show them a couple things, and step back. Be attentive to questions, encourage students to share their discoveries. Show them the console and how to show a prompt, alert, console.log, and set variables. Make a simple script and email it to them to paste into their console to do something fun, like add a CSS spin animation to images. The ones most interested will explore why it works and their curiosity will be the engine of their own learning.
samayshamdasani 1 day ago 0 replies      
Kids want to have fun while they learn. As a fifteen year old, I'm sure this can be by building interesting projects that has to do with characters they identify it - maybe like a website with pictures of them and describing who they are. (HTML, CSS)

After some of that, you can move on to JS where they'll actually understand programming logic. I built a site to teach people to code the web. Maybe it'll help you a bit: https://enlight.ml

salmonfamine 1 day ago 0 replies      
I've done this before as an instructor as a tech camp. One great activity for the 12-16 age group is teaching them to mod minecraft.

This is a little more advanced, obviously, so it's not a great activity for total beginners. However, once a kid learns that they can make exploding blocks just by writing about 5 lines of code, they're totally hooked.

It also gives them an initial idea as to what real software looks like. Once that is demystified, their confidence as coders increases substantially.

andreshb 1 day ago 0 replies      
Without being present? Partner with other organizations that are present. At Coderise.org we discovered that the most valuable part of our after school 8 week program for teens was the time with the mentors that also serve as role models, those relationships are kept for years after the program and that's how the kids continue on a path of software engineering, participate in the local engineering meetups / community and end up studying engineering, building startups, and giving back
cableshaft 1 day ago 0 replies      
You can get them thinking in a programmer mindset through some board games. There's a whole 'programming' genre out there, where you have to choose the right actions in the right order to play the game effectively. Here are some examples:

* Robot Turtles

* Robo Rally

* Colt Express

* River Dragons

* Walk the Plank!

* Mechs vs Minions

Get them playing the games, and then after they're enjoying themselves and having fun, explain how it relates to programming, and replace the actions in the games with functions ("actions") you can do in apps.

sogen 1 day ago 0 replies      
I'd go with Construct2, the free version comes with a lot of games. It's very very visual.

I also used AppInventor, an online platform by MIT, let's you code visually in the browser, might be worth checking out.

Finally, show them this video:http://www.gamasutra.com/view/news/178938/Video_Is_your_game...

shawnmgoulet 1 day ago 0 replies      
Very timely - I am teaching students ages 8-12 & 10-15 coding this summer.

I've been planning on using Mozilla's Learning program (https://learning.mozilla.org/en-US/) a shot.

It's 2 separate sessions (1 for each age group) and 2 weeks in total. I have already outlined my plan based on it that I'm happy to share.

Does anyone have experience using their platform - share some thoughts?

ericssmith 1 day ago 0 replies      
Here is an essay I wrote following my son's first technical talk, weeks after his seventh birthday. It references what I believe works in teaching children to program.


adwww 1 day ago 1 reply      
I used to volenteer run a local branch of CodeClub in the UK - a supranational charity that produce their own courses based around Scratch, HTML / Javascript and Python.

It was my first time doing anything like that and found that CodeClub were really supportive and had a heap of resources for us to use.

Worth a look: https://www.codeclubworld.org

Beltiras 1 day ago 0 replies      
https://www.codingame.com/ is a terrific resource. Also, I've found that if youngsters enjoy (not just able to play, enjoy) https://www.factorio.com/ they are predisposed to solve programming puzzles as well.
closed 1 day ago 0 replies      
If you need a partner in crime, send me an email (it's in my profile)!

I build tools for teaching adults to code, but recently started volunteering for a non-profit that provides a couple hours a week for kids to come in and learn HTML, CSS, javascript. It's 75% them trying to play minecraft and roblox, but seeing a kid whip open the chrome inspector is pretty inspiring.

lojack 1 day ago 0 replies      
Make it fun! My company recently hosted an Hour of Code to teach young kids to learn how to code. Since your goal is to teach them without necessarily being present every day, you may need to change things around, but their website is an amazing resource of fun projects that help teach.


herbst 1 day ago 1 reply      
Check out what linda luikas does. Her work is amazing
KON_Air 1 day ago 1 reply      
Linear programming on paper first, then linear programming by code. I have no idea how to do that one with kids, without being present (since I barely managed to do it with adults, while being present).

Doing it on paper by hand first is more important then it sounds, so they can really understand a)what they are coding, b)how fricking awesome computers really are.

Quarrelsome 1 day ago 0 replies      
I've always figured that this:


was a pretty smart way to start out. Its possibly the opposite of what you want as it is completely unrelated to tools/manuals/etc.

bsvalley 1 day ago 0 replies      
Problem is, if we teach kids how to code today, they might end up jobless when they graduate from college.

Machines will code for us. I think we should push the vision further. We always try to apply the present for the future. The real future for these kids is not coding!

Tistron 1 day ago 0 replies      
I agree that it depends on age. I will be teaching high school kids next autumn and I have been looking at potentially using http://gomix.me where you can prep an assignment and they can easily clone it and get hacking.
nova22033 1 day ago 0 replies      
MIT scratch to get the kids excited about programming. Also a great way to learn basic concepts like conditionals and loops.Then "Teach Your Kids to Code: A Parent-Friendly Guide to Python Programming". Build fun shapes using turtle.Source: Teaching an 8 year old to code.
qHack 1 day ago 0 replies      
Went to a career day at a 5th grade class. https://studio.code.org/s/frozen worked for me, but its not coding per say. They still had alot of fun.

And yes inspect element is gold.

mig39 1 day ago 0 replies      
I've seen some great success with my own kids and https://www.tynker.com.

Starts at the very beginning, with a lot of variety in paths and lessons. Self-paced and gamified.

Not sure about the cost.

tyingq 1 day ago 0 replies      
I haven't used it personally, but Blockly is often cited as being useful in that scenario: https://developers.google.com/blockly/
linusekenstam 1 day ago 1 reply      

We run an after school classes program in Barcelona, Spain. Where we teach kids from age 4-15 "programming" or computational thinking.

Depending on age group there are different tools, and starting with the really young ones, we use tools like Hopscotch and other simpler coding apps, when we use technology. And even more fun is to learn about coding not even using any tech. So then we revert to using pen/paper/strings and ourselves, programming each other is a fun thing to do, and you can debug the code in group, and learn to understand how computer operates, and how to give orders.

Once the kids get slightly older, we use to go straight to scratch, (this is the first stop we tend to go to regardless of age if anyone is new, just to grasp concepts) This will not take to long if the kids are older than 10.

But even from 6 years of age we've seen enormous potential in using scratch, kids love it, it's visual in the output, super versatile in what you can do (we get blown away by the kids all the time). And you can indeed build very complex things with scratch, as well as you can produce a pong game in matter of minutes.

Main take away, if you want the kids engaged, get them super comfortable in Scratch, and get them to understand problem solving using computational thinking, rather than go straight to the browser and manipulate the DOM, that's not learning kids how to code, thats like peeking and changing values, not really getting to the core of programming.

Once the kids are comfortable in understanding that one thing can be solved in more than 10 ways, and that no real way is the right way (except if it is). Than make an introduction to text based programming, either looking inside scratch code, or by looking at something in the visual spectrum, like processing, this is a great first step and good jump from scratch. And it's easy to build on top of this and move into javascript.

When I'm mentioning age groups it's only if they have zero prior knowledge about coding, we have 6 years old that program as good as 12 years old but the 6 year old kids have been doing it for a year or more and the 12 year olds are just a couple of weeks into classes.

So it's also about checking the temperature on knowledge. Once you start moving up the ladder on text based programming, it's important to understand how to keep the vast majority interested, and not just the .consoleLog(); persons interested. Keep in mind that programming comes in many shades, and not everyone is hard core math nerd loving, but still can be terrific problem solvers, if given the right tools to do so.

I would say the biggest take-away for us since starting KidsHackClub.com is that make sure it's fun, do not indulge in long demos, or make complex things, and show of big projects, it wont get the kids into coding, it will scare them away. So start small, and build up as time goes, and make things that are visual, no-one enjoys staring at lines of intigers counting in the console, sorry peps, it's kids from the touch generation, they have played with phones and tablets since they where born.

Would love to chat more, just hit me up on twitter @LinusEkenstam or @KidsHackClub and we can also do email, but ping me on Twitter and we can hook up.

GiorgioG 1 day ago 0 replies      
Teach them how to solve problems before you even start talking about code.
feiss 1 day ago 0 replies      
Aframe.io + bunch of cardboards

Easy as HTML, with option of adding more complexity via javascript. Very rewarding from the start, children get into VR from the very beginning.

sjm 1 day ago 0 replies      
Check out Sonic-Pi: http://sonic-pi.net

It's "classroom-ready", gives instant feedback and would be quite fun.

ben_says 1 day ago 0 replies      
tell them, they are not allowed to code!
nolepointer 1 day ago 0 replies      
First explain to them that you don't "code." You "write code" or "program." :)
yandrypozo 1 day ago 0 replies      
Use only papers and pens
monk_e_boy 1 day ago 0 replies      
MIT scratch and kudu. Kids love it. I teach from 12 years old up to 18. Primary school kids will enjoy Scratch. Things like animated greetings cards, tamagotchi, flappy bird....
camperman 1 day ago 0 replies      
I did it this way us9ing Lua and Love2d (love2d.org):

Teach them what data is: numbers, strings of characters, true or false statements. Let them play in the interpreter. Let them see the computer work for them. Teach them that a variable is just the name of a box and the value is the contents.

Then introduce tables. Just like a set of boxes with labels.

Then simple control flow. Now you can introduce them to Love2d and start them off making simple graphics programs.

Eight hours or so later, they can code small games using Love and will understand each line. Then you can leave them to their own devices and point them at further resources.

RichardHeart 1 day ago 0 replies      
jdlyga 1 day ago 0 replies      
operant conditioning
bayofpigs 1 day ago 0 replies      
If they are less than 10yrs, look into Alice: http://www.alice.org/index.php. Teaches fundamental building blocks while they play with scene creation. Have used it for several classes and each one was outstanding.

My favorite for older kids is to find an open-source video game with easily modifiable parameters, like lives, enemy count, sizes, etc., Start by asking them to change various things - class nearly runs on auto-pilot before too long.

Ask HN: What do you do when you run into poor or deceptive customer service?
40 points by jMyles  15 hours ago   42 comments top 24
tehwebguy 13 hours ago 1 reply      
This car rental p2p company in LA still hasn't paid me nearly $300 that it has owed since early October.

Their policies were very sound, otherwise why would I rent my car out to a stranger? But they completely blew off policy and have just stopped responding to me.

Sometimes they post on Who's Hiring posts here, I've replied there to get a response but no dice. Emailed the founder, called all the numbers I had (they never pick up my calls now).

I sent the founder another email today after seeing this thread, but I'm filing a lawsuit next week (it's like a 3 page worksheet in LA) and then I'm blogging about the process.

It's crazy to think that suckers like me are out there lending their cars to these guys based on the trust and policy of the platform when in reality there is no policy (and therefore no platform worth trusting).

oldmancoyote 9 hours ago 1 reply      
I'm afraid this won't help anyone in the U.S., but it will suggest what we in the U.S. could learn from Mexico.

I live part time in Mexico. I had a problem with Telmex (the phone company). Five times the said they would come and fix the problem, but they never showed. I walked down the street to the Profeco office, signed in, and in half an hour someone from Profeco was on the phone with Telmex laying down the law.

Profeco carries the legal force of Mexico's federal government.

The next morning at 9:00 A.M. Telmex was at my door and didn't leave until the problem was fixed.

Some might think that the U.S. has all the answers, but we don't. I wish we had something like this in the U.S.

zachrose 13 hours ago 0 replies      
I once dealt with a deceptive and/or fraudulent gym by filing a complaint with the Better Business Bureau. The gym called me almost immediately and gave me whatever I wanted.

It turned out that the gym was being sold, and the BBB complaint was probably a negotiation liability many times greater than what they actually owed me.

chris11 13 hours ago 0 replies      
Worst case scenario, I've found that credit card chargebacks are usually pretty effective. You don't need to deal with customer service anymore and you don't need to worry about getting your money back. I wouldn't really go there if you were still interested in doing business with that company though.
protomyth 13 hours ago 0 replies      
Complaining on twitter works if you can get someone to notice you unless its Apple (they don't care). At work, it is basically telling the next sales rep to call that I don't do business with companies I cannot trust. Some companies are easier to deal with than others. HP did right by me when we had a lot of hard drive failures in their netbooks ("uhm, that's getting to be a really high failure rate.. uhm... you got techs there right? well, why don't I just send replacements for all of them?"). Some forget they were supposed to return the computer after it was repaired.

I think its a lot like working with any individual. What they care about is particular to the company and it is often hard to know the correct thing unless you have experience with the company.

I did ban one company for about 5 years over a conversation that had me shouting at my phone and saying a word I don't normally say. It was quite strange as I normally speak slowly and lower when irritated while I try to figure out if I'm just being stupid or the person I'm talking to is actually a world class idiot.

Their rep (a different person) that called five years later was new and getting a lay of the land and I wasn't as diplomatic as I should have been. I imagine cold calling former customers is not a fun part of a reps day if their CRM doesn't warn them. I amazingly was still mad, but kept my voice even.

Sounds like Simple Mobile could really use a decent CRM or record every call because I get the feeling the metric is time needed to get you out of the queue or customers per hour. Reps do adapt to the metrics set not the goals of customer service or later sales.

Broken_Hippo 12 hours ago 0 replies      
It depends if I've options: Sometimes one doesn't, especially with prepaid mobile carriers.

Some years back, I had a pre-paid phone through T-Mobile and had ordered a refurbished phone from their website. Wound up needing repairs, under warranty.

Since it was prepaid, no loaner phone. The cheapo I picked up worked better as a flashlight than phone. But back to the story: I sent it in, and it didn't come back. I called a few times, being told that nothing was there. Then being told it was returned to me and I should have it. Each rep had a different story.

Each time I called, I had to go through the same troubleshooting to even be able to get anywhere. Most refused to escalate the call. This is pretty on-par with pre-paid phone customer service - I remember at&t had 2 separate departments for it. At the time, if you didn't have a contract, you didn't matter.

I finally got online and found an e-mail address for their cooporate office, complete with the name of the service manager for the company. I wound up speaking with one of his people in the main office.

Soon, I was sent a replacement phone.

Other times, usually with more traditional utilities, I've not been so lucky as the state i lived in had a weak public utilities commission.

Much luck to you.

alistairSH 13 hours ago 0 replies      
For a vendor I can live without, I just stop doing business with them. And a chargeback on whatever CC I used for the transaction in question, if I feel I was defrauded in some way.

For somebody like an ISP or cellular provider, where I don't have much option (in the US), I'm pretty much stuck complaining on Twitter, for the good that does.

For problems with consumer goods, Twitter can be good at getting quick responses from the vendor. Usually better for niche items, where the vendor has an image to uphold. As noted elsewhere, Apple probably doesn't care enough to respond.

Thankfully, I've never had a problem that was large enough to consider legal remedy through the court system. I came close on a car insurance claim, but it resolved days before I visited the local court (after months of being jerked around).

otakucode 10 hours ago 0 replies      
Depending on what you're dealing with, I tend to go legal/regulatory. For instance, I was building my own PVR like a billion years ago (had outgrown my hacked Tivo and cable companies hadn't started offering their own in an attempt to destroy personal recording) and found out that there were federal regulations which required cable companies to provide a cable box with a working Firewire port.

Talking to the local cable companies customer service and techs was useless, they either had no idea what I was talking about or insisted that it was not possible. So I found out that cable companies are regulated by the Public Utilities Commission. Placed a call to them. They had no idea what I was talking about either, but I cited the law and they looked it up and agreed.

The next day I got a call from the owner of the local cable company franchise, and he was very concerned. I got the impression that getting a call from the office of the public utilities commission is not a great day for a person in his position. Turned out all they needed to do was check a checkbox on my account and the firewire port started working. Had it up and going later that day!

If a company screws you properly, it usually means they broke a law. Find out what it is and who is in charge of slamming their hand in the door when they step over the line. Contact those people.

jMyles 14 hours ago 0 replies      
I really hope people will take the time to read these chat transcripts. They're truly insane. I almost can't believe it.
lebanon_tn 13 hours ago 0 replies      
Sometimes emailing a higher up executive helps. I had placed an order for an iPhone 6 a few years back when there was a 1 month wait. While waiting, the card they had on file expired and the charge failed when my phone was about to be shipped.

Conversations with customer support were going nowhere and they were going to place us "in the back of the line" again. An email to T-Mobile CEO's response team and SVP of customer support seemed to do the trick and our phones were shipped the next day.

sslHell 13 hours ago 0 replies      
I stop doing business with the companies, and avoid them permanently.

Residential Cable and Fiber Optic utility companies are companies I refuse to do business with.

Their employees hate their jobs, and I hate the prices the companies charge.

Realizing that there is likely a balance to draw between pricing and employee compensation, I don't fault the employees at all, for despising the living they must earn to put a roof over their heads. I also realize that running an infrastructure project like a fiber optic plant [0,1] is no small challenge.

Nonetheless, I really do not benefit from the service, considering what I get for the chunk bitten from my wallet on a monthly recurring basis. To compound this, having to negotiate with unhappy people, clamoring for a drop of power taken from my life and added to theirs, when something doesn't go perfectly, really leaves me dissatisfied enough, to never go back.

Paying an ISP money (my own money), I'd rate as a task about as enjoyable as maintaining SSL certificates.

[0] https://en.wikipedia.org/wiki/Outside_plant

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

laughfactory 8 hours ago 0 replies      
My wife and I, after years of excellent service from Amazon, had a couple spectacular failures. It was always from their India-based customer service, not resolved by talking to supervisors, required multiple calls and hours. In each case, after doing our best to get things resolved, we emailed Jeff Bezos directly. His executive care team efficiently and satisfactorily resolved our complaints. We hope that we're driving meaningful change there, and we appreciate his team patching things up, but it would be far better if the India folks would just get it right the first time.
philippnagel 15 hours ago 2 replies      
Complain on their social media channels. Public shaming works.
enitihas 11 hours ago 1 reply      
A friend of mine once had such an experience with an e commerce company. He wrote a script using the facebook API to comment his problem on every Facebook post of the company. He was contacted soon by the company reps and his problem was taken care of.
Norfair 5 hours ago 0 replies      
I use 'hess' to find all the email addresses of their company that I can possibly find on their website and start emailing all their employees every few minutes using a little script and a cron job.
drewjaja 12 hours ago 0 replies      
In Australia if it's telecommunications related, raise a complaint to the Telecommunications Industry Ombudsman (TIO).

For anything else raise a complaint toAustralian Competition and Consumer Commission (ACCC).

px1999 10 hours ago 0 replies      
I had to get historical bills from a terrible cellphone provider in Canada (Wind mobile, now Freedom mobile, now owned by Shaw communications) a little while back.

Their customer support process was useless (they'll send historical bills to third party organisations for stuff like background checks, but they're afraid that consumers will use the bills to prove that they're misapplying charges). Thinking I'd just just have to navigate their customer service departments, I started recording the calls (legal in my jurisdiction).

After several conversations with friendly but incredibly unhelpful CSRs (thanks to corporate policy), I started to look at other ways that I could get my info. I issued a formal request for all of my personal data under Canadian federal and provincial privacy laws (PIPEDA). Their legal department claimed that I issued the request incorrectly ("by email"), so I responded by citing the relevant clauses (never mind that there was a paper version that I sent at the same time). Then they made a couple of other similar claims (that PIPEDA doesn't apply to them, my reply was that telcos are specifically named).

Seeing that they were drawing things out, I started to respond with expansions to my request (asking for potentially damaging things like a list of who they intentionally or unintentionally disclosed my personal information to), and threatening to report the issue to the Privacy Commissioner of Canada.

Some combination here seemed to do the trick, someone from their corporate security department reached out to me by email, and had the authority and power to give me my data. They ended up charging me an exorbitant amount for the original request's export (and never actually fully complied with my request for disclosures), but I ended up getting what I wanted.

I now take the opportunity to share my experience whenever possible, and figure that these types of stories being out there (along with the potential customers they lose) will provide the financial incentive for them to change their processes long-term.

TL;DR: CS process first, then recording, then escalating the request slowly using privacy laws to your advantage, then expanding on the request to give them time pressure (that eventually you'll request data they legally have to provide but practically can't), then providing pressure to respond by threatening to take it to a federal regulatory body.

walrus01 11 hours ago 0 replies      
Set up a VoIP system that records all calls. When you call the customer service department at any company, open with "I'm calling from a phone system where calls may be recorded, is that OK with you?". Unless you are in a universal single party consent country such as Canada.
a3n 13 hours ago 0 replies      
Complain to your state's Attorney General and whatever they call their consumer protection division.
denzil_correa 13 hours ago 1 reply      
The best way is to threaten to take them to courts and hope they will wilt under that threat. You could also try lodging a false/misleading advertisement complaint.
DanBC 12 hours ago 1 reply      
> What do you do when you encounter something like this?

I write a letter on paper and send it by mail to their complaints department.

waterphone 13 hours ago 0 replies      
Simple Mobile is a subsidiary of Amrica Mvil, who also own Tracfone. Their customer service and that of all their subsidiaries is a nightmare, in my experience. If you can manage to get past that, you can get good deals, but if they fuck you over, you're usually out of luck.

I upgraded from a feature phone to a smartphone with Tracfone some years back and they deleted most of my minutes/data in the process, and then gave my phone number to someone else as well. It took contacting about 13 different customer service people and posting publicly on their forums before I finally got someone who would reinstate the data (but my number was lost).

Most of my communications with them were very similar to this, incredibly frustrating, with people on the verge of moronic, who would disconnect me and stop chatting when I got pushy about wanting what I paid for back.

deafcalculus 8 hours ago 0 replies      
Turn to Twitter.
erik14th 13 hours ago 1 reply      
Hate the game, not the player.Being mad at the underpaid support guy won't get you anywhere, being nice might.

Capitalism trends towards monopoly, and a monopoly doesn't have to give a shit about how they treat customers as customers have no choice. So a radical(as in, rizomatic) solution would be to make people aware of the actual problem and claim for better regulation or lobby if you have the power to do it. Now for a personal solution, good luck (:

Ask HN: What new development technology in the last 3 years is worth learning?
59 points by derwiki  1 day ago   58 comments top 18
eranation 1 day ago 1 reply      
I would say the serverless model in general, is going to take off (it already is) really fast. Infrastructure as code, security as code. Big data, machine learning, neural networks/deep learning is taking off so without doing a PhD, at least high level awareness of the field is definitely worth learning, from Spark to Tensorflow, it's good to have familiarity with the field.

Understanding JWT and how it works as it seems to gain momentum.

Angular2, React, Vue I think are all worth learning and playing with as each developer will have a different taste. It looks like React is getting a lot of traction everywhere.

ES6, Promises, Async/Await, TypeScript, Babel, WebPack etc are definitely worth getting familiar with.

nerdywordy 1 day ago 4 replies      
React Native is gaining a lot of traction for cross-platform mobile development. My company has started to transition to RN over Xamarin for our enterprise app development.

Functional languages have begun to gain popularity and coverage as well.

On the frontend Elm is excellent. On the backend Elixir and the web framework Phoenix offer top notch developer experiences.

If you have experience in the dot net world... Dot Net Core is shaping up to be a revolutionary rewrite of the dot net ecosystem. It's fast and lean, as well as cross-platform.

If you are into lower level languages, Rust & Go have picked up a ton of steam in the past few years. Until recently they have been stuck in the systems level programming niche, but Go especially is beginning to take hold for API and more "front side of the backend" development.

ryandrake 1 day ago 0 replies      
It depends on your definition of "worth learning". People are replying, rattling off laundry lists of technologies that are "taking off" and "getting traction" but that doesn't necessarily mean they are worth learning.

To me, learning is a time / long-term-benefit trade-off. You're giving up your precious and valuable time now to get something that you believe will pay off in the long term. I'd love to learn everything under the sun but I only have time to learn a few things. So, I will spend the time where I think the biggest payoff is. A bucket of 30 slightly-related but "hot this month" technologies is a lot of cost for unknown benefit.

If you asked this question 20 years ago, there was a similarly-sized laundry list of hot technologies one could have learned, but I'd argue only a few really would have resulted in lasting long-term benefit. C++ was probably one of them. Linux was probably one of them. HTML probably. WebTV? Probably not.

fantasyui-com 11 hours ago 0 replies      
https://nodejs.org/en/ and http://electron.atom.io/ Node is the server-side of JavaScript and Electron the cross platform desktop app (also JS and compatible with node). People have a lot to say on the subject of what is worth learning. I learned ASP/Perl/Java and I am not using them today, I still love them to bits, but there is no time/space for it today. Worth learning just may mean "what will be fun to use", meaning "what can you grow with today, that will take you to fun places in 2027". Can you see a future without the Web Browser? Can you see a Web Browser without the language that enables the Browser today? To be fair, ask is JavaScript evolving? And it is. ES6 is OK, it is the right path to take. Promise/let/const/Class and the arrow functions have fixed a lot of it. HN had RxDB on the front page today: https://github.com/pubkey/rxdb I paused when looking at "..for these plattforms" which listed: browsers, nodeJS, angular/ng2 (TypeScript), react, react-native, ionic, cordova / phonegap, nativescript, electron.

TLDR: ES6 and its surrounding environment.

modeless 1 day ago 2 replies      
If you're interested in computer vision, rather than using OpenCV you should learn about convolutional neural nets. The field is exploding right now and anything you learn is potentially applicable to a wide range of problems, even outside of computer vision.

You may get skeptics who scoff at the new approaches and say you should learn traditional computer vision or machine learning first. I strongly believe these people are wrong.

nunez 1 day ago 0 replies      
From an infrastructure perspective: Docker, Ansible or Chef, Kubernetes, any public cloud (AWS), the HashiCorp stack (Terraform, Packer, Vagrant, Vault)
linuxlizard 1 day ago 0 replies      
To start on OpenCV and deep learning and image recognition you should check out http://www.pyimagesearch.com/ I've found his tutorials and books to be very good.
rocky1138 1 day ago 1 reply      
The Unity game engine married to HTC Vive is really easy yet powerful. I'd recommend that.
Entangled 1 day ago 1 reply      

The best tool in your toolbelt. You could easily build apps for the desktop, mobile, server, watch, tv, linux, etc. It's the digital clay to build whatever you want to build. Your imagination is the limit.

silasb 1 day ago 1 reply      
React Native, Tensorflow, ESP8266, Elixir/Phoenix, Discord, Docker/Kubernetes.
johnnydoebk 5 hours ago 0 replies      
Looks like, most people here answer to the question "What tech stack are you excited about right now?".
headcanon 1 day ago 0 replies      
Here's our stack, I like it a lot and I feel like its fairly progressive without being too hip-for-hipness-sake:

Android: Java -> Kotlin

iOS: ObjC -> Swift

Web App: React + Coffee -> React + ES6 (Backbone models)

Website: React/ES6/Redux/Babel/Webpack with server rendering

Backend: Clojure at the core; Python for heavy number crunching

pizza 10 hours ago 0 replies      
- tensorflow

- ESP8266

- ethereum

- software defined radio projects

- ketamine as an antidepressant

- https://www.addgene.org/vector-database/

^ note, I just think these are all technologies that have yet to reach their true potential

throwaway2016a 1 day ago 0 replies      
- Serverless architecture

- Immutable architecture via Docker & containerization in general

- React & React Native

- Most of the fully-managed services on AWS... a lot of them are turn-key for things that used to take a lot of overhead

- Blockchain

bandrami 1 day ago 1 reply      
Speaking as a sysadmin, definitely ansible. (Yes, it's over 3 years old, but it certainly blew up in the past 3 years.)
owebmaster 1 day ago 0 replies      
Clojure & ClojureScript (over React)
Xcelerate 1 day ago 1 reply      
Julia. I've been using it the past four years for my research, and I love it a lot more than Python. It's a very well-designed language that was intended to be high performance from the beginning.
EliRivers 1 day ago 0 replies      
C++14 and C++17.
Ask HN: How do I understand Rust?
79 points by JacksonGariety  1 day ago   54 comments top 20
ycmbntrthrwaway 1 day ago 7 replies      
> It seems like everything I know about structuring a program goes out the window when borrowing comes into the picture.

Try to avoid structured programming and mutable state where possible. Apply functional programming idioms and use immutable data structures if you can. Rust adopts many features from functional programming languages: http://science.raphael.poss.name/rust-for-functional-program...

Borrow checker will interfere only when you are trying to manage mutable state that is hard to reason about. If you absolutely must keep some mutable data structure around, you can fall back to unsafe code. There is nothing wrong with it, but make sure to put all unsafe code into separate module and provide only safe interface, that is absolutely unbreakable no matter how you use its public API.

Make sure you know about this module: https://doc.rust-lang.org/std/mem/ It is nearly impossible to create complex data structures without it, even linked list implementation requires it. Learn to use replace, swap and .take(). These functions provide great example of a safe API for unsafe operations.

steeleduncan 1 day ago 2 replies      
I found that my brawls with Rust's borrow checker ended when I made ownership the focus of my code design. Coming from a C++/Objc/Go background I was used to creating an object on the heap and holding a reference counted/garbage collected pointer to the object wherever it was used. This is shared ownership of state, a style of coding Rust considers to be so egregious that it is a compile error.

Initially I would use constructs such as Rc<Box<T>> in an attempt to write Rust code in my old style.It took some time for me to realise that Rust's borrow checker was not just designed to avoid occasional data races, but shared ownership of state as a whole, and the problems it causes. Once I ceased trying to resolve each localised problem with the borrow checker, and I designed my code such that each and every object has a clear owner responsible for creating, maintaining and destroying it at all times during execution, I have had no further problems.

At the point you "get it", it is worth comparing the code you eventually wrote to the code you would have written initially. For me, it seemed that Rust's borrow checker had forced me to code in a better, safer style, rather than brainwashing me into thinking it had, so I have continued using Rust.

steamer25 1 day ago 1 reply      

When you're writing (or read someone else's) functions, you should be considering three types of parameters:

 * (&) borrowed * (mut &) mutably borrowed * () moved
The borrow operator should be your default/go-to decoration. Don't use the more destructive exchanges until the compiler forces you to. As I write this out, I'm thinking this might be a small short-coming in Rust's design. I.e., read/borrowed should maybe be the default/undecorated behavior and special pains should be required to move a reference.

Anyway, borrowed means, "I just wanna read some stuff off of that. I promise not to change a thing!"

Mutable borrowing means, "Gimme that--I'm going to change it! Expect it to differ as part of the output of this function."

Moving means, "That's mine now! I'm going to wreck it beyond any usage you'd try to do after I'm done. If you think you still want it, better hand me a clone."

It might also be good to spend some time working through the book if you haven't already: https://doc.rust-lang.org/stable/book/

Here're some HN comments about advanced patterns:

 * https://news.ycombinator.com/item?id=13470592#13470904 * https://news.ycombinator.com/item?id=13470975 * Also recommends http://cglab.ca/~abeinges/blah/too-many-lists/book/

alfiedotwtf 1 day ago 0 replies      
"I keep end up fighting the compiler with borrowing errors."

To set expectations, I tell everyone that I've encouraged to try Rust that they will hit this same problem, then hate themselves and want to give up on computers and live in a cave. Once they understand that they aren't just going to "get" Rust in four hours reading the book while Seinfeld is on in the background, I tell them that when they get frustrated with the borrow checker, just re-read the "Ownership" and "References and Borrowing", "Lifetimes" chapters from the book and then rinse and repeat. I tell them that by the fourth or fifth time it will "just click". So far, so good.

I know this isn't the most ideal method, but until it's cemented, you don't really understand the mechanics of what you're able to get away with. Persist... we've all gone through your frustrations, but can see the awesome bright light at the end of the tunnel (no, it's not a train).

wyldfire 1 day ago 1 reply      
> I'm really not sure where to turn for help.

I get most of my help on #rust on IRC. But for those who don't prefer that the discourse site https://users.rust-lang.org/ is probably idea. Or if you prefer reddit, do /r/rust -- they have a weekly sticky thread for questions IIRC.

The community is super friendly so "I'm really not sure where to turn for help" should be easy to solve. IMO just keep asking questions until you can internalize the rules you're getting help with.

>It seems like everything I know about structuring a program goes out the window when borrowing comes into the picture.

I know squat about borrowing rules, but why not just toss things on the heap (is that 'Arc'?) until you get better?

BTW -- do you already have some familiarity with 'C'? IMO that might be a simpler place to start. It has virtually none of the borrowing rules but perhaps you could quickly find out why they exist in Rust.

zphds 1 day ago 0 replies      
Here's my understanding. Please correct me if I am wrong. Visualizing your program as a tree of values that are borrowed, owned, mutated through variables helps in reasoning about the borrow checker

When a variable owning a value goes out of scope all the children goes with it. Remember in rust, there can only be one owner to a value (Rc and Arc variables lets you have multiple owners but that's for special cases). Therefore, if you're passing a variable to a function you should either

1.) transfer ownership to the function being called.

2.) have the function being called borrow the value through references. Since this doesn't transfer any ownership you can have multiple references to the same value. The value and its children (think of a Vec<Animal>) are taken down from the tree it belongs when the variable owning this value goes out of scope.

That's the cool thing that does rust does. The compiler knows when to free things just by following this one rule. A value should have only one owner. The responsibility of managing memory is now taken by the compiler instead. Hence no dangling pointers or segmentation fault unless you use `unsafe` blocks where this assurance isn't valid anymore.

Visualize your program to be manipulating these multiple trees made up of diverse types.

tostitos1979 1 day ago 1 reply      
I've been doing software dev since I was a kid. In my mid-30s now. I spent almost a month with Rust about a year ago. I was very disappointed. The borrowing rules seem to have changed as the language had evolved. I found the Internet documentation to be very confusing. My conclusion was to let Rust be. It felt like coding with restraints, and as my Rust expert friends tell me, that is the way it is supposed to be. My friends write kernel modules, do low level systems etc. where they know exactly what they are doing. I mostly do exploratory programming. I think Go, Elixir and Python are the best languages for the kind of stuff I'm interested in.
bascule 1 day ago 0 replies      
Whenever someone asks this question, I point them at this...

Learning Rust With Entirely Too Many Linked Lists: http://cglab.ca/~abeinges/blah/too-many-lists/book/

The point of this tutorial is not "wow it's hard to write linked lists in Rust", but that Rust supports a number of different memory models, and this tutorial takes you through each of them by writing a linked list using each one.

Additionally, it's snarky and entertaining.

All that said, I think it's a really good crash course on the Rust memory model, and once you have your brain wrapped around the various approaches, it should hopefully make it easier to understand how to avoid encountering those borrow checker errors.

MichaelGG 1 day ago 0 replies      
Do you understand how to write code in, say, C? Like do you understand the scope of manually managing memory, not making memory safety errors? When I run into borrow checker errors I try to think through exactly who owns what and who will free it when.
jplatte 1 day ago 0 replies      
I'd suggest having a look at the new (unfinished, but that affects mostly the later chapters) rust book. Here's the ownership chapter: http://rust-lang.github.io/book/ch04-00-understanding-owners...
itamarst 1 day ago 0 replies      
Object ownership varies widely by language (I just wrote up a survey of why - https://codewithoutrules.com/2017/01/26/object-ownership/), and no one ever teaches object ownership as an explicit skill (it's always implicit with each language's semantics). So it's pretty natural that switching styles would be difficult.

Perhaps if you understood why these are rules are in place, or compare to other rules from other languages? GNOME project has nice strict rules for C: https://developer.gnome.org/programming-guidelines/unstable/...

(Full disclosure: never written any Rust, have just skimmed docs.)

ideasman42 1 day ago 0 replies      
Hey, I also started learning Rust not so long ago (~5 months).

By the sounds of it didn't have quite as much trouble as you're experiencing.

Having said that, I found experienced Rust developers grossly under estimate how hard it is for newcomers to the language (having asked questions on Reddit's r/rust which gave the impression these are some concepts developers can learn, then move on without too many troubles).

A re-occurring problem I found is while everything I could read made sense on paper - composing concepts to make real-world, you run into _many_ random problems that you don't even have the vocabulary to properly question or troubleshoot.

I found this works well:

* Ask general big-picture questions on Reddit.

* Ask spesific technical questions on StackOverflow.

* Ask various short/general questions on IRC (#rust).

As for fighting the borrow checker and compiler errors generally - ask some more experienced Rust developers if you're taking the wrong approach entirely.If this project is too complicated, try pick some simple projects where you're not continuously running into borrow checking errors. You'll still hit them from time-to-time, but then at least you're not overwhelmed by compiler errors.

dualogy 1 day ago 0 replies      
Your post might possibly drown soon here, so..

> I'm really not sure where to turn for help.

both StackOverflow and reddit.com/r/<yourproglanguage> have rarely if ever failed me..

stcredzero 1 day ago 0 replies      
It seems like everything I know about structuring a program goes out the window when borrowing comes into the picture.

You can substitute concurrency for borrowing. Congrats. You're on the path towards understanding another paradigm. You're on your way to expanding your mind and growing a bunch of new neural connections. The learning curve means the eventual triumph will be that much better.

kccqzy 1 day ago 0 replies      
It really depends on what you are trying to do. Spending a month fighting the borrow checked doesn't seem normal to me.

If you are implementing data structures and stuff, you might want to read more about the actual limitations of the borrow checker. Some kinds of code just can't be done with the constraints of the borrow checker. Embrace unsafe blocks and then gradually try to move as much code as possible away from those unsafe blocks. Try to think of "unsafe" as merely "unverified by the compiler". There is nothing inherently evil about unsafe.

If you are doing more application-level programming, I recommend you to get acquainted with the functional style of programming, if you haven't done this yet. Pick a more conventional language and then try to implement something using as few assignments as possible. Get used to and embrace immutability. Once you are used to immutability, Rust will be much easier too.

dkhenry 1 day ago 0 replies      
It is likely that your structure is in fact allowing _potential_ errors to enter into the picture. Most of the time in C or C++ you would ignore them since it is obvious to you where things will be owned and not owned as the program progresses, but the compiler is must more strict and it will not allow any potential errors to exist. I don't think you will find a shortcut around identifying those areas until you work through them a bit.

The other big thing that I wrestled with was my idea of in place mutation of data, and how much rust hates that. It took a while for me not to feel so bad about making a local variable to maintain ownership of some memory and "moving" it in and out of some parent structure. While it might look bad, there is a deal of trust you need to have with the compiler that it will in fact optimize out those move, and your main goal is to make sure ownership is explicit.

allengeorge 1 day ago 0 replies      
Well, I think a couple of points:

1. An outline of the problem you're trying to solve helps2. You should really stop by the #rust-beginners channel on IRC. Everyone is super friendly

Glad to see that you're trying Rust, and if I'm there when you stop by - glad to help if I can!

buzzybee 1 day ago 0 replies      
Try a "back-to-basics" approach of writing less structured code, as in, factor it less, use more plain data structures, just write straight-line imperative blocks of code. This is actually the path of least resistance in most languages, but they all offer shiny features and don't stop you from overcomplicating it by prematurely distributing functionality into abstractions.
adamnemecek 1 day ago 0 replies      
Read more open source code. I'm not sure what project to recommend, maybe some of the https://tokio.rs related projects? (e.g. https://github.com/tokio-rs/tokio-core).
rjammala 1 day ago 1 reply      
Try these screen casts: http://intorust.com/
Ask HN: What was your relocation package like?
51 points by relothrowaway  18 hours ago   57 comments top 21
pfarnsworth 15 hours ago 4 replies      
A couple of tips (these only apply to the SF Bay Area):

1) Unless you can afford a $1.5M US house, don't bother thinking you can just sweep in and buy a home within a month. The competition is way too fierce these days. It will probably take you about 1 year unless you're very rich already. Since you have a daughter, you need to figure out if you want to live in a cheaper area, far away from your work with a long commute, and send her to private school, or live closer to work, and pay an exorbitant amount, and probably still pay for private school.

I suggest paying the exorbitant rent for 6 months or a year, in a place close to work so that you familiarize yourself with the area, and then start the search to buy a place.

2) $30k sounds like a very generous relocation package. I think your expectations as to what it will cover are way too much. Things like multiple airfares and real estate broker fees sound like you have a sense of entitlement. Those shouldn't be covered in my opinion, those are the cost of leaving your home.

rcarrigan87 15 hours ago 0 replies      
$30k is very solid.[0] The majority of relo packages are in the $10k range for non-exec employees. Relocation packages, in general, have been on the decline since 2008.

I would suggest doing a little more research on the tax implications of moving. The only major expense you can write off is what you pay the moving company. Everything else is counted as regular income and taxed. This can especially bite you with the USA's confusing AMT tax system.

Also, try and get the move done prior to May. Prices will go up 20-30% and availability will be a lot tighter for moving companies

[0] co-founder of https://www.movebuddha.com/

benhoyt 15 hours ago 0 replies      
Three years ago my company paid me US$28,000 to move my family (me, wife, three young kids) from New Zealand to New York City. This covered a moving company (approx US$10,000), flights, and one month's rent while we found a place to live. So it was basically enough, but there were a few costs we just covered ourselves (always the way). So from my perspective what you're being offered sounds reasonable, especially seeing you have fewer kids and it's "only" from Canada.
mbrameld 15 hours ago 0 replies      
I've gotten 2 relocation packages in the last 5 years that were very different. Both were for senior developer positions, neither in any of the tech hubs.

The first time I was given $2,500 to move from FL to AK to work for a small consulting firm. Really just a token gesture, but it paid for the ferry and hotels for the drive up. I had to arrange everything myself, pay out of pocket, and submit receipts for reimbursement.

Second time I moved from AK to TX to work for a large financial institution and the total was $22,000 and some change all together. They flew me down to house hunt for a week all expenses paid, then flew me down again when I actually moved. They had my car shipped, I had to drop it off at the port in AK but it was delivered to my house in TX. They had movers come to my place and pack everything, then deliver and unpack everything on the other end. All I had to do was pick the dates for everything to happen. It was like a military move but better, because I wasn't in the military anymore.

jcadam 15 hours ago 0 replies      
Congrats, relocation packages are rare these days. The last time I needed to move for a job (from VA to FL) I had to foot the bill myself (of course, this was the company that at one point stopped buying office supplies and made us bring in our own pens).

That said, $30,000 is pretty decent, though I've only moved within the US, so I'm not sure of the costs associated with moving from Canada.

The one relo package I've received during the course of my career reimbursed the cost of moving my household goods (we rented a 'POD' and a couple of helpers at either end of the move), gas/mileage for the long drive, per diem for meals, and up to X nights in a Hotel. It didn't cover things like rental deposits, costs associated with setting up utilties/services, DMV fees in the new state, etc. All in all, it probably covered about $15-$20k worth of moving expenses for a coast-to-coast move.

chondl 16 hours ago 0 replies      
About 10 years ago my wife and I relocated from Minnesota to California moving a very full 3BR house. We did not need temporary rent but we did have ~3 months of storage and paid for the movers to pack our stuff. I believe it cost my company ~50k USD, including travel and other misc expenses. That number doesn't include assistance the company provided for expenses selling my old house which would be another 20k or so.

Also, be sure to check whether the money you receive is taxable income because that potentially will take another large bite.

adnam 15 hours ago 0 replies      
Adding this to my "remember when we had it so good" scrapbook.
tucaz 16 hours ago 1 reply      
I got about 4K + VISA fees to move from Brazil to the US. It seemed fair and enough. We sold everything back there and started fresh here with way less things and a lower lifestyle, but it was still worth it.

Everytime I hear about similar subjects and people talking about business expenses I'm always spooked by how much business money people spend. When it comes to other people's money (company in this case) it seems that one doesn't care like it was theirs.

BinaryIdiot 15 hours ago 0 replies      
So I've been offered two different relocation packages over the past few years. I eventually took one of them up and moved to the Bay Area (you'll be able to guess which package I picked).

- Company A: $10k for relocation or cover the cost of a moving company to pack and move all of our stuff including our vehicles.

- Company B: $22k relocation "lump sum" (this varied depending on your circumstances; I was a home owner in another state so I got the max), company paid moving company to pack everything up and move it across the country including two vehicles, reimbursed airfare for flying out to house hunt and again for the final relocation airfare, paid for closing costs to sell our existing home, paid for company to help us buy or rent a home in the bay area. I also got a starting bonus but that wasn't technically part of relocation.

I know a lot of people who have relocated in the past. Everyone seemed to agree Company B offered probably one of the best and most thought the average for the area was a range with Company A at the low end and somewhere in the middle between Company A and Company B being at the high range.

Hope that's helpful!

hnrodey 16 hours ago 0 replies      
Mine was a little less than that (I stayed within the US but moved several states away). However my "relocation package" ended up as a signing bonus so it was fully distributed to me and taxed but the upside is that I could use the money however I saw fit. I see pro's and con's to either approach.

Send me a message if you have any questions about my experience or any advice/follow up.

ZeroFries 17 hours ago 4 replies      
It costs more than $30,000 to move? Sell everything, buy new, and I still fail to see how a move could cost over $30,000. Why would rent be included, by the way? That's cost of living, not relocation.
SHNM 16 hours ago 1 reply      
A little on the low side given all you have to do with it. Made a 'similar' move about 2 years ago from Canada, in the end, with about the same amount spent, we found that it ended up being a loss of about $10k. Can provide more details if you like, send me an email.

One key recommendation that no one seems to have noted here, don't sell your house or belongings yet or buy new stuff. The comment about the role not working out and then having to figure out what's next from x0x0 is coming from someone who knows what they are talking about. Give yourself at least 6 months to understand if the job will work out before buying at your new location. This is especially true given that you will be on a visa. With the job gone, you will have 3 months max to unwind and leave the US.

manyxcxi 15 hours ago 1 reply      
I was offered a package that basically just said we'll cover your expenses to move. There were some exclusions, I think mostly based on tax rules, but it wasn't a lot. I could imagine if I had submitted a $30K bill it would've been an issue though. The difference is that it's not like I could economize to pocket extra cash.

$30K seems reasonable, if not even generous. I guess it's all relative to your base comp and if you're getting any other bonus. For instance, I also received a sign on bonus that was divorced from anything about the moving costs.

To move from Portland to Seattle (I know, not THAT crazy of a move) it cost us about $10k including having the moving company pack up the entire house, storage fees, etc.

If the wife hadn't have been pregnant and I would've taken more time off (I literally ended one job on Friday and started the other on Monday) we could've probably halved that cost, if not more.

If it was me and I had a $30K lump sum I'd do what I could to minimize the charges the moving company was hitting me with by packing up myself (I hated how they packed us up and I had more things broken in that move than I have ever had in any move and I've moved across the Atlantic and back).

You also will want to look at selling anything that's kind of big or heavy that isn't sentimental and worth less than a few hundred dollars.

For example, get rid of any IKEA furniture you have and buy it again when you get to where you're going. It will literally cost you more to move than it is worth.

On that note, especially if you have lots of stuff and/or are in a fairly big house now- try to sell or give away as much as you can. Use this as an opportunity to clean out the accumulated life cruft and start fresh. If it was up to me when we moved we would've been able to fit it in the back of my pickup.

Save money by driving instead of having your cars shipped and flying- and take a vacation while you're at it. Shipping your cars costs a lot, it's a hassle, and they'll probably get banged up. Plan a road trip and have fun with it.

natch 16 hours ago 0 replies      
Sounds pretty fair. Maybe your estimates are based on taking the deluxe option on everything? Personally if I was being moved to California I would consider putting up with a lower priced but still decent hotel room for a few weeks, cheap coach air travel (you may have already priced it as coach, not saying you chose first class, but I'm saying you can shop around within coach with different dates and times and get cheap coach prices which are way less than the highest price coach prices), dorm-style cheap furniture to start out with, and maybe sell a car or two instead of moving them. My relo package was only $10k but that was many years ago when rent was cheaper.
iends 15 hours ago 0 replies      
How do people who own houses for less than 5-10 years relocate? If I sold my house right now, the real estate agents would eat most of the 30k up (and certainly would after taxes).
netule 16 hours ago 0 replies      
Very good. Mine was $5,000 back in 2012 to move from Florida to California.
nunez 7 hours ago 0 replies      
$5000 cash, taxable as income. NYC to DFW
bsvalley 17 hours ago 2 replies      
What type of visa are you getting? I thought visa applications were not opening until April.
x0x0 16 hours ago 0 replies      
So, there's multiple traps here.

1 - I think that you want to be reimbursed, not given a bonus. The difference is you'll pay tax on the bonus, but if you're just reimbursed, no tax. If you must get it as a bonus, take your estimated expenses and divide by .6 to get the required bonus. Also don't forget that the US has two tax systems and this could bump you up close to AMT.

2 - make sure that, in case the job blows up, at bare minimum your required repayment falls by 1/12 each month. Better yet, no required repayment. You don't want to be in a situation that just happened to a friend of mine where 6 months in he and his manager mutually agreed it wasn't working and they want $25k back.

edit: I'd suggest 6 months with it falling 1/6 each month. If your new employer pushes back, I'd point out you're taking the far bigger risk here by moving countries.

partycoder 15 hours ago 0 replies      
I got offered $3000 in reimbursable expenses, plus a free rent for a month, a couple of years ago.

The free rent allowed me to provide my future landlord with a previous address and a landlord reference.

When I was looking for a place, many places asked me to provide 1 to 3 months of rent as a deposit, because of a lack of a credit score. However I found a nice location that didn't have that requirement.

Taxes and rent are high in California. In that sense, working in another state... in a city like Seattle, allows you to keep much more of your money.

Then, I would interpret it as "up to $30,000". So keep the receipts/invoices.

kasey_junk 17 hours ago 1 reply      
It's low.
Ask HN: Is there an open source equivalent to Palantir?
154 points by ljw1001  3 days ago   45 comments top 22
pudo 3 days ago 3 replies      
I've been working on a project called Aleph (https://github.com/pudo/aleph, live: http://data.occrp.org/), which is targeted at investigative reporters. It's supposed to handle a related set of problems, which is data integration of diverse public records and journalistic lead generation (i.e. what to investigate next). The road map for the coming two years includes some visual analytics similar to what I guess most people use Palantir for (we'll have to keep it very simple).

The big problem in NGO space is obviously finding engineers: we've got some budget for this stuff, but getting people to join us, work at a lower salary and then code their heart out (because teams are tiny) is hard.

On the fun side, you get to see your code applied to fighting real-world problems every day :)

RickS 3 days ago 1 reply      
I worked at palantir. As a designer. Grains of salt.

The value is in the dataset. Most of what's on top is handmade by fresh grads.

Spend your effort getting access to the firehose, and the rest will follow.

dkarapetyan 3 days ago 1 reply      
I think you're asking the wrong question. There is nothing special about Palantir software that you can't find in the open source world already. What Palantir does is just throw a bunch of bodies at the problem to "integrate" things.

If you truly want to provide an open source alternative then curating some jupyter notebooks with the right libraries and integration is all it takes. A properly curated set of R libraries with a nice interface would also do the trick.

dwynings 3 days ago 1 reply      
The only thing close that I can think of is: https://github.com/sirensolutions/kibi

Demo video: https://www.youtube.com/watch?v=g0O8UNM0B7Y

maxdemarzi 3 days ago 1 reply      
The Investigative Consortium of Journalists used Neo4j to untangle the Panama Papers leak.


m-i-l 3 days ago 1 reply      
In the UK we have https://fullfact.org , an independent fact checking charity. It isn't quite the same thing, e.g. is more of a service than software, but is open source friendly, e.g. was the topic of a recent Lucene hackathon.
UCAN2 3 days ago 1 reply      
I would start looking at gephi: https://gephi.org and sigma.js for visualization.To run influence or social network analysis I would look at R's igraph: http://igraph.org/r/ or spark graphx: http://spark.apache.org/docs/latest/graphx-programming-guide... .For the graph database. neo4j , elasticsearch or the open source graph database created by the uk intelligence service: https://github.com/gchq/Gaffer . Another interesting project is mazerunner that integrates spark graphx and neo4j together : https://neo4j.com/developer/apache-spark/#mazerunner
batoure 3 days ago 1 reply      
Most of the core platforms these companies use are built on open source. I think the fundamental reason there isn't something comparable in the free and open arena is because at the end of the day to coral the data volumes you will find your self well on your way down the road to hell.

There is a minimum physical hardware cost in the multi-million dollar range just to get started.

Not to mention the labor cost to operate and architect said hardware. Any thing in the Petabyte scale is looking at a minimum skeleton crew of (if they are top talent, more people if they aren't top talent) maybe 3-4 people between sysadmin architect and data engineers to keep things production worthy. The industry is still light on people with those skills so ontop of the bare hardware you are probably talking about 600 to 800 K in annual labor cost as a starting point.

This would all be before you get that much usage, the minute that utilization becomes high that skeleton crew won't cut it any more. The SysAdmin will need to turn into an on-call ops team. Data Engineering will need specialists for on-boarding vs analytics vs access layer.

If you are doing anything controversial don't forget the importance of a solid security organization which is highly challenging in the distributed computing space.

These are just the technical hurdles. Depending on the data you would be bringing in there are quite possibly legal barriers as well depending on the locality.

So again its not so much that this isn't possible, more that there hasn't been someone willing to endow the kind of funding that would be required to scale something of this nature solely for the benefit of the public good.

briteside 3 days ago 0 replies      
We are starting a program at Faraday (http://faraday.io) to offer complimentary access to journalists and educators. Faraday certainly isn't Palantir, but it's similar.

If you're a journalist or educator and want to check it out, shoot me an email, I'm andy@

urungusOdor 3 days ago 1 reply      
I dunno, are there non-state actors with the capacity to inflitrate and disrupt militarized adersaries at a global scale in furtherance of the foreign policy motives of a super power on the world stage?

I wonder if they'd release under the GPL3 or or BSD licence. Maybe they'll let me fork them on github.

Godel_unicode 3 days ago 1 reply      
Are you certain that you want a competitor to palantir? It sounds like you might want I2 Analyst Notebook from IBM, or something like maltego from Paterva. Maltego is also free (ish) which is cool.
chhib 3 days ago 1 reply      
Not exactly what you're asking for. But http://www.jplusplus.org/en/ have mailing lists and is a community of journalists looking through data. I'm sure they have alternatives or suggestions.
ChuckMcM 3 days ago 0 replies      
Because that capability is too valuable. So if you're interested in writing code that can do that you can find someone to make your life comfortable on the condition that they get to keep your code. If repo of code starts growing that can do that someone will come offering them candies :-).

As it gets a bit more common place, or if tools to do some of the heavy lifing get out.

Keep an eye on some programs like the one at CU Boulder, it should produce some interesting research that moves this along outside of the halls of industy.

pcbje 2 days ago 0 replies      
I recently release a project of mine that may be of interest: "Gransk - Document processing for investigations" (https://gransk.com and https://github.com/pcbje/gransk)
bane 2 days ago 0 replies      
Given their pricing (and the pricing of nearest competitors), combined with the relatively solved technical problem areas they operate in (connect to a data source, do some human driven NLP, draw a graph, show a map, map everything to some ontology), what they do is very ripe for some serious open source disruption.

The easy part is really the interface and information displays, the harder part (and where they make the lions share of their money) is in data connection services and software customization.

Building an Open Source Palantir tool wouldn't be all that difficult, in fact a great many organizations just build some subset of that tools using readily available open source components and with tighter coupling to their business needs. But these efforts are fractured and disorganized and there isn't a great centralized open source tool that really replicates their system.

Should there be? I think the general problem of pulling together lots of information into a common pool, then being able to annotate that data and map it to a semantic model is useful, and it generalizes well. But at the same time, many many sources of data are already available in nice semantically organized ways, with simpler interfaces (think IMDB, Pouet, Wikipedia, etc.) it's not quite clear that their approach offers enough payoff over these easier methods.

sAbakumoff 3 days ago 0 replies      
GDELT project provides open data on everything that happens on the planet.
lvca 3 days ago 0 replies      
RT Investigations Unit used OrientDB to find corruption cases: http://orientdb.com/rte-iu_case-study/
smanikim 3 days ago 0 replies      
There are companies out there(Sumologic is one) which provide free access depending on unstructured data volume. But in case, you have huge volumes of data in TBs and you want to manage it using open source, you might end up spending money in scaling and supporting system that you should instead buy paid versions.
suls 3 days ago 1 reply      
"[..] from software that could help track networks, timelines, etc., and organize unstructured data the way an intelligence analyst would."

Do you know how it looks in Palantir's case? I've never actually seen it ..

emdeprit 2 days ago 1 reply      
You might try Lumify from Altamira -- http://lumify.io/.
jusq2 3 days ago 0 replies      
Its called Wikipedia [ https://youtu.be/ESVQknHESuA?t=2209 ]

The paid versions are called Google, Palantir, the CIA etc.

Ask HN: Developers who sell desktop software, what do you use for licensing?
49 points by ezekg  2 days ago   24 comments top 11
SyneRyder 1 day ago 0 replies      
Seems it depends on your market. I'm doing desktop consumer software, and the licensing is all in-house stuff. Rather than being uncrackable, I'm more focused on usability and keeping honest people honest.

I use simple short serial codes, automatically generated & able to be emailed again when customers inevitably lose them. (Try to avoid doing manual generation & manual lookups, it will save you a ton of support time.) I avoid characters that are easily confused & can cause support issues, so no O and 0, no I and 1, no 5 and S etc.

As part of usability, I like how iZotope include the name of the product in their serial codes (eg SN-MYPRODUCT3-XXXXX). I've had issues with customers mixing up serial codes, and it helps if you can give them a hint/prompt (eg your key begins with SN-MYPRODUCT3).

If your goal is just to put a small indie product out and sell it, you don't have to over engineer the licensing. I've seen apps where every customer got the same unlocking code, and it still sold plenty of copies.

Brandon Staggs' article on implementing serial codes is still my favorite:http://www.brandonstaggs.com/2007/07/26/implementing-a-parti...

jetti 2 days ago 1 reply      
At one of my jobs we used a 3rd party library for .NET to do our licensing but then we decided to roll our own. By rolling our own we got the benefit of doing things that wouldn't be available in commercial solutions. For instance, we sold our software in modules and you bought each module separately but they each fit into the product. With our homemade system we could disable or enable modules at will from our system and have the user refresh. They had to connect once a year but if they bought a new module they could just go to the help menu and refresh their license and the module would unlock immediately. Not sure if you can do that with other commercial products or not.
jakobegger 2 days ago 1 reply      
I sell two Mac Apps. For the Mac app store versions I have no copy protection at all.

For the version I sell on Fastspring, I use a library called Aquatic Prime, which uses public key cryptography to validate license files. It's integrated with Fastspring, so that's convenient.

I've had a couple of customers where Aquatic Prime failed for hard to debug reasons -- I think the issue was that they had names with special characters that caused sorting issues. If I'd do it again, I'd probably do something simpler, since bugs in license validation code are really bad.

I wouldn't worry about piracy or cracked versions. Someone did crack my apps, but it doesn't seem to affect sales. The only people who care about cracked versions of my app are shady companies promising to get rid of cracked versions by sending takedown requests on my behalf. I wonder if those guys cracked my app in the first place...

EDIT:You asked about missing features. It would be nice if business customers had a way to see how many licenses they are using, and they should be able to easily buy additional licenses. However, building such a system would probably be very complicated and not worth the effort.

laurent123456 2 days ago 1 reply      
For my application[0] I'm using fastspring.com. From there users can buy a license and when they do so I receive an email. I then run a small program to generate a license file which is then automatically emailed to them. The license is just a plain text file (that contains the user's personal details), which I sign with a private key. The application then verify that the license is correct based on an embedded public key.

To be honest I think I've tried to do something too complicated. If I was doing it again I'd go for something much simpler since, anyway, no matter how complex the protection is, the application can eventually be cracked.

So I'd suggest a very simple system where the user inputs a serial number (that fastspring.com can generate directly), then the app verifies if it is valid. If it is, save it to the Windows registry (or similar place) and check it again every time the application starts. That way, you don't need to bother with any manual process like I do and it won't add much complexity to your app.

[0] http://easyhanzi.com/

zbuf 2 days ago 0 replies      
I'd recommend to work out what field you're selling to, and consider if you can follow what the major vendors are using in that field.

Your customers' sysadmins are probably already dealing with a bunch of commercial software, more dominant than yours. Go with the flow and lower the workload for everyone.

Seems simple to implement your own; you also get security through some degree of being less mainstream. But don't underestimate the variety out in the field or the amount of hardening that existing solutions have had.

In our case, I've never experienced a vendor's 'home brew' solution actually work properly when faced with the load of a renderfarm or HPC cluster (normal for customers like us) without several revisions. Hardly unsolvable problems, but then a dialogue back and forth is needed to fix such issues; wasted time for both parties, unless you are in the business of developing licensing servers.

Obviously there's a balance here with how much it costs to bring in a tried and tested solution (flexlm and rlm are the ones I know of) vs cost of the other options.

danieltillett 1 day ago 1 reply      
We use a layering of different systems (we choose ones that the crackers complain about) combined with our own in-house systems. It is mighty complex, but it lets us sell expensive software into the Chinese and Indian markets.

What we would like is a truly different approach that is compatible with other licensing systems. It does not need to be perfect, just a pain to the crackers so that it adds another hurdle they have to deal with.

doctorwho 2 days ago 0 replies      
The risk you run by using a third party licensing solution is that they are more attractive targets to crackers. Generally, once a system has been compromised, all of the software using that system become vulnerable. Rolling your own solution takes time and effort and there's no guarantee that it won't be broken but you can also change and update it as needed. In the end you're really only affecting honest customers so keep the system as unobtrusive as possible and put more focus on selling more software and that quality of what you're putting out there - that will more than make up for any shortfalls due to piracy.
TheMog 2 days ago 0 replies      
A lot of the licensing systems I've encountered cause problems if you're selling to big corporations because they don't work well in locked down environments. Whatever you use needs to have an alternative way.

The other question is the ease of integration and the cost of the software - if you spend weeks integrating and troubleshooting it, I'd be tempted to forego it for anything but a high-value product.

Keep in mind that troubleshooting it will be an ongoing process when some paranoid BOFH has locked down the user's machine to the extent that they can't do anything, including their job.

louisharwood 23 hours ago 0 replies      
Full Disclosure: I work for Paddle (https://paddle.com/)

Paddle take care of licensing, trials, payments and associated VAT/tax obligations through to analytics either through the web or a number of SDKs for Mac and Windows.

Worth checking out

mb_72 2 days ago 0 replies      
QLM, for both the OSX and PC versions of our product. QLM is web-based, but also handles off-line licensing via a generated file. Our product can be used in demo mode (no saving, limited editing, reports printed with a 'demo' watermark) indefinitely, time-limited demo mode, a basic function mode and a full operation mode. The last three modes are handled via information encoded into the customer's activation key which is then decoded in the application, and acted upon.

Previously - on PC, there was no Mac version at that time - the 'licensing' was encoded in an INI file which users worked out they could share. QLM has eliminated this kind of 'dumb' piracy, and via the application and logged attempts we can see if people are trying to activate the application on multiple PCs or Macs and so forth.

Next step is to get automatic license key generation working via Paypal payments. I can't really think of any features that we are missing with QLM.

fian 2 days ago 0 replies      
I have used a couple of license management systems for an engineering simulation tool. We first used the Sentinel Super Pro USB hardware dongles. These provided strong license protection and were easy to integrate. The downsides were that you had to send customers physical keys and occasionally keys were "lost" when they were due to be returned.

We wanted to protect against this but, at the time, the keys did not have any built in date tracking so we tried to implement last date used tracking by writing a timestamp to the keys every few minutes - this proved to be quite flaky and keys would eventually become corrupt. The keys could be recovered by rewriting the original license file, but it was annoying to the users.

There are newer Sentinel keys that include an onboard, battery backed clock which we could have migrated to to solve that problem.

However, our company was acquired and the software team was merged into a larger group. The larger group had standardised on a third party software based license management system. So we migrated the simulation software to this system based on some guidance from the other teams. The migration was painful, taking many weeks. The functionality provided by the license management system is far less flexible than what we could do with the dongles. The license management system worked by fingerprinting the client machine via various keys/ids of installed hardware. The license files contain an unencrypted list of the keys/ids that the license was checking. So it is trivial for someone to read the license file and know exactly how to modify or fake the keys on a second machine to replicate the license. It took me less than 15 mins to perform a license replication to a second machine using just the license file and tools available as part of the default OS installation.

Realising this, I read the docs thoroughly myself as it seemed crazy that this could be the correct way to implement the license management system. Sadly it was correct. If effect the docs said a pure software approach is weak and if you need stronger protection you should use a hardware dongle. This is essentially why they call it a license "management" system vs a license "protection" system.

You should choose a license system based on who you target market is and how much you sell the software for.

If you are selling to the general public, having many users and (probably) lower license fees, then look to the pure software based solutions as managing hardware dongles will be onerous. If the pricing is reasonable and you make it easy for people to buy/renew then there is less incentive for them to pirate.

If you are selling to a enterprise or niche market with high license fees (thousands of dollars per licenses and up) then there is a stronger incentive for someone to try to break your licensing system. This is where a hardware based solution starts to make sense.

Note that even the hardware dongles can be beaten by a truly determined attacker. By going the dongle route you are just raising the bar higher.

Ask HN: What frameworks are currently used in a modern web stack?
71 points by debt  3 days ago   117 comments top 50
NatW 2 days ago 1 reply      
Ruby on Rails or Node.js for the backend (API) and React for the front end. Rails is excellent for database migrations. Postgresql / MongoDb / Firebase for the database, depending on requirements.
alexanderson 2 days ago 4 replies      
The hipster stack is an interesting one. Elixir + Phoenix framework, GraphQL, React.

Honestly, though, I'm doing everything with GraphQL now. It is a huge benefit for all aspects of application stack design now.

joe_c 2 days ago 0 replies      
Check this out...


and their blog for featured posts...


k__ 2 days ago 1 reply      
The current stack I work with:

Gulp for task (test/build/etc.)

Webpack for bundeling

React/Redux for the front-end

Bootstrap for the styling

Koa for the back-end

Socket.IO for the realtime stuff

RethinkDB as the datastore

Nginx as the reverse proxy to the API and static file server

What would I change in the future?

Getting rid of Gulp, most of the time Make should be enough.

Replacing Redux, Socket.IO and Koa with the Apollo stack. GraphQL with its subscriptions solves most of the problems I had with REST and WebSocket APIs the last years.

I'd probably use Preact instead of React, because it's much smaller. The React eco-system is unbeatable, so I wouldn't switch frameworks in the near future.

Don't know about Rethink, it's a really nice DB and the change-feeds play well with GraphQL subscriptions on the other hand the company behind it went down the drain :\

wjdp 2 days ago 4 replies      
No love for Django? Django/Postgres
osullivj 2 days ago 1 reply      
Angular 1.5, Tornado 4.2 & RethinkDB 2.3.5 for me. Tornado coroutines play beautifully with Rethink queries and change feeds. I've also got a proprietary C++ framework in the middle tier, so some of the server processes are C++ Python hybrids. Fortunately Tornado makes it easy to dispatch events into the C++ code via a think wrapper built in Python's C++.
thibaut_barrere 2 days ago 1 reply      
Phoenix/Elixir/Vue.js/Postgresql is a very strong/efficient stack IMO these days.
sAbakumoff 2 days ago 3 replies      
ASP.NET Core is a lean and composable framework for building web and cloud applications. ASP.NET Core is fully open source and available on GitHub. ASP.NET Core is available on Windows, Mac, and Linux.
lprubin 2 days ago 1 reply      
Graph based on Github and Stackoverflow data.


nozzlegear 2 days ago 0 replies      
It's not perfect, but I've landed on Node + Express for the backend and React for the frontend with both of them being written in TypeScript. It's incredibly nice to share the typings between my frontend and backend. I've also been pleasantly surprised by Nancy [1] on Mono, though, and almost always choose that when I need to use C#.

[1]: http://nancyfx.org/

ams6110 2 days ago 1 reply      
I'd be more curious to see a timeline of which tools and frameworks were popular over the last 10 years. I bet the amount of churn would surprise people.
caleblloyd 2 days ago 1 reply      
.NET Core with Entity Framework ORM and a relational database on the backend.

Angular 1 on the frontend unless you have over 100 bound variables on a page, then consider ReactJS or VueJS.

pesch3 2 days ago 1 reply      
Grails(https://grails.org/) if you want "rails" in the java world
alrpal 2 days ago 1 reply      
I still love Django. With vue.js in the client where necessary.
amingilani 1 day ago 0 replies      
Quick question: authentication for restful APIs that are frontend agnostic. Any recommended readings?

I've used third party libraries like devise_token_auth and I understand how JWTs work but is there a standard? Oauth2 maybe? I sound like I'm lost because I am. I still don't "get" authentication. The Oauth2 RFC confused me. Is there a dummy friendly tutorial on rest API authentication that also supports invalidating user sessions (unlike JWTs)

jbrooksuk 2 days ago 1 reply      
Laravel, Nginx, PHP 7.0 and Postgres/MySQL.
GvS 2 days ago 0 replies      
Django (with REST framework and Postgres) + Angular 2 works best for me
joshiej 2 days ago 3 replies      
LAMP anyone?
garymoon 2 days ago 0 replies      
while True the javascript framework I created this morning, which I think is better than others
jamesmp98 1 day ago 0 replies      
You want a hipster stack

GraphQL / Couchbase / Node.js / React / Redux

Personally, though, I am a fan of ASP.Net Core + Angular 2,

hawkice 2 days ago 0 replies      

If a project doesn't need a backend (boy howdy do I love keeping things in localstorage), Elm. I keep meaning to use Phoenix and Elm together but it never seems like the thing to do. I do love Elm a lot, though, I have a couple dozen widgets and what-have-yous written in it, and it's my preferred prototyping / build it in anger toolset.

holydude 2 days ago 0 replies      
Sorry to hijack your topic. What is the most popular technology stack in terms of amount of jobs available on the market ? (world wide). Make a wild guess i do not need exact numbers.

Java and or JavaScript ?

bharani_m 2 days ago 0 replies      
I am building my side project, Email This [0] with Elixir and Phoenix. Not using any JavaScript framework here, but I've dabbled a bit with React and Vue.js.

Rails (Ruby) and Laravel (PHP) are some of the other solid options for building the backend.

[0] https://www.emailthis.me

pahaat 2 days ago 0 replies      
I'm currently getting used to Node.js

Just bought "Getting Mean with...", which describes a MongoDb, Express, Angular and Node stack. (IMHO) However, first of all, the book is a waste of time and angular sucks.

So in the end, I'm planning my upcoming project using Node, Express, CouchDB and plain ol' static pages with a slice of ECMAScript (yah... I admit, Bootstrap and jQuery will join the party).

juliangoldsmith 2 days ago 0 replies      
One a recent project, I've been using Golang with unrolled/render, julienschmidt/httprouter, and jmoiron/sqlx. I kind of wish I'd gone with something like Buffalo, but not using a framework has forced me to learn a lot, so I'm glad I didn't.

The application itself is hosted on a VPS running Arch Linux, behind nginx, and uses Postgres with PostGIS for a database.

coldcode 2 days ago 0 replies      
Which day? Just reading the comments shows a wide variety of options, so how do you determine popularity? I remember at my employer going through gyrations to determine the best popular JS framework about 4 yrs ago. None of the finalists even exist today. Whatever decision you make today, always plan to change everything even if you don't: you can't predict where your choices will go.
vegancap 2 days ago 0 replies      
I've been pretty happy with Go (no framework), React/Redux/Webpack, Mongo for loose data, Postgres for relational data.
crisopolis 2 days ago 0 replies      
Also have a hipster/trendy stack...

Backend: Elixir (using Maru [it's like Ruby's Grape])

Database: PostgreSQL

Frontend: Vue.js or Elm (maybe)

jagger27 2 days ago 0 replies      
Go / TypeScript@Node on the server, Angular 2, and whatever DB suits the job, none if possible.
JoelSanchez 2 days ago 0 replies      
I'm playing with Clojure/ClojureScript/Reagent/Datomic and liking it so far.
owebmaster 2 days ago 0 replies      
ClojureScript, reagent, re-frame
nullmage 2 days ago 1 reply      
I'd like to throw in ArangoDB (multi-model NoSQL database) which I switched to after RethinkDB was shut down.


ausjke 2 days ago 0 replies      
nobody mentioned MEAN stack? I don't really like the M(mongodb) part though, looking for a backend framework and checking nodejs/express now, something like: Vuejs + Express + NodeJS + someDatabase
grandbestmaster 2 days ago 0 replies      
Vue.js is just amazing.
raleigh_user 2 days ago 0 replies      
Roll with flask or Hapi JS. Angular 1 front end (been meaning to switch to react). Postgres, rethinkdb, or mongo depending on needs.
erikrothoff 2 days ago 1 reply      
We're using Ember.js frontend with a Google Cloud Platform backend. It's like following all the latest JS trends with 100% less javascript fatigue.
romanovcode 2 days ago 0 replies      
Backend: ASP.NET Core, Laravel, Koa

Frontend: Angular/React

What is NOT popular anymore: RoR, Angular1, Express

lisperforlife 2 days ago 0 replies      
PostgreSQL, Go micro-services, kubernetes based deployment and isomorphic React (Webpack, hot loading, ES6) frontend.
alex_duf 2 days ago 1 reply      
Play framework. I'm a big fan of it
adelarsq 2 days ago 0 replies      
Someday Rust for backend will be here :)
pplonski86 1 day ago 0 replies      
Django + Django Rest Framework + AngularJS
leo_mck 2 days ago 0 replies      
asp.net core, aurelia (with typescript) on the frontend and just starting to throw graphQL on the mix. To me, web development never felt so easy and refreshing.
bandrami 2 days ago 0 replies      
I use GNU Artanis, but I'm definitely an outlier
ma2xd 2 days ago 0 replies      
Using Django/DRF/Postgres and Angular2.
UK-AL 2 days ago 1 reply      
Currently converting from .Net to .Net core
1_listerine_pls 1 day ago 0 replies      
ssh, bash, vim and .csv, on top of UNIX.
debarshri 2 days ago 0 replies      
Go with go-kit and react.js for front end.

I find then pretty productive and quick to get started with.

krasicki 1 day ago 0 replies      
FloatingGhost 2 days ago 2 replies      
I'm using LAMoPy - Linux, Apache, Mongo, Python (flask)

I don't buy into the whole Node.js thing, I much prefer the stability and maturity of apache. Mongo just because it's easy to use with python, and python because I love it <3

Ask HN: What tools do you use for creating diagrams?
13 points by BucketSort  1 day ago   10 comments top 9
cher14 5 minutes ago 0 replies      
Not open source but with a free tier: www.breakdown-notes.com. Disclaimer: my project.
0x54MUR41 8 hours ago 0 replies      
Since you're asking the open source software, these are my recommendations:

1. Draw.io [1] for general charts. Someone has already mentioned it. It's open source software. Draw.io supports flow charts and other diagram types. One thing that I love about Draw.io is compatibility. You can import and export the XML file that contains your diagram. So, I don't need to worry what platform I use. The final diagrams can be exported to SVG and images too.

2. UMLet [2] or StarUML [3] for UML diagrams. I have no experience with UMLet. I recommend this because it's open source UML tool and actively developed (they need contributors [4]). I know open source UML tools are not as good as paid tools, like Visual Paradigm and Enterprise Architect. Alternatively, you can use StarUML (not open source). It's free although you have to buy a license for continued use.

[1]: https://www.draw.io

[2]: http://www.umlet.com

[3]: http://staruml.io

[4]: https://github.com/umlet/umlet/issues

lfx 1 day ago 1 reply      
https://www.draw.io works great for general charts. It has set of UML elements as well, tho haven't used it.
RUG3Y 1 day ago 0 replies      
I've used this free program to make lots of diagrams: http://pencil.evolus.vn/Downloads.html

I don't know if it's the best thing out there, but it's pretty low risk to try it out. I haven't needed to look for anything better, and it does have some neat features.

Davidbrcz 1 day ago 0 replies      
Dia, open source. It can draw many kind of diagrams
techdragon 1 day ago 0 replies      
OmniGraffle for hand crafted, and general purpose diagrams. Also for mobile diagrams since I have OmniGraffle on my iPhone and iPad Pro. (Apple Pencil support too)

Graphviz and a text editor for quick structured or hierarchical diagrams.

AsciiFlow, for rough and ready diagrams that I need to share quickly or for inclusion in documents where Graphviz is unsuitable.

Those three are my go to tools depending on what kind of diagrams I am working on. I'll use yEd from yWorks on FreeBSD and Linux.

Finally when push comes to shove I'll wind up with Microsoft Visio usually because of either compatibility or having to work on windows.

For UML I think your going to struggle with a pure open source stack. I've found diagramming tools to be one of the weakest parts of open source productivity suites. UML is quite likely to produce a lot of diagrams and your going to want good tools to deal with this. I recommend you chose the best diagramming tool for your platform of choice and just pay for it if it's not free. Wrestling with poor diagram tools is a complete waste of time when good tools that make working with diagrams very easy. I've yet to see a diagramming tool that costs more than the time it saved me. Even Microsoft Visio earned its keep over the few years each license lasted me.

sidcool 1 day ago 0 replies      
MS Visio, Google Drawings
arvinje 1 day ago 0 replies      
I use StarUML for drawing UML diagrams. http://staruml.io
Ask HN: What insight was key to growth of your career or startup?
83 points by samblr  1 day ago   64 comments top 29
LouisSayers 1 day ago 1 reply      
Career: 1) You can increase your salary dramatically by changing your job 2) Job interviews are like exams, study for them, find and practice example questions 3) In tech, contracting is where you make bank. If you work it out, with the same breaks you take with salaried employment you're still much better off.

Startups: 1) The goal is to make money, not build something. Focus on that. 2) It typically takes a long time (many months or years) to create a business. Be patient, stick with it. Think of it as a marathon, and an experiment.

Courses, e-books: 1) There's much more involved in their creation as what you initially think. It'll take much longer to build than you imagine (if you're about doing a proper job) 2) They won't sell themselves, you need marketing channels. 3) the trick with courses / books is to build audiences and funnel the audience into them. You can do this by creating free books / courses and upselling collected emails, or by collecting emails from other places / affiliating and collaborating. So don't count on a single book / course from making you so much money you can quit work. Build a series of books / courses instead - you'll see the results of compounding.

trjordan 1 day ago 2 replies      
"There is no magic."

Before I started my career, I thought there was a point where products mostly built themselves. Coding changed that.

When I was in engineering, I thought there was a point where products mostly sold themselves. Sales changed that.

When I was in sales, I thought there was a point where the message mostly spread itself. Marketing changed that.

When I started my own company, I thought there was a point where most of the business ran itself. I certainly never reached that point.

stray 1 day ago 7 replies      
My key insight was "humans do not read".

I say it jokingly but early on -- I gained quite a reputation among people far smarter than I am, for being able to solve the most difficult problems.

But I never really did anything other than read. And most of the time I never had to go beyond the documentation.

The trick I guess, is to slow down and really read. There is no shortcut to understanding. And there is no solution without understanding.

 - RTFM - Slow is smooth, smooth is fast

jsgoller1 1 day ago 2 replies      
My major insight in 2016 was realizing that literally everyone has impostor syndrome. After talking to a few people about it, I've started asking pretty much everyone I meet who works in tech and found this to be universally the case (even John Carmack, according to Wikiquote - https://en.wikiquote.org/wiki/John_D._Carmack, the "Seriously? I'm good?" quote and the one at the bottom about not being Richard Garriot).

What this has allowed me to do is 1) recognize that I'm really not a failure because I can't do X, just that I haven't yet gotten experience with X, so I need to read and play/experiment with X more (and therefore there's pretty much nothing that I or anyone else _can't_ do with enough experience), and 2) learn how to better talk to my coworkers and technical friends so as not to say things that might make them feel impostor-y (because there are definitely things other say that will set off that anxiety in my brain, even unintentionally). I feel like both of these things have allowed me to be more effective and productive at work.

yokisan 1 day ago 1 reply      
1. Nobody cares how hard you work. Results not effort are the only things that matter.

2. It's infinitely easier to produce excellent results when you like the job you're in. You may never find "The perfect job" but the closer the match to your skills, the better.

3. You'll be amazed at how few people give a sh*t about your new startup.

4. Paychecks are addictive. Then often essential. If you want to start your own business, try not to become dependent.

5. Learn to recognize The Dips from the cul-de-sacs (http://guykawasaki.com/the_big_dip_ten/).

bsvalley 1 day ago 1 reply      
Corporate World - Micromanagement

1. You work for your direct report not for the company's mission.

2. You leave your manager, not your job.

3. People got to management at some point based on the amount of words that came out of their mouths. The more words the more "visibility"

Startups - Anarchy

1. Warm referrals - we value your network because who cares about your product???

2. "We just got $30 million in series B, you should come work for us you'll be engineer #4, with close to zero equity (sorry we took all the risks already) but you'll get a competitive base-salary! We're backed up by sequoia, etc. Oh... and we're building the next eCommerce t-shirt website!"

3. "Do you want to become my cofounder I have the best idea that will change the world! I'll be the CEO working on the idea and you'll build the rest. You'll be the developer!"

These are my highlights over the past 10 years.

shuzhang 1 day ago 1 reply      
I'll comment on career growth. First of all, make sure you can learn from the team you're joining. If you get an offer, ask if you can grab a drink or lunch with the team before you decide. If a manager says no to this, that's actually a pretty big red flag. When you hang out with the team, probe their experience and get an idea of their communication style. Understand what you can learn from them and understand how different people might mentor you. You should also make sure your manager is strong and will do regular one on ones with you. Groups that do occasional skip-level 1on1s are even better.

When you're working, look to take the initiative when you can and always try to over deliver. Work hard and find opportunities to take leardership roles on something. Good managers will encourage this. But don't be annoying, look for real needs you can fill.

Talk to your manager very explicitly and figure out your career path. You can and should talk to your manager about exactly what it takes to get to take the next step in your career; a good manager will define this very clearly. Then, I'd say every 2-4 1on1s with your manager, check in on your progress. This is also a good opportunity for for him/her to point you to additional learning resources to get there. You should do something similar with other members of your team, especially those you respect the most. It also doesn't hurt to ask everyone what they're favorite books and blogs are.

Being on strong teams and working on complicated problems is key. Once you feel like you're not learning a lot anymore, make a career change. Early on in your career, I think your rate of learning should be the main factor in changing jobs. Change a few times early on (1-2 years a job), I thinks is also very healthy since you get exposed to some different environments/perspectives.

F_J_H 1 day ago 0 replies      
Work to increase your luck surface area. Network, meet new people, get involved in OSS, go to meetups, volunteer.

When you are just starting out, get good at a tangible skill that people will pay you for, and which will let you play in the arena where you ultimately want to be. For me, it was IT development, even though I had a business background.

If you are in technology, or work as a developer, work in a non-tech firm that leverages technology, rather than in a technology firm. It will be easier to stand out, and your contributions will be held in much higher regard. This point was actually made by Zed Shaw in one of his books, and although he took some flack for it, it's actually very good advice. I've seen it play out a number of times.

seibelj 1 day ago 1 reply      
Don't rely on someone else to make your career (or your life) better. If you want something, it's on you to do it. The loser blames something else (other people, society, bad luck) for their problems. The winner takes control of their life, accepts personal responsibility, and creates their own future.
swombat 1 day ago 1 reply      
Embrace the desire to make money.

Don't let it dominate your life, of course, but you are unlikely to make money unless you actually want to, and you are unlikely to build a successful business without actually making money somewhere along the way.

There's nothing wrong or distasteful about money. It's a neutral substance with a lot of good uses.

wheaties 1 day ago 2 replies      
You will never just be given something based on merit even if you feel you've earned it. You need to ask for it, then if you've earned it you will be given it. People can't read your mind and it's surprising how what you want is not what they think you want. A simple 5min convo on what you actually want and tracking the steps outlined to get you there will push you faster along than anything else.
pcsanwald 1 day ago 0 replies      
Key insights for me:

- For me, doing what I am good at makes me happy.

- "what I am good at" is often very different from what I think I will be good at, or what I think I should be good at, or what I would like to be good at.

- I find working on big, daunting, time-bound things where I need to educate myself to deliver on, very rewarding (not necessarily easy and not necessarily fun).

- The right job for me is a mix of doing things that make me happy, and doing things that I find rewarding.

These are all broad generalizations but they are derived from my career. I worked in the music industry as a technologist for many years, and because I'm also a musician, I thought I should be happy doing this. I wasn't. I moved to working at an investment bank, the work was a mix of very challenging things that were a huge stretch for me, and also specific technical things that I was very good at delivering. I loved it, my career took off, and has been great since (I've done a number of different things after said investment bank).

Superficially, you wouldn't think that a person like me would be happy working in a large bank, but it turned out I really liked it, and was great at it. and if you met me, you would have thought I'd have loved the music industry, but I didn't, and didn't do very good work as a result.

ian0 1 day ago 0 replies      

- The core value of a company is its assets (market & placement, employees, financial situation) and its ability to execute iterating upon a product. If a company is in a changing market or is a startup the value is nearly wholly driven by the later. There are hacks around this, but they are rarely pretty or pleasant. This is "the" hard problem in making money.

- Big corporates are almost entirely dysfunctional. It beggars belief but its true. The simple fact is the markets are so mature that they don't need to do much beyond a few basic, core, routine actions. All they can do is fail from here, so everyone inside are afraid of doing something wrong instead of failing to do something.

- Always, always go the extra mile for people, loose gracefully, be nice - even when the situation is completely unfair. Your time will come, and when it does you will have gained an undervalued but lucrative chip. The moral high-ground :)

- In addition to being the right thing to do, playing nice and paying it forward are great strategies in business


- Given a task find out its context/goals. You may have been asked to do the wrong thing.

- For most, your mentor's will have the largest impact on your career. Find good ones.

- Don't be responsible for surprises. If you see something strange - shout.

- Be methodical in whatever you do: Analyse. Record. Measure.

- If you need a raise ask, but have your line in the sand.

- Read, research. Know your stuff.

- Ask questions. Speak up.

lordnacho 1 day ago 0 replies      
The fact that the learning curve is mostly climbed at the beginning.

You will come across many very competent people with only a few years of experience, who are still at the bottom of the ladder due to how organisations are structured rather than a lack of ability.

Understanding this is key to overcoming impostor syndrome.

peterhartree 1 day ago 1 reply      
Sam Altman's advice to "always ask" has been very helpful. I can't find the link but the sense is: do not skip asking for something you want because you assume you'll get a "no".
bobosha 1 day ago 0 replies      
Focus, focus, focus.

Seriously, I was one who used to sneer at the advice, thinking I can handle multiple things and by trying several things in parallel I increase my chances. Boy, was I wrong!

Pick one and only one battle (market), and fight it with all you have. Iterate quickly.

clay_to_n 1 day ago 0 replies      
Have confidence in what you do. When you're starting something new - a new company, a new role, a new technology - you'll often find yourself wondering if you're doing it normally, or correctly, or the best way.

It's good and normal to ask people who might know, or research the answer. But sometimes the quickest way to learn is doing the thing naively, and then asking yourself what worked and what didn't.

Don't let your own second-guessing remove your confidence in what you're doing, or slow you down to the point of inaction.

tenpoundhammer 1 day ago 0 replies      
Career insight: If your boss isn't invested in your success you won't succeed.
pklausler 1 day ago 0 replies      
Your employer gives you their best current job offer every paycheck.
oldmancoyote 1 day ago 0 replies      
Memory usage and run-time don't matter any more.

When I started programming, 1968, minimizing these was the core value used in judging how good a programmer you were. This has not changed in many people's minds. Once I stopped caring, my imagination became free to consider doing things others wouldn't even consider. One program ran for three days. People thought I must be brilliant because of the unheard of things I was doing. Nope. I was just uninhibited by these hobgoblins of the past. I wasn't even a very good programmer.

I do admit there are situations where this principle doesn't really apply.

ImTalking 1 day ago 0 replies      
The fact that no one really knows what to do; that no one has the magic formula. That you just have to try different things and see what sticks. Keep moving forward.

Shakespeare was right: we are poor players that strut our hour upon the stage and are heard no more.

shawndumas 1 day ago 0 replies      
don't leave until you are reasonably certain it's not you that's the problem; otherwise you are taking your problem with you.
s_kilk 1 day ago 0 replies      
Not insight exactly, but the advice that changed my career for the better:

"No, stop fucking around, do it right."

franze 1 day ago 0 replies      
Understanding Limiting Factors: Growth is not controlled by the total amount of resources available, but by the scarcest resource.
kayla210 1 day ago 0 replies      
Nobody expects you to know everything when you're starting out, even if you have that fancy degree that you spent years on. That degree just shows them you have the aptitude to learn how their business works and they're willing to take the time to train you if you're willing and able to learn.
sytse 1 day ago 0 replies      
Most money in the git hosting space is made on-premises instead of in SaaS. Realized that in 2013, a year after starting GitLab.com.
MK999 1 day ago 0 replies      
Part 1: If you are so smart that the manager / boss can't/won't/doesn't understand what you bring to the table -- don't expect to get a big raise.

Part 2: if you want a big raise, get a new job (then get another new job for yet another big raise, etc.)

FLGMwt 1 day ago 0 replies      
There isn't a designated person assigned to the thing you want or want to change.

"We don't have a tech blog"

"This process is annoying"

"No one has fixed X yet"

You earn a lot of recognition if you make yourself that person.

SandersAK 1 day ago 0 replies      
Privilege is king.
Ask HN: What's not great about Elixir?
8 points by verletx64  19 hours ago   8 comments top 7
pairing 18 hours ago 0 replies      
When it's said that Elixir is highly distributed what is sometimes left off is "within a datacenter". BEAM / Erlang / Elixir clusters are not intended to be used/scaled across datacenters due to latency issues.

So if you are an AWS user for example and want to be in multiple availability zones the Elixir distribution model will not scale and you'll have to use the same techniques and tools other languages use for distribution.

With that in mind, I think the whole distribution buzzword is way over hyped since the majority of companies will be leveraging cloud platforms like Azure, AWS, Google Cloud, etc.

I write Elixir code daily because it's an awesome language to write in and not for the distribution features.

danielvf 14 hours ago 1 reply      
When doing CPU intensive tasks, Elixir can be considerably slower than the usual other languages.
hackerboos 15 hours ago 0 replies      
Some of Phoenix's best features, like presence and websockets, break the 12-factor application rules. State is stored in the app and nodes require linking together. Most container systems are not set up for this and you have to rely on something like etcd to do orchestration between nodes. That or just move the state back to redis.

I think the positives outweigh the negatives. It's nice to replace a lot of moving pieces in a RoR application with just Elixir and Phoenix.

czbond 18 hours ago 0 replies      
While not addressing the drawbacks per se, I enjoyed reading this in depth comparison between Elixir and Go from an internal language perspective. https://blog.codeship.com/comparing-elixir-go/
hawkice 13 hours ago 0 replies      
Deployment can be a bit tricky to figure out. I end up compiling on my production server, which seems extremely unnecessary.
jamesmp98 19 hours ago 0 replies      
Oh those don't come out till a few years later when we figure out it was the worst thing in the world.
dudul 18 hours ago 0 replies      
The main thing I'm having troubles getting used to is the configuration being part of the compilation phase. In a world where so many applications are deployed in AWS and URL/ports/etc are not necessarily known at compile time it makes no sense to me.

You end up having to use tools such as Distillery and Conform in tandem just to be able to configure your app at runtime.

Another thing that worries me a bit is how such a large part of the community comes from Ruby. I wish it was a little more balanced with more diversity in regards to people's background.

Other than that, it is a great language, and I'm having a lot of fun with it :)

Ask HN: What's the best way to handle rejections?
22 points by armini  2 days ago   22 comments top 9
11thEarlOfMar 2 days ago 1 reply      
Rejections should teach you something.

I think of it like the sculptor: Rejections should be like the process of removing all the material that is not part of what you are sculpting. Each rejection should chisel another chunk off.

If it seems like it's been a while since you learned something from a rejection it's time to review.

Even after refining to the point of having a finished sculpture, you still need to consider the possibility that you've got something good, but simply haven't pitched to the right person yet. Look for comments like, 'that's a really compelling|interesting|novel|worthy idea, but it's not what we get involved in'. In those cases, ask for referrals to people they think might be interested.

The point to cease then, would be when you're not learning anything new, and you're not getting references to someone who might be interested.

Each of the examples you listed would have a different protocol. If you get a no when asking for a raise, or pitching investors, you should be able to get an explanation for why. But if you get rejected asking for a date, you'll likely not get a reason you can use. So some intuition is always going to be required.

bsvalley 2 days ago 2 replies      
Do you know Jack Ma? His current net worth is 28.8 billion USD. Before he became successful he applied at 30 jobs when he was looking for work and was rejected from all of them, including a job at KFC where 24 people applied and they hired everyone but him. He wrote to Harvard for a total of 10 times and was knocked back every single time.

Goals + perseverance + time = your magic formula.

JSeymourATL 1 day ago 0 replies      
> how do you know if the problem is your proposition or the total concept?

No pitch or message is going to get to the logic center of the other persons brain without passing through the survival filters of the crocodile brain system first. And because of the way we evolved, those filters make pitching anything extremely difficult.

ON this subject, Oren Klaff is brilliant > https://audioboom.com/posts/2273663-oren-klaff-pitch-anythin...

lowglow 2 days ago 1 reply      
I optimize along the way. Each experience is a chance to look at what worked and what didn't work.

Eventually you'll break in a very interesting way. The rejections will just stop stinging, and they just become another part of the journey to your goal.

Your number one rule as an entrepreneur is finding your true believers.

veritas213 2 days ago 2 replies      
change your approach.

Every rejection gets your closer to a yes.Learn from your mistakes (if any), optimize and try again with the expectation of getting a yes.

I know its hard but try to be more robotic and take emotion out of it as much as you can.

Lastly, know your audience. Cant use the same pitch with every person.

armini 2 days ago 0 replies      
I think this is a huge problem for people who struggle to find their purpose or place in society. Considering that in the last 45 years suicide rates have increased by 60% worldwide. Suicide is now among the three leading causes of death among those aged 15-44 (male and female). Suicide attempts are up to 20 times more frequent than completed suicides. As a society we really need a better way to teach & handle rejections.
danieltillett 1 day ago 0 replies      
Rejection is easy to handle in comparison to self-inflicted fuck-ups. I still think about some of the big mistakes I made years ago, while I am hard pressed to remember the rejections I got yesterday.

Every rejection is finding one way that doesn't work. Get enough and you will end up succeeding through a process of elimination.

anonmous 2 days ago 0 replies      
The best way is to be happy. Your situation will change given time, the road is often a bumpy one.
LifeQuestioner 23 hours ago 0 replies      
cant we just decompile their android app and have a look?
Ask HN: How would you secure your laptop against the NSA?
29 points by jc_811  2 days ago   31 comments top 16
maksimum 2 days ago 2 replies      
How valuable is the information on your laptop to the NSA? If it's under $100k you're probably ok doing what Stallman does https://stallman.org/stallman-computing.html . If you have information worth over $5M to the NSA, then you better get physical security personnel as well as network and hardware security personnel; maybe ally yourself with a different powerful state or corporate actor. In other words you need to make their expected cost of getting that information significantly higher than it's worth.
theSpaceOctopus 2 days ago 1 reply      
I'd just smash my laptop with a hammer, microwave the HDD, and go live a simple life on a mountain somewhere raising alpacas.
yellowapple 2 days ago 0 replies      
The first step is buying the right laptop. In this day and age, even hardware can have backdoors. You'd want something devoid of such backdoors (or the potential thereof, which tends to put a dependency on open hardware) and fully compatible with open software (not necessarily free, but it tends to help) all the way down to the firmware.

Transparency is a dependency of trust. If any component lacks transparency, then it cannot be trusted. Period.

This means neither macOS nor FileVault are sufficient; neither are transparent, and therefore neither are trustworthy. Even a fully-free operating system like a Linux distro or OpenBSD is insufficient if you rely on closed-source drivers or firmware.

Next step is to detect tampering. This means that your laptop needs to prevent booting any operating system unless you've signed it with some private key, and needs to clear any full-disk encryption keys if any attempt is made at physical tampering. This is also the step where you ensure the physical security of that machine.

Once you've established physical security and full-stack transparency, you can start worrying about the encryption itself (which will need to be much stronger than the norm) and about sandboxing untrustworthy software.

Really, the only perfectly-secure computer is an incinerated computer. The best anyone can do is minimize the opportunities for such a state-level actor to, well, act. Transparency, tamper-resistance, cryptography, and isolation are the keys, and even the slightest error or concession for "convenience" can and will permit the likes of the NSA to actually infiltrate your systems.

davelnewton 2 days ago 0 replies      
Physical security is the primary concern.

If access to data "after the fact" is what you're really asking, then you use the strongest encryption possible (a few options), and have a deadman switch to physically destroy the hardware (e.g., melt the platters/chips) including any caching mechanism(s) that's off-drive.

wakkaflokka 2 days ago 1 reply      
I followed the Snowden leaks only from MSM sites, so I know little of the details. Most of the comments thus far are "there's nothing you can do."

Can somebody explain in more depth whether this is likely true, or an over reaction, and why?

Is there literally no way to stop the NSA from snooping? What if I built a laptop from multiple separate components ordered from different websites or purchased from different B&M stores using heavily tumbled bitcoin and ordered to several different addresses or PO boxes from a public library, encrypt all of the drives, boot Tails from a flash drive, use a yubikey or some other physical authentication method in addition to passwords, and never connect the laptop to the internet (remove the Ethernet and WiFi cards)? Put some dynamat in the case, just to avoid some type of fancy-ass soundwave-based snooping... maybe even throw some thermite activated by 5 or 10 failed password attempts. Oh, and a super-silent keyboard to avoid password grabbing via the sound the keys make. And a pop-up visor to avoid people looking behind your shoulder.

sfifs 2 days ago 0 replies      
If a state level actor really wants the data in your laptop in a targeted manner, there's very little you can do. For starters, if that were really your situation, you wouldn't use OSX or Windows :-)

If your objective is instead to prevent data theft by identity thieves or commercial spies, the FileVault type precautions and standard security practices are probably good enough.

lithos 2 days ago 0 replies      
Remove hard drive send via UPS, or private courier.

If that is insufficient it's not a fight over security. It's a fight about mobilization of lawyers and political contacts.

a8A6SNRRG1MTZ6X 1 day ago 0 replies      
Yes, you should most definitely take steps. The main thing to look out for, and easier to prevent, is 'persistent intrusion', as opposed to 'incidental intrusion'.

'Persistent intrusion' involves long-term monitoring to gain psychological and behavioral insight. The industry has evolved, it's not always just about running a keylogger and capturing some files, anymore. Some example of what persistent intrusion is about: running a 'wmctrl' equivalent every 12 seconds to capture classes and titles of windows currently opened, which is then uploaded and assessed. Keyboard typing patterns are also captured. Your music collection is captured, including which tracks you listen to and how often. Over the course of months/years an large amount of information is ultimately collected which is then sent to a team of data scientists and psychologists for data mining and analysis. The wealth of information allows you to predict the target's thought patterns and movements.

The microphone is NOT captured for standard targets.

Persistent intrusion is easier to prevent:

- Prefer Linux to OSX/windows. Prefer Arch or similar but Ubuntu is infinitely better than OSX/windows.

- If you are using Ubuntu, never download apt-get packages over http (the default), switch to a mirror that uses https. The reason is there is MITM monitoring on the packages you are downloading in order to look for packages they need to find exploits in, and to gain information about your system.

- Obviously, never connect to a website unencrypted. The connection will be MITM'd, a 0day will be injected in-flight on the return path from the remote host and your browser will crash.

- On Linux, in the event of a normal crash, never use the crash reporters to send a crash report. The connection will be MITM'd, a 0day will be injected in-flight on the return path from the crash acknowledgement server.

- Routinely reinstall your operating system every 2-3 weeks. It's easy on Linux and you can automate the install using scripts. Additionally you can mount your home directory seperately. Physically change the installation drive.

Unfortunately, incidental (one-off) intrusion is more difficult to stop since assumedly a single attack is all it will take to lose your data on disk, if this is the resource you are trying to protect.

Even if you are not a high profile target, any connection to a VPN or TOR is monitored, and your IP address is added to an array and entered into a lottery for penetration.

todd8 2 days ago 0 replies      
I've never been worried about a National Security kind of interest in my affairs, but if you are here is a humorous and relevant blog post on Schneier's blog: https://www.schneier.com/blog/archives/2015/08/mickens_on_se...
openasocket 2 days ago 1 reply      
a laptop you are actively using, connected to the internet? Assuming the NSA really wants to get you, there's nothing you can do. Here's how they would do it:

First they need an RCE, probably for your browser, maybe your TLS library. For a state actor, this is not a problem. Let's assume it's your browser. They need you to visit a page with their malicious payload. They can use phishing, they can take over a site you visit. Or they can take control of some machine in the path between you and sites you visit. From there they can MitM a TCP connection to inject the payload. (They might not even need to be in the path, but most exploits to MitM a TCP connection not in your path only work for long running connections). Now all you have to do is make an un-encrypted connection to any site, and they've got you.

Now they have taken over the browser process. Maybe you decided to be safe and do all your browsing in a VM, or use something like Qubes. Then the NSA has to break out a virtualization escape from Xen/VMWare/whatever. Difficult, but not impossible, and entirely within the NSA's capabilities. Once out of the VM, they can use an OS exploit to get into kernel space, or just do some privilege escalation and load a kernel module.

From here they've got complete control of your machine. They can do disk and memory capture, capture all your keystrokes, record your screen, etc.

All of the above can be done without leaving a clear footprint in network traffic or on disk. An analyst could find it, given time, but I wouldn't trust any sort of AV program or network monitor to catch any of this automatically. Exfilling data is a little more complicated to avoid leaving a giant footprint in the network traffic. Probably the best thing is to take advantage of that staging server they set up in your path: your machine can make a TCP connection to an innocent-looking IP address and get the connection MitM-ed. Break the data into pieces and hide it in innocent-looking requests to generic places and have it intercepted.

Notice everything I've described can be done completely remotely, without any physical access, and can be applied to basically any setup you have. The bottom line: once you're dealing with a adversary sophisticated enough to be able to use multiple 0days against ubiquitous programs, there's not much you can do. Your best defense at this point becomes security through obscurity: force them to have to figure out what setup you have to progress through your system. This might slow them down enough that they get caught.

BorisMelnik 1 day ago 0 replies      
you forgot the biggest piece of information: is the laptop connected to the internet or a local area network? (or bluetooth etc)

edit: assuming it is not "connected" to the physical world, I'd partner with an embassy to house the laptop there. preferably a communist state where we don't have good relations.

bbcbasic 2 days ago 0 replies      
Assuming this is about some secret data:

It's maybe the wrong question, or part of a bigger question of how do you secure information you want to keep from a state-level actor. Your laptop may be part of that but also your mobile device, home phone, cloud services, and other people who also have access to the said data. Also how determined they are to get the data is another factor, and can they achieve what they need to another way without 'your' data.

Cozumel 2 days ago 1 reply      
Obligatory XKCD: https://xkcd.com/538/
Spooky23 2 days ago 1 reply      
Avoid attracting unwanted attention.
neilsimp1 1 day ago 0 replies      
Never connect it to the internet.
pasbesoin 1 day ago 0 replies      
Thermite + vigorous stirring.

Oh, you mean a usable laptop?

Ask HN: How to finish personal projects?
57 points by aaossa  3 days ago   33 comments top 25
morbidhawk 3 days ago 1 reply      
I've always lost motivation sometime shortly after starting on a new side project.So what I've done lately is when I think of something I'll then determine if there is a way to get it built and usable by the end of the day, even if it is just a simple script. This way I can actually later use the thing and when I have another idea to expand on it I can take that on later as another day's work.

This might not work for everyone but for me I've actually built a few useful tools that I use everyday and have been able to continue building on. The only 2 requirements needed before I undertake something is 1) that it is something I see myself using on a semi-daily basis and 2) that I can build it within a day.

rcavezza 3 days ago 3 replies      
Three steps to make sure you get more than 1 or 2 days out of it.

1.) Make it very crappy, and put it live for the world to see.

2.) Be embarrassed that this thing you made is so crappy.

3.) Use that embarrassment to make it better.

However, I suspect that the problem might be something else.

They say you should always be working on your best idea. Maybe you are jumping from project to project too fast?

Maybe you need to take more time to think about why you're starting certain projects.

Maybe the answer isn't finding more time working on projects. Maybe the answer is spending less time working on projects and more time thinking about possible projects.

Some random thoughts here. Sorry that it sounded a little Seth Godin-ish.

bradleyboy 3 days ago 1 reply      
My recent workflow has been this:

1. Put the project in a private GitHub repo. Paying for it adds incentive to work on it.

2. Break up the work into small tasks and add them as issues in the GitHub project. Aggressively separate them into milestones to stay focused (Milestone 1 == MVP, less important stuff in Milestone 2, etc).

The reason I think this works is that it is easy to get overwhelmed by all the work on a side project, and you have limited time to work on it. Now when you have time, you grab a ticket, complete it. Each ticket should be doable in a few hours or the scope of your ticket is too broad.

Broken_Hippo 3 days ago 1 reply      
Here are my suggestions:

1. Work on your project most days. It doesn't need to be long - 15-30 minutes. This is mentally doable most days, and you'll find days that you just work. After a while, this becomes part of your daily routine and it gets easier. It might be even easier if you do right after something else you do every day - yup, make it a habit.

2. Have a variety of tasks to choose from when you can. This helps with the motivation as well.

3. Be able to congratulate yourself for getting chunks done - or something similar. Whatever works for you.

jasonkester 3 days ago 0 replies      
I've fit this pattern for most of the things I build, though I'd replace "days" with "weeks" above.

The things I have finished are nearly all things I have put a price tag on.

They may have been done before I shipped them, but most weren't. But once there's the threat of real users sending you money and expecting things to work, that's incentive enough to actually wrap up loose ends and polish what's there.

Notice that what actually happened was a slight redefinition of "finished" to include all the features that currently work, with non-working features hidden and no pointy bits sticking out the sides. As distinct from "all the things I wanted to include are now working to my satisfaction."

Eventually you can work toward including all those other things, but step one is to polish what's there. Then it's just a matter of polishing each additional feature after they're built and before they're exposed to users.

gt2 1 day ago 0 replies      
Finish the minimal viable part of the project very quickly.

Add the housekeeping parts and extra features later (if it's worth it i.e. being used by you or others).

Eventually when you do enough personal projects you will find that the housekeeping parts are the same and can be bolted on easily. That's another reason it's not worth doing anything except the minimal viable part of the project.

benologist 3 days ago 0 replies      
3) Make a list of what you think your project needs before launching, but put as much as possible off until after launch, recognize that you can still work on it then

4) Do something on that list

5) Go back to #3 until you are launched

By postponing additional work you give those ideas time to mature while making concrete progress and finishing your project at least to some sort of functional state. By the time you're up to those tasks you will probably have identified why most of them weren't ever worth doing let alone derailing projects for.

taprun 3 days ago 0 replies      
I'm struggling to finish writing my third book right now. Here's what works best for me:

* Know the definition of "done" from the start. Working against a moving goalpost is a motivation killer.

* Have a consistent way to measure and track progress (word count, features completed, etc), and graph it over time.

* Break the big project into smaller, bite-sized projects. Each time you mark a small part as complete, you'll feel a sense of relief.

* Make progress every day. Even if it's just a bit, it'll feel good to know that you're that much closer to finishing.

borplk 3 days ago 0 replies      
I've found the nature of the idea is quite important as well.

For example for a long time I used to do very "philosophical" projects.

Huge ambitious ones where before you even start you already know it's by definition going to take years for it to get to somewhere worthwhile.

Except I wasn't ready to commit to such things, and I knew it.

That tiny half-assed part of a huge project will not amount to anything.

So overtime I accumulated a great graveyard of "this would be cool if I had worked on it for a year instead of 2 weeks" projects.

On the other hand if the idea is small and practical you can work on something for 3 weeks and have something nice and practical that is a concrete achievement.

So if finishing is your goal and you don't have tons of time to dedicate to a project my advice is to ask yourself how practical and realistic is it for you to finish an implementation of that idea in your desired time-frame?

If it's a huge idea you have to accept the reality that in your amount of time you can't finish a significant % of it.

And 5% of a huge project is often not as useful or impressive as 120% of a tiny project.

jetti 3 days ago 0 replies      
I had never really finished a side project until recently. First one was something I was going to sell. It took over a year because of changing UI and redoing a lot of stuff (unnecessarily) but I managed some sort of soft launch. My most recent project was writing a mix task in elixir. It solved a pain point I was having and gave me a better insight into the Elixir language. I'm working on another library for Elixir that I plan to use in a website I'm working on that I want to set up in hopes of making money.

Bottom line, both of the projects I've started and finished have had monetary gain to it. The product and then the task. The task is helping with contracting I'm doing so making my job easier is sure a big incentive.

segmondy 2 days ago 0 replies      
1. Time box it. Pick a date that you will release, go live, ship, whatever. Pick a date.

2. Break it into smaller tasks.

3. Prioritize those tasks and start with the easiest.

4. This is not time to learn, this is time to build. Use only tools that you know. Even if you know there is a better way, do it the best worse way that you know than the better best way you have heard of but don't know and will have to stop and learn. This is key, separate learning and building.

5. Work on it everyday, at a consistent time, preferable first thing in the morning.

6. Since you will be waking up early, go to bed early too and get enough sleep.

7. Work on only one project at a time, meaning, you can't work on other projects in between. Everything else goes on hold till this is completed.

8. Find ways to motivate and inspire yourself when you are feeling mentally down and low and focus is hard to come by. If you really like music, don't listen to it all the time. work without it, when you find yourself drained, that's when you should turn on music. Unless you absolutely can't work without it. Whatever that gives you extra boost, hold off from it till you really need it. Coffee? Don't drink it, till you need it. Think of it like power up. Save it till you need it.

9. Is it ship date? Release it, only 70% done? Release it!

itamarst 3 days ago 0 replies      
Two approaches:

1. Solve an actual problem. E.g. I built a library based on some use cases I saw at a training session I did at Cisco. Building yet-another-thing-that-has-900-implementations doesn't count.

2. Set a really hard deadline or limit. E.g. "must be feature complete by end of the weekend."

The goal either way is not to end up in place where it's 20% done: either you have problem or a deadline to keep you focused on completion

Longer writeup:https://codewithoutrules.com/2016/09/09/side-projects/

skohan 2 days ago 0 replies      
A few things that seem to work:

1) Define a single, easily understood high-level goal. Something that's easily understood and can be accomplished in a timespan of days or weeks. It's important that this is not defined technically, but in terms of what the application can actually do.

2) Repeatedly ask myself whether what I'm doing is directly contributing to the current goal, or is required to reach it. If it's not, stop doing it and figure out what's going to get me there the fastest.

3) Wake up early and work on my project before doing anything else. Every morning I wake up, take a shower, kiss my partner on the forehead and then I am out the door to work on my project at the cafe down the street. This is the part of the day where my mind is the most fresh, and it's not possible that something else has taken my attention and distracted me from the goal at hand, or tired me out so much I don't have the energy to work on it. Also once you get in the habit it's hard not to work on it once you wake up.

taqwasd1 3 days ago 0 replies      
If I haven't launched in 3-4 months I'll dump it and work on something else that is more exciting. If you can't launch in 3-4 months you've either bitten off more than you can chew or don't give a damn about it.

On a day to day basis, I dedicate 2 to 3 hours to my side project (side business). This includes maintenance for previously launched projects and work on the "new" project.

I only ever have one "new" project going that hasn't been launched.

tmsldd 3 days ago 1 reply      
Just like it you do at a company..

1-Plan, prioritize, schedule;2-Use a scrum.. even if you are the master, the team, the stakeholder all at the same time. Tip: don't forget the stand-up meeting.

I've learned it from a German colleague (and great friend) who even use scrum to manage his own house activities... yeah he was kind of sick.

rak00n 3 days ago 0 replies      
If you're procrastinating your brain is telling you it's not important. You can push yourself with motivational tricks but you might won't get anywhere.

It might be better to get some value out of it and/or convince your brain why it's worth doing.

NameNickHN 3 days ago 0 replies      
I treat personal projects like therapy. Doing something for me, trying something new makes me feel good. Even if I just have a working prototype I have the sense that I've accomplished something. It doesn't matter much if nobody sees it. If that were the case, those personal projects would turn to work and I have enough of that already.

That being said, I do finish side projects from time to time, mostly because I can still see the potential after working on it for a couple of ours.

nanospeck 2 days ago 0 replies      
My strategy is to push out the first working version in that first 2-3 days and get feedback. I have recently, compiled and published my experience and thoughts on this exact topic as a book : http://amzn.to/2iUYaOH
nkkollaw 1 day ago 0 replies      
I suggest you read "Just F*cking Ship".

It's pretty good, and it goes into details on why we can't launch products/finish personal projects.

jbradleybarnes 3 days ago 0 replies      
Wake 2 hours earlier every morning and make that your scheduled time for the project. You would be surprised how quickly a project can move this way.
GregBuchholz 3 days ago 1 reply      
Do people find it worth the time to read books on productivity like Getting Things Done, Eat that Frog, etc.? And learning more about things like Org mode? Or are those essentially procrastination enablers? Is see that most people are working on software personal projects. Anyone have thoughts getting "hardware" projects done?
polygot 3 days ago 0 replies      
What I do is spend a bit of time, and write down all of the features I could possibly want in my program as GitHub issues. I sort them in the order of usefulness/ones I want most, and I set a timer for 25 minutes and write as many features as possible (the code can get a little messy but you can fix it up later.) Rinse and repeat until you're burned out.
anexprogrammer 2 days ago 0 replies      
My workflow is usually to lose interest and motivation right around the time I have it rough, ready and working. Rather than do the last polish and site to release I would end up doing other hobbies.

It's been frusrtating.

sivanesanms 2 days ago 0 replies      
Start it and never stop it until it is released, and after it is released based on response - keep continuing it.
Pica_soO 3 days ago 0 replies      
By not adding features.
Ask HN: How many comments do you read on HN? Is it worth it?
75 points by abeaclark  2 days ago   85 comments top 50
wallflower 2 days ago 3 replies      
Many times, I will just read the comments. Since the commenters on some of these articles can be subject matter experts, sometimes reading the comments are more informative than the actual article itself. A particular example: if the article espouses a single viewpoint, the comments will shine the spotlight on alternative ways of seeing. The more esoteric the subject matter (e.g. Higgs boson), the more interesting the comments. I think my all-time favorite commenter is grellas [1].

[1] https://news.ycombinator.com/user?id=grellas

lend000 2 days ago 0 replies      
Comments are what make HN/Reddit (on certain subreddits) so valuable. It provides a means for well-educated communities to discuss topics freely and casually, and to aggregate a number of diverse opinions that would be impossible/orders of magnitude slower and more limited prior to the Internet. And the format is much more appealing than IRC channels or typical forums.

The links are only half of the equation (perhaps less, to me).

GFischer 2 days ago 2 replies      
I usually read the top comment and a few branches, then I scroll down and start reading from the bottom and upvote stuff that might have missed the cut.

I scan most comments but I usually don't read discussions that have become too long (more than 2 or 3 back and forth replies) unless they're really relevant.

falava 2 days ago 1 reply      
I usually read the comments before the posts.

And I save time using this:



robteix 2 days ago 2 replies      
More often than not I read _only_ the comments and don't even bother to click the link unless one of the comments raises my curiosity.

The comments are what make HN good.

tehwalrus 2 days ago 0 replies      
The thing I like most about HN is the comments. Upvotes (and therefore discussion ranking) tend to be awarded to comments which add new knowledge and expertise to the discussion.

The format isn't the special sauce, which is very similar to Reddit. I think the special sauce is the audience doing the commenting and voting, who seem to me to be experts who enhance the content in the links.

Like several others, I confess to mostly just reading the comments here, and mostly not the articles (the headline is usually enough).

probablyfiction 2 days ago 2 replies      
I'll check the comments if I'm interested in the topic, but aside from that I tend to avoid HN comments. The comments as a whole seem to be overly negative and contrarian...to the point where often there isn't a whole lot of value to be derived.
ci5er 2 days ago 0 replies      
I come here for the comments. The "news" I can/do get elsewhere. I tend to read the first two comments and their children and then pop to the bottom and scroll up. Not every discussion contained under a posting is gold, but there are some really good points made frequently enough that its "worth it" to me. And, now, I flip through comments on a couple of posts when I previously would have gone to smoke a cigarette, so I'm not really wasting any more time than I already was. (I do miss the stand, stretch, walk and breathe deeply part of smoking, and would make a point of doing it more often if it didn't still make me want to smoke so badly!)
johansch 2 days ago 1 reply      
I probably scan at least 50% of the comments of the stories that reach the front page. (I.e. all of the comments on the 50% of the stories that I'm reasonably interested in.)

I'm relatively good at scanning large volumes of text but it's a bit of a chore. So far I feel it's worth the effort though. The comments are usually more interesting than the linked articles.

One note: While I do think HN is reasonably effective at ranking interesting stories, the ranking of the comments do leave something to be desired. I do feel like I need to scan all of the comments - something interesting/valuable is almost about as likely to appear towards the bottom of the comments page as towards the top.

SippinLean 2 days ago 1 reply      
The discussion is a big part of HN for me. Like early reddit, you often get experts in their field, or constructive, thoughtful criticism of an article.

Jokes and other low-effort replies are thoroughly discouraged.

Raphmedia 2 days ago 0 replies      
I come here for the comments. The links you can find elsewhere. A calm community able to discuss topics? Now that's gold.
gtaylor 2 days ago 1 reply      
I like Ask HN, but I am selective about which other threads I get too deep into the comments on. Many of the discussions on here break down into quibbles over wording or minor points. Or pointless, showboating pedantry.

When I do go comment diving, I'm looking for substance. Not grammar, spelling, or minor wording or terminology back-and-forth.

Kenji 2 days ago 1 reply      
I usually write a comment, read other people's comments and then read the article. In that order ;)

Jokes aside, I actually do tend to value the content of HN comments more than the actual links. Very often, only the comments are read-worthy and not the linked articles. Sometimes, neither are read-worthy. After browsing HN for years, things tend to repeat. Yes, we know C++ templates are turing-complete. Yes, we know IoT often has terrible security. Yes, we know depression and burnout are bad. Yes, we know functional programming is super awesome. It repeats over and over.

I only skim the top comments though (and maybe their direct answers) and I only visit HN when I'm bored. Hackernews makes me restless and unproductive.

Yhippa 2 days ago 1 reply      
I focus on the top say 50% OF high level comments. I find that the more nested a chain gets in general it becomes more off topic and more like an argument of people trying to one-up each other.

I scan the top 25% of the initial high level comments and if I don't see anything interesting I move on. I know that sometimes newer comments show up at the very top so I push through those to make sure I get to the higher upvoted ones.

bane 2 days ago 0 replies      
Echoing GFischer and scott_karana that my own browsing habits tend to mirror theirs. It's definitely worth it, there's not really a better general tech discussion forum anywhere on the web right now.
almonj 2 days ago 0 replies      
I read the comments a lot. Compared to most news sites this be a utopia of brilliant discourse. Most comment sections on other websites make me want to die.
protomyth 2 days ago 0 replies      
I read the comments quite a lot, particularly now that you can hide whole threads and really focus on threads you are interested in. I think its been great for keeping a view on the lower rated threads that are more relevant to you interest. There are often some real gems at the bottom of the page.

There are commenters I like and ones I dread, I've experimented with extensions to allow notes and highlight colors / imagery to make it easier to find comments and prompt my poor memory for some information about the poster. If I ever get something I like, I'll release it, but the first efforts have been ick.

joshbaptiste 2 days ago 0 replies      
Definitely, specifically concerning subjects that are high level such as crypto, compilers, language design etc.. There are subject matter experts here who give a trove of information for free on HN that I would easily pay money to hear at a conference or lecture. I particularly enjoyed the recent "Rust vs. GO" thread where local folks broke down the advantages/disadvantages of both languages without dissolving in a flame war.https://news.ycombinator.com/item?id=13430108
ygaf 2 days ago 0 replies      
I read all comments unless the page has grown out of control. It's the articles in question that I don't bother to read - I depend on HNers to reveal what the article said. I have dead posts turned on too.
DavidWanjiru 2 days ago 1 reply      
While I also find the comments more compelling than the links themselves, sometimes a thread degenerates and gets marooned on Pointless Island. It helps to be able to identify PI from a distance and hence stay away.
trowawee 2 days ago 0 replies      
Whether or not I read the comments is strongly correlated with how technical the subject is. My general process goes:

- View an interesting-sounding title in my RSS reader

- Click on the link to the HN comments

- Scan the top comments to see if the article is clickbait/insubstantial

- If it is not, read the article

- Either return to HN and read most/all of the comments or close both tabs, depending on the subject

I rarely find the comments on political links here particularly useful or informative, but I've derived a tremendous amount of value from the conversation on technical links.

godshatter 2 days ago 0 replies      
If it's an article I'm interested in, I'll generally read all the comments. If I want to bring up a particular point, I'll skim them to see if it's been brought up already and then read that tree of comments and post there if I still want/need to. I pay close attention to grayed out comments when I'm reading in order to make sure they are justified and up-vote them if I don't agree with the down-votes.
mywittyname 2 days ago 0 replies      
I usually read the entire comments section on HN. There's a high signal-to-noise ratio and a "big" discussion is only maybe 300-400 comments.
donatj 2 days ago 0 replies      
I personally come to HN more for the comments than anything else. It's much more focused and positive than other communities like Reddit
anigbrowl 2 days ago 0 replies      
I scan all the comment sin a thread I'm interested in, and usually read them, including the dead/flagged ones. Obviously I think it's worth it or I wouldn't keep doing it, but sometimes I get sucked into conversations I didn't really want to participate in. I delete unfinished comments and leave the thread about as often as I post.
ohstopitu 2 days ago 0 replies      
HN has an awesome community so I generally read more. I start of with the top ones (and their branches) and agressively use the (-), and then follow down.

If it's something I'm really interested about, I check back in ~12 hours to see if something new has shown up - at which point it's a scan to see the new comments.

partycoder 2 days ago 0 replies      
I really like the comments section, and conversations overall are constructive.

There are however not so constructive conversations once in a while, but it's usually people that must have the last word, rather than irrational discussions.

kasey_junk 2 days ago 1 reply      
I read HN by going to a set of commenters threads and seeing what is driving their interesting discussions. The articles that drive those threads tend to have the most value to me.
segmondy 2 days ago 0 replies      
I have started using the favorite so I can read them later, it helps. I have about a thousand saved links that I'll never read, but I like knowing I can go find something I've seen if need be.
Glyptodon 2 days ago 0 replies      
It varies from topic to topic so I usually check the threads. Sometimes you find great stuff. Other times you just find the prevailing groupthink. I think it's at least useful to look.
wineisfine 2 days ago 0 replies      
Comments like this one, you're reading now, are really worth it.
binaryanomaly 2 days ago 0 replies      
If the topic interests me I quickly browse through the comments. Quite often I find them interesting / added value. Sometimes they are also just rather white noise of the internet.
ramtatatam 2 days ago 0 replies      
Some discussions around technical solutions people deployed are interesting. I was recently reading an old thread about challanges with replication of postgres-xl nodes (!) :-)
samsonradu 2 days ago 0 replies      
I usually have a Comments first approach. Read the top 3-4 comments and if I find the subject interesting I read the post. Sometimes the comments are so interesting though that I have to read them all before clicking the post. Sometimes I skip the post.

Most of the value is in the comments, specially during these times where a lot of content on the web has a commercial purpose.

cryptozeus 2 days ago 0 replies      
Absolutely worth it !!! Sometimes comments are better than original content..so many beautiful minds here
sova 1 day ago 0 replies      
About ten per day.

Yes, it's definitely worth it, if you are selective.

"read not to contradict and confute, but to weigh and consider" ~ sir francis bacon.

shireboy 2 days ago 0 replies      
I really appreciate the quality and intelligence of most HN comments. I think that is one thing that sets it apart from Reddit/FB/etc. For topics I'm interested in, I do generally scan them and not necessarily read all comments every time.
seanwilson 2 days ago 0 replies      
Some articles are essentially one big comment, a single person's point of view. At least with comment threads you can get some idea if a comment is controversial or well accepted. You don't get that you only read the articles.
dennisgorelik 2 days ago 0 replies      
I read top comments and keep reading comment threads until they get boring.

If discussion is interesting - I read more comments.

I may even decide to read the original article is discussion is good.

Zikes 2 days ago 0 replies      
I always read the comments, though sometimes I dread it. For certain subjects I'll know well in advance what most of the comments will be, and they can be surprisingly ignorant and negative.
butterfi 2 days ago 0 replies      
HN is one of the few sites I even bother with the comments.
Esau 2 days ago 0 replies      
The comments are HN are often well worth reading.
DrScump 2 days ago 0 replies      
The consensus here is the inverse of the old Playboy joke: "I only read it for the articles."
dzonga 2 days ago 0 replies      
I have found a lot of gems in the HN comments Way better than most of the stories themselves
anonmous 2 days ago 0 replies      
I read some. worth the time? it's just entertainment for me :)
omarchowdhury 2 days ago 0 replies      
I only read the comments.
adamnemecek 2 days ago 0 replies      
Comments is why I come.
Skywing 2 days ago 0 replies      
I hardly visit HN anymore, much less read comments.
pdog 2 days ago 0 replies      
Hundreds. No.
adrianmacneil 2 days ago 1 reply      
Ask HN: My internship is asking me to not apply elsewhere, how do I say no?
20 points by Syntaf  2 days ago   36 comments top 19
codegeek 2 days ago 2 replies      
I will give you an advice (12 years industry experience) which hopefully you should remember forever:

No one is looking out for you except YOU. PERIOD.

Don't forget this rule above. If your boss decides that they don't want/need to hire you at the end anyway, you are screwed.

Tell your boss "I look forward to working with you if it happens" and then keep applying wherever you need to apply.Your boss may mean well but at the end of the day, he has to report to someone and he has to look out for himself/herself.

Never ever put your career in anyone else's hands except yours.

Casseres 2 days ago 1 reply      
If you have to reply to the e-mail to acknowledge it, just say something along the lines of "Sounds great, thanks for letting me know!"

You don't have to say you're applying elsewhere. Him asking you not to apply elsewhere, is not the same as him demanding you to tell him if you are doing so.

Business deals fall through all the time, I wouldn't put all my eggs in one basket. A contract is not a contract until it's signed. Even if they sign it, there's no guarantee that they will keep you on.

A minor issue, but something still to note: Your boss said the contract "may" be secured, not that it "will" be secured.

mikestew 2 days ago 0 replies      
As it concerns "burning a bridge", remember that your employer is the one soaking it in gasoline from multiple five gallon containers, they're just asking that you not strike a match.

Which, of course, is completely unreasonable. Even if you have a written piece of paper with signatures on it, if they decide they don't need you anymore or can get another intern for less, they will effectively tear that piece of paper up and send you your way.

Moral: as others have already said, keep applying and let the cards fall as they might. Unless they have a full-time offer in hand for you today, you have no obligation to them. And I can guaran-damn-tee you that they feel absolutely no obligation to you. I mean, read your 2nd-to-last sentence: do you sense any commitment or obligation on the part of your employer? No, the commitment is completely one-sided.

TheMog 2 days ago 0 replies      
So in other words, he's dangling a carrot that's about two months away?

BTW, if you're dealing with "contracts" (implying a consultant/independent contractor relationship), then he's not your boss, he's your client. That's a big difference.

The main thing here is that he's asking you to commit to something that he's not willing to commit to himself. To me, a measured, non-commital response would be in order. Keep it polite and let him know that you'd be happy to discuss a contract for the summer once he's able to commit to one.

No point in aggravating the client but this is a business deal (selling your time and expertise). Treat it as such.

jason_slack 2 days ago 1 reply      
An employer cannot tell you to not apply for other work.

Just respond saying something like: "Thank you for the heads up. I look forward to it."

Nobody looks out for you in this life except you! (within reason...). An employer has to look out for the company first.

digikata 2 days ago 0 replies      
A lot of events can happen between now and then - they have made no hard promises (and to their credit they seem to have been truthful about why), but if they don't get a contract secured, then you're out of a job and delayed in a search for for a new one. That describes a path where one set of outcomes that can basically delay your life progress.

It seems you don't have any hard stake in the startup, you have a soft stake in the work relationship there - but I would suggest that if that relationship doesn't stretch to accommodate the risks of both sides than it really wasn't that much of a relationship to start with.

You can be as kind as possible and say you're not looking specifically to leave, but that you feel you have to keep your options as open as possible too, and I think that is perfectly fair on your part.

mesozoic 2 days ago 2 replies      
Draw up a contract that sells your option to apply elsewhere for what you decide the value of that option is. See if they want to buy.
qwrusz 1 day ago 0 replies      
Welcome to the post-college real world :)

Honestly, there isn't enough info in your post for anyone here to give a proper answer. eg the city you are in makes a difference. No worries, some general things to think about in your last year of college:

1. Don't work for a bad boss if you can avoid it.

2. Figure out what a bad boss means to you. But my criteria (especially right out of school) includes working for a boss I can learn from and a boss with high EQ (a boss who understands when his/her employees are stressed or exhausted or confused it makes a big difference).

3. Learning how to not burn a bridge is smart. But burning them happens sometimes. Try to please everyone and you will lose. It gets easier with experience (plus if someone is talented at their job, these ppl seem to be able to not burn bridges no matter how big an asshole they are). Maybe one reply to your boss could be: 'Thank you. Please let me know when you get that contract so I can discontinue my current talks with other companies'.

4. Believe in your startup and its product. Maybe more important than a good boss, ymmv.

5. Always be networking and getting to know people in your industry/in your city. Even if you don't call it "applying" I would be reaching out to other startups now. Email them say you are graduating and ask to learn more about what they do.

MyneOutside 2 days ago 0 replies      
It sounds like you will not be able to go full time after your graduate due to them not having enough hours. I doubt they would want to pay you a non-internship rate and once you grad, they'll replace you with another intern. Another red flag to me is them asking you to not look for another job. Sounds like they are more concerned with themselves than with your well being. As others have said, just say thanks for letting me know, etc.

Apply elsewhere. Sounds like a fishy environment to work in to me.

davelnewton 2 days ago 0 replies      
You be honest and forthright: tell them the reasons for your concerns, and that ultimately you have to do what you think is right for your current situation.

If that "burns a bridge" then they're not very reasonable. They might not be happy about it, but that's a separate issue.

vivekd 1 day ago 1 reply      
Just say yes you won't apply elsewhere and then apply elsewhere anyways. How are they going to know? Besides they can't enforce a contract like that in court because 1. there's no consideration 2. it's a contract in restraint of trade. So just lie.
NonEUCitizen 2 days ago 1 reply      
In dollar terms, how much does your boss value your commitment?

What if you want to explore a different area of technology? It would be very unreasonable to not talk to other companies and limit yourself to the same tech.

Why are you limiting yourself to one city?

chrisbennet 2 days ago 1 reply      
"I'm crossing my fingers that I'll be able to work with you this summer but in the meantime I have this whole "eating and living indoors" habit to support."

And BTW if you are a developer in the US, $22hr is easily 1/2 what a real job would pay. Companies tend to not give a raise to market rate if they get you "cheap" initially. Absolutely do shop around and find your market value. I think you might see why they'd love to keep you on after you graduate.

tedchs 2 days ago 0 replies      
Are you an employee (W-2) or contractor (1099)? In the latter case there is an expectation that you have multiple "clients". In either case, if this happened to me I would talk (as in, in your next 1:1 meeting or phone call), not by email, to communicate that at this point I need to keep my options open but if that ends up happening then it sounds great -- and also my hourly rate at that point will change to $(22 + X).
whenwillitstop 2 days ago 0 replies      
Your boss:

"Hey! We're giving you a bad employment deal, so don't talk to anyone else, so you don't figure it iut"

wodenokoto 2 days ago 0 replies      
A bit off-topic, but why are you calling it an internship? It sounds more like a part-time job.
Madcatm2 2 days ago 1 reply      
1) It is illegal for them to ask as some have surely pointed out already.2)$22 is shit pay. Junior devs in NYC make 50.3)These people are exploiting you and unless you have kids to feed, you should quit immediately.
AnimalMuppet 1 day ago 0 replies      

I don't know if you actually want to use this phrase...

But to me, it's like this: If they guarantee, in writing, in a contract that gives you recourse if they fail to perform, that they will hire you, then it's reasonable for them to ask you to give them, in an enforceable contract, your promise that you won't look elsewhere. If they're not giving you that kind of guarantee, your answer should be "no", however politely worded.

fbreduc 2 days ago 0 replies      
don't say anything, just apply elsewhere
Ask HN: Good architecture for C++ / QML projects?
23 points by laurent123456  2 days ago   14 comments top 6
once-in-a-while 1 day ago 0 replies      
I wonder why people want to use/abuse signals and slots in QML, when it's perfectly possible to just use good old plain functions in a language binding, like it is done here (for ECL/Common Lisp):


usernam 2 days ago 2 replies      
Do you actually need QML? What's wrong with "native" widgets?

I ask because I use Qt and c++ professionally, and have no use of QML. I could elaborate, but I'm more interested in why exactly you'd go for QML first.

guruz 2 days ago 1 reply      
QML evolved from binding Qt C++ objects into QtScript (JavaScript). If your QObject has Q_PROPERTY, signals, slots etc. you can access it from QML too.

Did you see https://doc.qt.io/qt-5/qtquick-modelviewsdata-cppmodels.html already?

Shamless plug: You can also ping us at info@woboq.com and we might be able to help with architecture/development of Qt applications.

bwoj 2 days ago 1 reply      
On my last project we started an effort to redo our QWidget implemented UI with QML. The QML version was really slow, we actually ended up buying a commercial license to get access to a QML compiler just to speed things up. And that was for desktop, I'd expect it to be even worse for mobile. Integrating the QML components with the QWidget components was especially buggy. For a 100% QML project this would be less of a problem.

Interfacing C++ to QML is clearly not a priority in the design of the whole system. You can do slots/signals or you can register C++ objects into the QML namespace. Something along the lines of this tutorial: http://doc.qt.io/qt-5/qtqml-tutorials-extending-qml-example....

Overall, I find the whole QML environment to be disappointing and I don't plan to use it again until it becomes more mature.

fundamental 2 days ago 0 replies      
I personally liked the idea of using QML, but the C++/QML interface made using it difficult. In the end I end up making another toolkit which consumed QML-like files and executed them using the mruby VM which has a much simpler C interface.
iheartmemcache 2 days ago 1 reply      
So this is where I'd start[0].

Their site has amazing documentation. I personally found Qt even in the KDE2 days miles better than React/Redux and non-Smalltalk MVC's. Since then it's only gotten better. Check out the examples here[1], the diving in section here[2], the book here[3], Stackoverflow has an overview of the whole system here[4].

You emit signals. Slots consume them. QObject::connect links the two. Queues are just queues in the traditional MQ sense. You don't use them in for, say, local GUI controls since it's generally a 1-1 unidirectional link (and if it's bi-directional, although I rarely need to do this, just ::connect( a,b,SLOT(),SIGNAL() ) then ::connect( b,a,SLOT(),SIGNAL() ). If you're still having problems read this[5]. If you have issues, that blog also has a preceding page which has a comprehensive analysis of the underpinnings of the entire slot/signal system in QT. If you still have problems, get on IRC and someone will give you a hand. If you're having a major issue, contact me. If it's a quicky I'll lend a hand, if not I know a few absolutely spectacular HN engineers who I'd recommend in a heartbeat.

I'd be real curious as to what's you consider 'messy' about signals/slots is you're having re: slots/signals (I guess since I've used Moose's MOP with Perl 5 and CL they sort of came naturally to me). I have no affiliation with Trolltech/QT/Nokia/whoever-owns-whatever-now at all; I just think C++ is real easy to mess up, libraries are even easier and they did a way-above-average job with their code-base (not to mention, documentation, ecosystem, etc).

The setup you want to use for cross-platform is Qt5.x + QML 2.x + QtQuick 2.x (aka QtQuickControls 2 in newer versions). There's licensing issues on some of the fancy-schmancy widgets but most of the things follow LGPL, so just dynamically link, follow the rules, and you won't get sued. If you're working on a legacy codebase (gcc2.95.3 hollaaaaa), don't try to force new-style QT into an old project, or your experience will be similar to @bwoj. 5.6(or there abouts) and up is where QML started to shine.

N.b. you don't have to use QTcreator. I find it satisfactory but that just might be years of Stockholm Syndrome. Most people coming from the C++/MFC (or C++/WTL/ATL/COM/WinAPI world) are more comfortable with Visual Studio. No problem, the 'standard' procedure is just to do what you would do with any .sln and split GUI into another project.


[0] https://www.qt.io/qt-essentials-qt-quick-for-c-developers/

[1] http://doc.qt.io/qt-5/qtquick-codesamples.html

[2] http://doc.qt.io/qt-5/qmlapplications.html

[3] https://qmlbook.github.io/assets/qt5_cadaques.pdf

[4] http://stackoverflow.com/a/19837895

[5] https://woboq.com/blog/how-qt-signals-slots-work-part2-qt5.h...

Ask HN: Places with a good tech scene and quality of life that aren't in the US?
20 points by nottheus  20 hours ago   12 comments top 6
protomok 11 hours ago 0 replies      
Canada has an awesome tech scene and is a great place to live :)Toronto/Montreal you'll likely find the most opportunities, or if you prefer a smaller city Ottawa and Waterloo have lots of tech jobs and less big city problems.
jack_pp 11 hours ago 1 reply      
as dumb as you might model Trump I don't think it's a good assumption to believe he'll get rid of working, papers in order, skilled immigrants, that doesn't mean you shouldn't look for an alternative but I wouldn't be too worried overall
nibs 19 hours ago 0 replies      
Waterloo, Ontario, Canada.
ruairidhwm 20 hours ago 0 replies      
Edinburgh, Scotland has an awesome tech scene and lifestyle!
bsvalley 20 hours ago 1 reply      
Zurich, dublin, Paris
evanular 12 hours ago 0 replies      
Advice on Remote Work
11 points by seekingfreedom  1 day ago   5 comments top 3
stockkid 1 day ago 0 replies      
> how likely it is to earn in the mid 100s doing full-time remote work in the embedded software field

I maintain a list of remote friendly companies. Here are a list of companies that might be doing embedded stuff.


I don't have enough information to help you, but on the website there is a chat community for remote workers. Feel free to ask questions there.

jack_pp 21 hours ago 1 reply      
It seems to me remote jobs are mostly suited for positions that can be easily replaced so web development fits wonderfully.

For anything low level where the company needs you specifically to keep the project going I doubt there are widespread remote opportunities.

Since this seems to be a throwaway account could you maybe disclose how much money you get after tax and how much you pay in rent? I'm curious because I'm from Europe and at a crossroads. I started doing mostly C++ but now considering switching to web because of the remote opportunities.

It would be nice to know what to expect from a carrier in low level stuff even though the salaries sound very good (150-200k) it's more important to know what one can realistically save in a year with that salary.

bsvalley 21 hours ago 0 replies      
That's why I like HN! I could have written the exact same post (I'm not in the embbeded field though.)

In your case and in order to be %100 remote, you would need to have access to a company intranet, access to the source code, be able to compile, deploy, run, etc. Can you easily do that in your space? If it's web, desktop or mobile all you need is an internet access. Just curious...

Also, there are places like Texas or Oregon where you can make 80-100k per year in a tech or related company. The cost is much lower outside of the main cities unlike SF/NYC where you need to drive 2h away to start getting into a 2-5 acre lot..

Outside of Austin TX for example, 1h away, you'll find huge lots for cheap. Contractors are super good and fast at building houses over there because they don't have to deal with stupid laws like "we" have in California for example. No state income tax in TX, Austin city is amazing (super crowded now though), then you get to be in the middle of noware at only 1h away from Austin. In the bay area 1h is the average commute to work. Same for Portland oregon, 1h away and you live like a king. No sales tax in OR.

The key is to find the right balance, being %100 isolated in the middle of nowhere isn't necessaraly healthy. I thought about it because I want land as well. But imagine being an hour away from a major city, living in a 15 acre property with a nice custom 5000 sqft house, a flexible state not far from a mini tech hub... sounds like a good alternative to your goal right? People don't realize how much work it involves to own a huge property. With 100 acres, it will become your fulltime (unpaid) job! 10-20 acres is enough for you to feel isolated.

Last but not least, the key here is to make sure you land a mortgage/construction loan while being at your current job. Lock it first because you will use your buying power and stable job situation to buy in a cheap place. Your current salary will help you qualify quickly and will help you initiate the process of getting/building a new house. Then look for a job in one of these places (cross your finger). Now you'll have the house, you'll have he job, you'll be able to quit-pack-and-go.

Ask HN: Does a forum for rational political discussion exist?
21 points by WhitneyLand  17 hours ago   14 comments top 10
Mz 15 hours ago 1 reply      
Your two goals are somewhat in opposition. This is hard enough to achieve with a) non political discussion in b) a small-ish group.

It is theoretically possible, but you would need to take an incredibly hard line about certain kinds of behaviors. Politics tends to actively encourage taking sides (pick your party, pick your candidate, etc), so this would likely remain an uphill battle for all eternity. But there is a lot to be gained by fostering genuinely civil discourse between people with very different views and backgrounds.

I have a long history of promoting the ability for people to share diverse views in online discussion. So, I know how that happens and how to make it happen. I don't do as much of that as I used to, because it makes me a target, benefits other people and seems to mostly bite me in the ass. So, based on personal experience, I will say it can be done, but it is incredibly hard.

japaget 16 hours ago 0 replies      
See the Neutral Politics (https://www.reddit.com/r/NeutralPolitics) thread on Reddit. They have a very strict moderation policy. All assertion must be backed up by appropriate citations.
ilaksh 14 hours ago 0 replies      
Here's the thing that people don't realize about discussing politics and quite a few other types of topics: worldviews and social identity are always going to overrule any rationality.

Everyone has to adopt a set of beliefs. This includes non-religious people. Beliefs or worldview are the foundational system of default nodes in your cognitive framework that shape your perception. They are, by necessity, unshakable -- because if your beliefs were easily upset, then your entire understanding of the universe would collapse.

One thing that makes this confusing is that many people adopt a belief system based (supposedly, at least) on empiricism and the scientific method. Basically the idea is, all of our beliefs arrived through careful testing and calculations. Therefore they are valid. However, the reality is that, since no one actually does the majority of these experiments themselves, the _supposed_ empirical nature of all of these 'facts' just plays the same role as faith in religious worldviews -- it is a way to hand-wave away any rebuttal ('its a scientifically proven fact').

The other confusing thing is that even though core ideas are basically immune to rationality, people have absolutely no problem whatsoever constructing elaborate rationalizations for their beliefs on top of them. And most people are quite motivated to try to spread their beliefs. Its a way of recruiting a new member to your world. Perception of reality is actually so different between different groups that this is basically a literally different world you are trying to bring them into. Look at the divergence between left- versus right- leaning media streams.

Its not that worldviews cannot change, but you are much more likely to be able to change them early on in someone's life, and after a certain inflection point, core aspects of beliefs are extremely unlikely to change.

I also mentioned social identity. The belief systems are mixed up with the social groups, because it is necessary for acceptance in any group to adopt that group's belief system. And be careful not to contradict it in front of the group, even if they hear some 'rational' argument that a momentarily lapse lets them see as reasonable.

notadoc 16 hours ago 1 reply      
Nearly every vaguely political anything online is quickly overrun by trolls, astroturfers, bots, and spammers.

It'd be a challenge, but perhaps you can build one. Good luck!

aklemm 15 hours ago 0 replies      
I haven't seen one, but I think about it a lot. Locally I'm co-coordinating an in-person group where we start meetings learning about civil discourse and rhetoric and mediation concepts, then we move on to a specific policy issue such as Obamacare, and try to make progress after being primed and equipped for civility.

We're working on making a curriculum out of it. Reach out to me if you want to discuss via chat or email. I have some ideas for an online forum as well.

slake 8 hours ago 0 replies      
The issue I think is people want an answer. Obamacare - good or bad? Hardly anyone is willing to accept the answer that it may mean different stuff for different people and approach such discussions with this nuance.

One probably needs to ask the question. What is the intent of such a platform? Popularity or creating a balanced, mature repository of arguments on a particular topic. The first shouldn't be too difficult, the second would be the holy grail.

gukov 16 hours ago 0 replies      
What I found to be working quite well for me, and not just with politics, is studying both sides of an argument and making a conclusion for myself.

When it comes to politics, /r/politics was a good place until it was overrun by the Correct The Record folks. It's been one sided ever since.

bjourne 13 hours ago 0 replies      
> - At least some level of popularity or usage

> - A diverse set of opinions. For example not dominated by either liberal or conservative views.

Sure, that used to be the norm before up and down voting because the trend. It's the voting system that has made sites like Reddit complete cesspools, coining the term "down-vote brigade." Perhaps then most communities were more left-wing because conservative people didn't have internet-connected computers. But they were less exclusionary than today.

sova 16 hours ago 0 replies      
It's theoretically possible but would require a lot of oversight and community-driven moderation.

Hmm... meta-moderation is an excellent advent of the slashdots.

smacktoward 16 hours ago 1 reply      
The problem is that, in practice, "rational political discussion" tends to turn out to really mean "political opinions I agree with." Which means you end up just building yet another echo chamber.
Ask HN: Do you keep a personal journal?
129 points by pawelwentpawel  2 days ago   102 comments top 61
wikibob 2 days ago 4 replies      

I tried to for many years with paper and pen. It never worked for me until I started using DayOne [0] on iOS and Mac. Simply superb design and one of my favorite pieces of software to use because it does (almost) exactly what I want it to .

When I type, I'm able to render my thoughts directly into text, whereas when I write with a pen I have to think about the physical process of writing. I imagine I'm not the only one here who feels this way.

A valid criticism of DayOne is that they don't currently support strong encryption, and their (optional) sync service stores your entries on their server. Their blog said that they are working on a good client side encryption implementation [1], however the last update was some time around the middle of last year [2].

[0] http://dayoneapp.com/

[1] http://dayoneapp.com/2016/05/end-to-end-encryption-for-day-o...

[2] http://dayoneapp.com/2016/08/encryption-update/

agentultra 2 days ago 1 reply      
Do you keep a personal journal?


If yes, do you find it useful?


What tools would you recommend?

A well-crafted acid-free paper notebook, comfortable pens.

Is there any specific methodology that you follow?


When journaling, do you try to track any specific aspects of your life or just write about anything that is currently occupying your mind?

I keep a system of journals. One series for personal thoughts, current life events, moods, reflections. One series for my mathematical explorations. Another for ruminating on the literature and polemic I consume. One for musical notes and development.

Any advice on how to get the most out of personal journaling?

Develop a process. A habit. Have a plan. Journalling for me is about making my thoughts concrete and objectifying my beliefs, opinions, and self. Writing is thinking.

Thanks for the answers!

Hope that helps.

chollida1 2 days ago 3 replies      
Yes, I use two things, no affiliation to either.

1) Five minute journal. Used to keep track of mental state and review day mostly.


2) Way of Life app for iPhone


I track about 40 things from floss, to running, to meditation, etc. It's a very easy way to, in under a minute, run through and check off the things you did, or didn't do if the task is something like "eat fast food".

It's great for reviewing over time like a month or quarter to see how you are making out.

I really think these guys have nailed simple task tracking.

zafiro17 2 days ago 0 replies      
Yes, I've written for 27+ years now [1]. It's a significant source of my personal serenity/peace of mind. Advice: find pens and paper that you like. Write if you feel like writing, don't write if you don't. Be honest to yourself: it's only for your eyes. Write down your concerns, your joys, things for which you are grateful. Organize your life. [1] http://therandymon.com/index.php?/archives/332-Twenty-Seven-...
tarentel 2 days ago 0 replies      
If yes, do you find it useful?

Yes. I mostly do it to unwind/relax. I think it's a good way to get your brain to slow down and collect your thoughts.

What tools would you recommend?

I use pen and paper. I stare at a computer all day and it's nice to take a break. Obviously, there are a ton of upsides to doing things digitally but for my particular use case I wouldn't benefit.

Is there any specific methodology that you follow?

I used to keep several notebooks for various purposes. I found it to be a burden. I'm way less organized now but it's easier to just put everything in one notebook.

When journaling, do you try to track any specific aspects of your life or just write about anything that is currently occupying your mind?

A lot of what I write about are problems I'm working on. I also write a lot of reviews, movies, restaurants, things I drank, etc. If I can't think of anything I'll usually write a short story from some writing prompts. I have no aspirations of being a writer, it's just fun sometimes.

Any advice on how to get the most out of personal journaling?

Try to do it everyday. My life isn't exactly full of excitement so sometimes it's hard to get motivated to write about it but there's always something I could be writing.

Emc2fma 2 days ago 1 reply      
I tried keeping a journal (to track what I did each day...otherwise it felt like the days were just blending together) but kept failing over and over because I just couldn't get into the habit.

For people who have the same issue, I came up with https://www.60secondseveryday.com

It's the fastest way of daily journaling - you make a 60 second phone call every night to answer the question "What do you want to remember about today?". From there, it gets transcribed, archived, and it's all searchable as well.

Disclaimer: I came up with the service after having a need for it myself

akbrouwer 2 days ago 0 replies      
"Journaling" seems like a broad term for everything that you want to do. Some people journal about their day, others jot down ideas, some people use it to bookend their day.

Goal setting, Mood Tracking, Habit Tracking, Reflection Etc. is hard to lump into one system, but I have seen it done by a few people.

I personally (and know hundreds of others) spent years writing in a blank notebook with a structure that I created for myself.

Something that would allow me to write my goals, map out my day, write what I'm grateful for, track my important tasks, etc.

I saw this as a problem, asked some friends if they had the same issue, and decided to create something that would have everything above.

You can check it out here: https://bestself.co/products/self-journal

This is not a "plug"

You can download the PDF on this page and check it out first.

I believe in it that much that I want everyone to have access to this.


-AllenCo-Founder | BestSelf Co.

Starwatcher2001 2 days ago 0 replies      
I've been keeping one since 4th Feb 2008. It's simply a Word document stored on an encrypted drive. Currently 153 pages, with my last entry 5 days ago.

It's intended for my eyes only. I record my moods, personal battles, health and weight information, self-development. I record snippets from good books, attempts to implement changes in my life, what happened and why.

It's a real eye-opener to look back over the years and see myself hitting the same problems over and over, such as overeating and procrastination.

Occasionally I distill all the positive, uplifting and useful bits into a "Highlights" document, which is really good to dip into when I need self-motivation. Whilst reading books and articles by others can be useful, there's nothing like reading your own advice from years ago, and re-living your victories, to get yourself back on track.

I recommend it, making it private, and being totally honest in what you write.

Good luck.

mkasu 2 days ago 0 replies      
Since I began my PhD I started writing a personal journal about my research.

I write down all things in my mind, things I tried out, things that did not work, etc. Every time I get new results or evaluate something, I also try to include a table or graph with intermediate results.

The journal helps me to see my progress over time. I can grep through it and see if I already tried something. I can go back and see how my results get better over time or whether I hit a dead end somewhere.

I also write a small summary directly after meetings and talks and note feedback from supervisors.

I use org-mode (emacs) for this and can recommend it. All my entries are sorted by year and week number, so I try to write a summary at least once a week. As I use Emacs for all my programming related tasks, the org-mode file is open all day anyhow, so I usually add things more often than that.

vitaminbandit 20 hours ago 0 replies      
I've kept a digital journal for the last five years (I have a chronic illness, so I look over my logs whenever I get sick to try and identify the trigger).

I tried a bunch of different programs, but I ultimately ended up writing a python script that creates a new .txt file with the datetime as the name("2017-01-20-22-02-50.txt"), launches vim, appends the day, date, and time to the top of the file ("Friday, January 20, 2017, 22:02 PM"), and then I just write my thoughts down inside vim.

I'm fairly disciplined about writing an entry everyday, but if I weren't, I'd just have it run as a daily cron job.

Having each entry as its own file is nice since you can just grep a term and find all the dates + times that the term was mentioned.

It's been incredibly useful - just this week I realized that my daily headache started when I began taking a new supplement, so I cut it out and sure enough, no more headaches.

Derbasti 1 day ago 0 replies      
I have been keeping a work/science journal for a few years now. I keep it simple: One text file per day in a single directory. Ever significant thing I do gets a new headline in the file. The text file is written in org-mode using org-journal, but any other formatting convention would work just as well. I find that writing the journal entries focuses my thoughts, sort of like explaining them to another person would. Also, it helps me focus on the important things, and it helps me remember.

Last year though, I made a significant improvement that changed the way I keep my journal: I added a bit of magic that moves all journal entries marked as "todo" from the previous day to the current day when a new daily file is created. This allows me to keep a persistent to-do list that I slowly work through, where finished steps end up in the journal.

scrapcode 2 days ago 3 replies      
I've just recently within the past couple of weeks started bullet journaling[0]. I have already noticed huge benefits in my productivity and organization. I was never that good of a note-taker so having this "method" to follow gave me the boost that I think I needed.

[0]: http://bulletjournal.com/

BenderV 21 hours ago 0 replies      
Since I follow the "Inbox 0" principle, I just set up an IFTTT recipe for that. Combine with the search of Gmail make it really easy to look up after.

https://ifttt.com/applets/14412595d-quick-ohlife-replacement... (I have no idea why we now can't share recipe on IFTTT, that's sucks...but it's basically, every day at 8pm, send me a mail with the title "How did your day go? #ohlife")

charris0 2 days ago 0 replies      
I keep a written personal journal where I write whatever I'm concerned with, mostly along the same areas as you mentioned too. And I preform a weekly review and rating every Sunday. Have been doing so for about 3 years.

I started to aid my sleep, putting all the racing thoughts in my head down on paper and closing the book on them was very calming, I can then forget them for a while.

I also love the act of translating your nebulous thoughts into (semi) clear language of written words, to me it's a focusing lens on your life, and allows associations, perspective and ideas that may not come about otherwise. Even if just because it forces you to reflect for more than some fleeting seconds.

I never see myself changing the primary method of writing these down freeform. But every time I finish a journal I do read back through and write up in google docs some bullet point style wisdoms and take-aways to remember for the future .

Glad to know there's others that get benefit from journaling too.

diegoprzl 2 days ago 3 replies      
Do you keep a personal journal?

Yes. Org-Mode+Org-Capture

If yes, do you find it useful?

Yes. There are many advantages to keeping a personal journal. It allows you to have better recollections about what actually happened in the past, which is important taking into account that memory is constructive and prone to distortion. Many ideas and insights are forgotten, recording them is a way to fight that.

What tools would you recommend?

Emacs and Org-Mode. Git. Markdown and any other editor is a good option also.

Is there any specific methodology that you follow?

I use some ideas from GTD. Explaining my whole methodology would take more time than I have right now.

When journaling, do you try to track any specific aspects of your life or just write about anything that is currently occupying your mind?


Any advice on how to get the most out of personal journaling?

Make it an habit. Put a time or word limit and just let the words flow. Make it seamless, for me capturing an entry is pressing 3 keys.

krrishd 2 days ago 0 replies      
I've been keeping a journal for a while (mainly for therapeutic purposes).

I've given it a shot several times but have failed in the past, but what has made it easy to keep up as a routine this time around is a finite duration to write within + the requirement of continuously typing w/o breaks; to achieve those two things (shameless plug), I built http://write.surge.sh: it basically allows you to set a duration within which you journal, and if you stop typing for more than a few seconds within that duration, your current session is completely reset.

It's also open source at http://github.com/krrishd/write for those who are interested in how I built it :)

SuperPaintMan 1 day ago 0 replies      
I keep a few cheap notebooks by my workspace. Ones for paintings/planning, another for programming ideas/in progress developments, one for personal/venting and another for poetry and jazz. I find them useful as a way to organize my thoughts that just plain text can't match. I kind of use them as a break from my screens when I'm trying to think.

As far as tools. A pen and paper, that's it. If you want to get fancy flip a notebook over and write from the backside in for a simple two topic book. Earmark pages. No methodolgy. I prefer to keep it messy, then I don't have to deal with constraints. Learning cursive helps

To get the most out of it I keep a extra notebook and pen folded in my breastpocket of my jacket. When I'm commuting, need a quick scratch, out for a dart it's right there. I prefer loose stream of consciousness writing to just codify the damn ideas.

For me using paper for note taking is relaxing and more natural then trying to fill a text box or fighting software to make a graph. I refuse to use some service for this on the same grounds that I refuse to work with digital painting programs. Physicality matters

temp246810 2 days ago 1 reply      
For years I've tried to keep something like a journal, but I've never quite found an app that ticked all my requirements.

Funny you should post this now - the solution that is working for now - is a google form for which I have a shortcut on my phone.

I did as much as a could to minimize typing - lots of multiple choice, linear scales, checkboxes, etc. Then one open text field at the end for notes.

I've actually been sticking with this - before I go to sleep I open the shortcut and fill out the form. If I feel up to it I elaborate on the notes, but at the very least I fill out everything else.

Been working so far - quick, easy, and the fact that it's in a spreadsheet makes it useful.

kalid 2 days ago 0 replies      
I keep it simple: a feelgood.txt file with dated entries whenever some event, project, feedback, etc. makes me feel alive.

Over time, you notice patterns about what really energizes you. For me, this is the high-order bit, more important than any specific time or life hack.

(Examples and analysis here: https://betterexplained.com/articles/life-lessons-10-years/ )

cableshaft 2 days ago 0 replies      
I've tried many times to do it digitally over the years, tried many apps, none really stuck more than a few days.

Last November I started keeping a physical Design Diary, though, and I've managed to keep it up since. I come up with tons of ideas for games, stories, websites, etc, and I tend to lose the ones I don't actively pursue over time, so now I just write it in there. It's nice because with pen and paper I can actually draw the designs of things too, although it's still mostly text. I also put notes from lectures on design I listen to in there also. I also just record whenever I work on those projects and some of the decisions I made while doing so.

I also put some personal things in there as well to provide some context and help aid my memory of when things happen (I have a terrible memory), but I do write this with the idea that somebody might read it or I might want to share it someday, so I try to fully explain the ideas as well as I can.

In fact, I don't just take notes in there or anything. I take notes on scrap paper first, since my natural notetaking style is pretty messy and filled with gaps, and then I sit down later and take those scraps and expand on them in the diary, sometimes days later.

It's already become one of my favorite physical artifacts (that's not an actual game I've made), and I'm trying to start a second one that retroactively goes back to previous games and stuff I've worked on.

The only structure I have in there is I keep things segregated by the day it happened on, more or less. Sometimes I have lecture takeaways put in there weeks after I actually watched it though.

projektir 2 days ago 0 replies      
I've started to keep a journal last year. I find it very useful and important to my life now. I've started it as a way to record how I felt about things and what my thoughts are since my mood used to very unstable and vary a lot, and journaling is considered helpful for mental health since you can dump your thoughts out and review them. I also wanted to practice handwriting and I enjoy writing as a process. I always write in cursive.

I don't use any computer tools at this time. I use a Black and Red notebook, because I didn't like the ratios of paper quality, sizes, or lining of others that I tried. Writing on the computer doesn't seem to have the same effect (and this is confirmed by various studies, from the looks of it).

There's no particular methodology. I try to write often, but don't find it necessary to write every day. If I don't feel like writing, I don't, usually, I do. I put the date down, and that's it.

Pretty much anything goes there. Events that happened, predictions and outcomes, personal concerns, dark thoughts, quotes, prayers, litany, ideas for projects, mini-stories about fictional worlds, notes about topics, insights, poems, math problems, diagrams, doodles.

TheGRS 2 days ago 0 replies      
Funny you ask this, my girlfriend was reading a biography about Lincoln and noted that it seemed like everyone kept a diary in those days. I said that I should start keeping one in case I ever become famous.

But seriously, I've thought about doing journaling for a long time and have never really done it in earnest. I keep copious work notes on a combination of a pen and paper notebook and a digital notebook. I've developed my own system for tracking tasks and notes over the years that works for me. Its not too unlike Bullet Journal except I don't do all of the monthly tracking stuff.

I started a personal notes journal on my PC, but I only put goals and important ideas that I have in it. I haven't made a good habit of writing daily. I believe that a honest journal would consist of daily freewriting and recalling/reflecting on the events of the day.

For my digital journals I wrote a couple of scripts for automatically entering in the dates. Used to use Evernote, but I dropped it after I started realizing it was a kind of shitty walled garden and it would be hard to get some of my notes out of it down the road. Plus they began restricting the amount of device for the free tier.

nickjj 2 days ago 0 replies      
If simple text has been working for you for 2 years, why make the switch?

I have over 100,000+ words sprawled across 15 years of plain text notes and it works wonderfully.

thesagan 2 days ago 0 replies      
Just went back to paper and pen this last December. I like the immediate access to pen/paper and I use it to get "salient" thoughts out of my brain and onto something safe. I always keep it nearby. (As long as I remember!) Meanwhile, at home, I use a nice fountain pen that makes it a pleasure to write and practice good/fast penmanship.

I've already filled up one notebook in a month's time, and it has served as a very low-stress way to keep my stream of thinking clean and unburdened from previous thoughts. I know that they're safe on paper, and I can move on from them. When it's time to pull all my thoughts together (for example, I just finished a lengthy proposal) all I have to do is refer to my notes, which were put down when they occurred naturally, and not in a "forced" deadline environment.

The paper/pen comes in most useful at night at bedtime when my mind throws up two or three ideas that I'd like to keep. (But not get out of bed or stare at a screen.) After I jot down my two or three intrusive thoughts, I sleep more soundly.

cocktailpeanuts 2 days ago 1 reply      
I use notational velocity for logging. Every day I create an entry with today's date. For example, today I am writing on "20170126".

I use it primarily as a todo-list.

Each morning I write down what I plan to do today.

I also try to plan each task in terms of time, so for example:


9am - 10am: work on task A

10am - 11am: look into task B



Then as the day progresses I mark down things as [DONE] when I finish them.

What's cool is at the end of the day you're left with a journal of:

1. What you intended to do2. What you actually did3. What you didn't do

aith 2 days ago 0 replies      
Surprised https://standardnotes.org/ hasn't been mentioned. It popped up on HN a week or so ago and I've been using it ever since. Very simple, elegant solution with a focus on longevity. It's exactly what I was looking for.
howeyc 2 days ago 0 replies      
I've been doing it for close to a year. I basically just have a bunch of text files in a folder. A text file for each day I make an entry.

Usually when I think a thought of note, or I'm experiencing a particularly strong emotional response, or just general dilemma running through my mind I'll write down what it is I'm experiencing or thinking.

Some days are quite long with multiple entries, some times I go a few days without writing a thing. I've thought about littering my entries with "tags" for easier searching, but I haven't done it yet. I don't really review what I've written very often. Plus the entries don't take long to review whenever I'm in the mood.

I use it more as a therapeutic tool, a way to discuss my thoughts with myself.

As for an application, I use Writely pro. But any text editor for Android that can open/save text files to a folder will work for what I do. Plain text synchronized across all my devices is the main thing. Future proof, plus it's my data.

lancer 2 days ago 0 replies      
I began journaling in my 20's by quickly recapping the day's itinerary in a Sierra Club day calendar given to me on every birthday. (Sadly, those somehow went missing during a move years ago. I'm hoping they're just buried in the bottom of a box somewhere!)

Since 1999, I've been using DailyDiary [1] to journal and track specific topics such as my personal day-to-day activities, weight, exercise, health issues, kid's day-to-day, specific projects, etc. The key for me is to be consistent, and the email nature of DailyDiary tries to reduce that friction as much as possible.

Having so much (searchable) written history has proven immensely helpful on occasion. And it's fun to reminisce when reminded of an event in the past. The kids get a kick out of hearing stories of their past too.

[1] https://www.dailydiary.com/

Disclosure: I'm the founder.

Strom 2 days ago 0 replies      
Yes I keep a journal and have done so for over 5 years now. It's interesting to be able to go back in time and see what exactly I was thinking. However the most useful benefit is immediate/short-term introspection. I tend to first just dump my stream of consciousness into text form, and if it's an interesting topic I'll take another pass and read through it and start shaping those thoughts with critical thinking. This leads me to more balanced opinions and also helps me deal with personal issues.

I use plain text files where I just prefix every entry with a timestamp. Whenever some major topic starts reoccurring I create a separate file for that topic. For example I have separate files for various project ideas, a file with a list of things I want to teach my children, a file with a list of things to consider when choosing a residence country.

EdwardCoffin 2 days ago 0 replies      
I've been keeping a simple text-file journal since 2010: one file per day, simple file naming conventions and directory structure (~/Journal/2017/2017-01-26.txt and such). I use it to track food intolerances and health issues mostly, though also record the names of books as I finish reading them, movies I see, and significant life events. I've got a handful of scripts to help me do things like grep through ranges of dates, and search for items with simple tags so I can, for instance, easily find when I last ate a particular food. It is simple and works for me, so I have never invested the time or effort to make something more structured, though I might write a few more tools to help with the structure I do have,at some point.
wjdp 2 days ago 1 reply      
Yes, I've recently started building a system to store journal entries among other types. They're markdown files in a Git repo which can then be processed (using Hugo) to make a browsable static site.

I'm storing four types of content:

- J, journal entries, one file per day with a summary of what I've done that day. Already proving useful, I forget what I did three days ago.

- N, notes, working notes on a topic. I treat this like a half neat half messy notebook. I write things in topic files while working through a problem.

- T, thoughts, similar to notes but much neater. Often longer form and drafted and rewritten a few times these are small 'articles' on my thoughts on a particular topic. One or two may get converted into blog posts.

- Q, quotes, if I find a quote in a book or online I find interesting it gets a file in here.

The output is a linear weblog style currently.

I've only had this running for a few weeks and it's rather cumbersome at the moment. What I hope to improve on:

- Improve onboarding, hugo has a nice tool which sets up new documents and opens the editor: `hugo new n/topic.md`. I want to build on top of this to reduce friction when writing.

- Away from PC. This system works very well when I'm in front of a computer. When I'm not I have read-only view on mobile. I take notes on paper, the best of these get transcribed into the system. I'd like a way to write on mobile and have that automagically get added into the system. The backend would probably be an AWS lambda function, frontend, perhaps a web app?

- Frontend, I want search and better browsing, tagging &c. But this will come later, when I have more content.

I'm trying to stay detached from any 'app' and maintain control of my data. The 'solution' I'm building will hopefully serve me for a long long time.

hkhall 2 days ago 0 replies      
Yes. I keep a five year journal [1] after it was given to me as a gift at a wedding I attended two years ago.

I had tried journaling before but a full, blank page was too much in terms of time commitment and stress I put on myself around it. This format gives 6 lines per day and feels easily doable.

Each page has 5 entries on it so you can read what you were doing on that day in previous years. Its nice to have a direct comparison to remember what you were doing last year and see how you have improved, fallen short, or stayed the same as well as remembering what you were doing then. More than once I have been reminded of a friend's wedding anniversary through this.

Totally recommend it, but keep it short and don't judge yourself if you miss a day.

[1] http://a.co/d3j0Pcj

Todd 2 days ago 0 replies      
I have kept one off and on. I like writing using pen and paper. Given that I type much more quickly and I'm at a computer all day, a file-based journal is more pragmatic.

I wrote a simple script 14 years ago to automate the organization for me.


I just alias a simple one letter command to "jour.py work" or "jour.py blog" and running it will open a file with a date-based name in my editor of choice. Re-running it on the same day gets me the same file.

This method has the advantage of a very organized, timeless format. The disadvantage is that it's on my local machine. Of course, a cloud based file store could be used, but there is no default encryption and there is no mobile option.

walkingolof 2 days ago 0 replies      
Yes, I started a few years back and it has been great, its become one of my most valuable possessions. Its the record of my life and the things I do.

I have one file per year, I write one entry per day, mostly what happened during the day, in the "journal" part, and make notes in the "notes" section, notes can be writeups, code snippets etc. Each new year, I condense the best of the notes section into the next years new note section.

I do this in org-mode, using Spacemacs, its a bit of learning curve involved with Emacs/Org-mode but Spacemacs sets it up for you very neatly.

I store the files on dropbox.

Since its my journal, that I want to make sure that my kids still can read when the times come, this UTF8 text file format that Org-Mode is, is absolutely essential.

cel1ne 2 days ago 0 replies      
I'll answer these questions one by one:

> Do you keep a personal journal?

For the last two years I've written a journal entry almost every day. Some days I didn't write, like during travels, but I added information about these days afterwards. Sometimes those entries were pages long and contained conversations or dreams, sometimes it was just: "1. Dezember - 3. Dezember: much work, travelled to Budapest"

I stopped writing about three weeks ago.

> If yes, do you find it useful?> When journaling, do you try to track any specific aspects of your life or just write about anything that is currently occupying your mind?

My purpose of the journal was to keep track of my motivation and good mood, so I put mostly positively worded events in there, like "* Went to training, despite mismotivation of the last days". I also recorded things that I never / seldom do.

It served that purpose well. I don't need it anymore, that's why I stopped, but I'll probably pick it up again someday.

> What tools would you recommend?

Plaintext Files. Or MacOS Notes. It doesn't matter really. Finding the perfect journal is procrastination to prevent having to write a journal.

> Is there any specific methodology that you follow?

Write an entry for every single day, no matter when, no matter how short it is (but make it at least one grammatically correct sentence). If you forget, just write the entry for yesterday.Mark the entry with date and time.

> Any advice on how to get the most out of personal journaling?

After doing it for a while, you will develop a feeling about whether and how it benefits you. Follow that feeling.

Apart from that: Keeping a journal will always enable you to reconstruct and remember details of your life 10 years from now. One key sentence is often enough to help you remember the day.

That is why I'm going to pick it up again.

SN76477 2 days ago 0 replies      
I do keep a journal. I do find it useful, it is some reflection and my to do list.I looked online at bullet journal, and I purchased a nice one called Self Journal. I just couldnt get with those, but they all have nice features.

so what I do is this. Date at the top, I write out what I am greatful for in as many lines as I need, typically 2 or 3. I put down a big goal, and I put out my tasks for the day and mark them off as i go.

It serves as a scratch pad, its not holy, I rip pages out, or whatever.

I use the moleskine volant because it is rugged, but not stiff, I can roll it up and sort of stick it in my pocket if I have to. I try to take it everywhere.

charlieegan3 2 days ago 0 replies      
I keep a personal journal.

I have yet to find looking back over it useful. I helpful in organising my thoughts when writing it down.

I used to use Day One but now I use a simple web app running that I built to replace Day One and Evernote late last year.

I'd build your own journal setup. Plain text files would likely work too. Make sure to back it up. It's a pain changing the system after you've written out 1000's of entries.

I tend to write about what's going on and what's coming up as well as what I'm thinking / worrying about.

Advice would be to just write it for yourself - assume it'll only ever be read by you. I find that helps me get things down without fussing.

elijahmurray 1 day ago 0 replies      
- I keep an irregular journal.

- It is useful to process my thoughts, capture high and low moments in life, braindump when feeling overwhelmed.

- I use VIM + markdown, with a new file per entry. I find it very effective. I journal whenever I feel like I need to or should.

- I don't track aspects, I just write about whatever I feel like writing about.

Like most things in life, the answer is just do it!

lambdasquirrel 2 days ago 0 replies      
Do you ever have ideas? Things that seemed interesting? That's pretty much what goes into the notes section of my journal. It's all on my phone so it's always with me.

I keep an unstructured, personal journal, and half of what's in there are thoughts I have, going to bed or waking up in the morning. There are some good pieces of writing that've come out of it and just yesterday, a former coworker and friend thanked me for some observations I had about the company we once worked at. Sometimes the things we reflect on can be a big deal.

neurocroc 2 days ago 0 replies      
Yes I do.

I have been writing in it for the past year and it has really improved my life in many ways. I have written about it detail here :


The feeling of knowing that not a single day has went unwritten about is amazing. I know what I did on every single one of these days and it feels really empowering to see yourself evolve with time.

romanows 2 days ago 0 replies      
I stopped keeping a personal daily journal when ohlife shut down. It was a service that would email you every day and you would respond with your journal entry. I don't know why it worked for me-- i could just email myself each day-- but it did. I do find my old entries useful for remembering my state of mind and the timing of events. Since this was data in the cloud managed by people I didn't really know, I mostly kept positive notes of stuff that I wouldn't mind being exposed.
0xCMP 2 days ago 0 replies      
I do not. I try to record photos of as much as I can instead so I can look back on my life. I do however dump my thoughts in to to notes all over the place (Apple Notes, iAWritter (icloud), Dropbox, Evernote, OrgMode).

I tried Day One, but I got mad that they switched away from dropbox. They honestly could have solved the problems, but I can't fault them entirely for taking the easier route here to make supporting it much easier.

I'm not sure what I would journal if I did keep one for real.

balladeer 2 days ago 0 replies      

Very much. But my useful is mostly about personal stuff and once in a while revisit. Looking at things in retrospect. Sometimes I get something to learn, sometimes it's just fun or once in a while it makes me sad too.

I have been doing it on notebooks (paper journals; and not the fancy and famous ultra costly ones). Really. It's very recently that I started to put some entries on Android Journey app which are kinda too personal to leave in my daily diary which I don't lock in a box. So, I will recommend a paper notebook and pen. I am from India and I am always in the hunt for good and affordable notebooks and fountain pens - we don't have many in the former category. Anyone looking for something good here try Brahma Series (or Brahma Forces) notebooks - they sell Moleskine like notebooks (honestly paper quality is actually a lot better) minus Moleskine's marketing cost in its price. (disclaimer: nothing against Moleskine)

Not really. Some days I just write about something that happened. Or something I thought or just anything. Some days I skip. Somedays I just pen a poem or so (or something that I kinda thing are poems). A short story. Or a sketch (yeah, I make sure the notebook I get have good pages and works well with pencils, ballpoint pen and fountain pens - the latter being my favourite), a caricature, a schedule, sometimes card game score when I am travelling with my friends and we had a game, travel itinerary. I have found some pages where there's some math of splitting trip expenses among friends. Something from a book I am reading, or a film I watched, or something about it. I travel/backpack a lot and that's when my diary gets maximum attention. But these things don't happen very frequently and it's mostly the typical diary entries. So, it's my personal diary and I wrote it just because I like it. It it helps me in my development in some way then it's entirely coincidental and it wasn't the intention at all.

Yes, as explained above. It can just be anything.

Well, I don't think you could get something useful from my kind of journaling (I believe you are looking for journaling that is done from the productivity point of view and similar expectation; I maybe wrong though). Keep writing is all I would say. I have been writing since I was in class 6 - pretty much 20 years now. Yeah, frequency has gone down a lot since school. No doubt about it.

ggregoire 2 days ago 1 reply      
I don't keep a personal journal but I take a lot of notes, mostly for "retrospective analysis, tracking my goals" and my ideas.

I use Evernote.

gravypod 2 days ago 0 replies      
I think you should watch Cody's Lab's Q&A where he takes out his journal and shows off what's inside of it. It'd like to do that some time when I finally have extra money and time to spend on cool side projects. He just keeps logs of experiments. Title + Picture + explination of idea. I think it's a good formula and I've love to try it.
luxpsycho 2 days ago 0 replies      
I don't keep a journal. I beliebe I would find it tremendously useful.N/AI believethough I haven't read it yetthat GTD (by David Allen) has some elements about personal retrospectives in it: have a look at what you did, what you wanted to do, compare and improve.

Again, I don't do this (though I want to) but I'll follow this discussion with interest!

thepiwo 2 days ago 0 replies      
I started a personal project for logging my life, first steps were location tracking but features like connecting my lastfm account, pictures taken and inserting notes will come.

The idea is having a mobile application for tracking to a self-hosted api and a web-client for having a feed (like facebook about myself).

This will be released open source once it's somewhat presentable.

otalp 2 days ago 0 replies      
Org-mode in spacemacs is my choice, though that is more of a TODO list keeper than writing down personal thoughts. But it is plain text and has timestamps. It is also very flexible and powerful.


xj9 2 days ago 0 replies      
evernote has been my go-to for journaling and note taking for the last five years or so, but i have been keeping notebooks for ages. they are where i keep my thoughts. random ideas, stream of consciousness, stories, poems, quotes, outlines, sketches. i will often have a page where i keep track of the goals and/or metrics that i care about measuring/tracking.

the switch from analogue to digital has been interesting. my content is now organized by topic, rather than being a chaotic mess of thoughts and feelings; tags make things searchable, but i don't sketch as much as i used to, which i miss. i'm slowly getting used to having a stylus rather than a pen, but i don't know how long it will take for it to feel natural.

ffef 2 days ago 0 replies      
No. If there is something I need to keep track of or be reminded I use notes + reminder app on iOS.
alexitosrv 2 days ago 0 replies      
Yes, totally. I only write in text files for portability and because I find more liberating to just write with no care for special formatting and being sure that I can read what I write on almost everywhere.
tranv94 2 days ago 0 replies      
My friend's mom has a journal entry for everyday of her life. I'm jealous she has all those memories stored like that. It's a vast collection of notebooks
MollyR 2 days ago 0 replies      
Yes. I keep a daily journal for all my programming related work with sources,ideas,debugging notes.

Reviewing them really helped me evaluate and improve my software architecture patterns.

CiPHPerCoder 2 days ago 1 reply      
No, because it would be used against me in a court of law.
phreeza 2 days ago 1 reply      
I have a dedicated gmail address from which I receive a daily prompt email, scheduled with a cronjob. I usually reply with 2-3 lines about my day.
bassman9000 2 days ago 0 replies      
No, but I'm starting to think I should.

Time distorts self-awareness, and having a written record would help.

webgurl83 1 day ago 0 replies      
I track ideas and random reflections using penzu.com
scriptstar 2 days ago 0 replies      
what a coincidence? I got my 5-minute journal from Amazon yesterday evening and started using it straight. I did yesterday evening and today morning. I am not sure how it works but I was tracking my sleep before and will do after. I bookmarked this thread and will come back and let you know my thoughts.
nunez 2 days ago 0 replies      
Yes but I update it infrequently. It's in OneNote.
nbm 2 days ago 0 replies      
I've been keeping a bullet journal-style journal for the past month and a bit, and I've found it pretty useful. I don't write any "dear diary" style entries, but I do write down thoughts I have about game ideas, camera gear research that I might want to use/rent/buy, vacation ideas, and so forth, in the bullet journal style.

Here's an example empty page for a week - https://www.instagram.com/p/BPUIKR1Am3o/

I track some things daily:

* quality things

-- mood

-- energy levels

-- activity level

-- productivity

* tick-box things

-- did I wake up before 8am?

-- did I get to work before 10am?

-- did I hit my step goal?

-- did I do any additional exercise like a really long or strenuous walk?

-- did I do some work on a personal project? (taking photos, working on my game, looking at houses, whatever...)

-- did I record my weight and blood pressure?

-- did I follow my morning/evening routine? (pack/empty dishwasher, did I remember to take my pills, ...)

On a weekly basis, I tally up a few things from my activity trackers - how many days did I hit my sleep goal of 8 hours, what was my average weight/blood pressure, how many total steps did I do, and so forth. I also convert the daily quality things into the number of "good" days and "bad" days in that week on that scale - so maybe one very good mood day and two bad mood days (and the rest acceptable).

I then write down any non-technical-work tasks (we have a task tracker already at work for technical things, after all) I want to get done (either in the future, or on a particular day), or events that I need to remember, generally in the bullet journal style. These are things like:

* Collect building badge

* Write talk submission for conference

* Develop the iPhone photos from the weekend

* Remember that the new X book is out (today, on day X) and I should read it next

* On the 30th of January, remember to send out the invite to the event

Then every Sunday I make a new weekly page, migrate all the unfinished entries forward into the next week, and start again. I'll cross out things I realise that I don't care about any more, and move things that are further in the future than the upcoming week into the "future log". Pick two to three main things to keep in mind, schedule some work onto particular days, if appropriate, and the rest into a general weekly tasks list.

I also move things like vacation or camera gear or game idea one-liners onto a dedicated page - either a full page for the idea, or a page that has a list of those one-liners.

themodelplumber 2 days ago 1 reply      
> Do you keep a personal journal?

Yes, I find it very useful.

> What tools would you recommend? Is there any specific methodology that you follow?

Sure, here is my current framework:


I keep all text files in a journal folder with subfolders for each year. At the end of each week I review the last week's journal entries for information which is applicable to future projects or needs, and move that information into systems of frameworks, which are also described in text files in a different location.

> When journaling, do you try to track any specific aspects of your life or just write about anything that is currently occupying your mind?


I track my mood, as you can see by the DaySCOR item (this rating system is a work in progress and has an alternate look when I use it on paper; it's more of a multidimensional graph on paper).

I've learned that most days are around a 3/5 _no matter how much I accomplish_ unless I make a conscious effort to enjoy the day and just be a happy person. That has been a lesson I didn't expect. I thought that getting more done would make me a happier person, but upon reviewing my numbers, that hasn't been the case at all. Productivity is something of a psychological fake-out, but I haven't gone too deep into why just yet. Psychologically, it seems that a person is much more than just their accomplishments. Also at HN many of us tend to project a very strong productive aspect, which could compound this issue. (That would indicate that we repress an inner lazy person, for one...lack of time off, time out, time away, inability to give the finger to work and just waste a day...the boundary there is not an easy one to navigate for productive people)

I also open a new file for each client project and keep those separate. It's helpful to be able to open my last client project file when working on a new file. I also try not to let information build up in email threads and immediately move project information out of emails and into text files. This is in part because GMail search is so slow and long threads are a pain to search.

> Any advice on how to get the most out of personal journaling?

Build your own journaling framework to improve your journaling system. Watch for leverage points that work for you, write them down, and change/refine your framework. This will keep the practice enjoyable and effective for you.

Through two years of journaling I went from obese to healthy weight and only did it by addressing the subject of my weight directly. If you feel like you cannot address tough subjects directly, you may need to change your journaling technology or system or it may fail in its role as a problem-solver. In order to address difficult subject in my paper journals, I leared the simple Ford Shorthand technique at fordshorthand.com and am worry-free when it comes to others possibly prying through my journals. I keep one on the mantle in my home, in fact. Being able to address difficult topics at a time of your liking is crucial.

Ask HN: Facebook is listening to your conversations
31 points by samblr  3 days ago   16 comments top 9
benologist 3 days ago 0 replies      
I read last year accusations some android apps were in trouble for undisclosed listening to identify ads on television, that might be a good starting point for more information, it's technically possible something was listening.


hbosch 3 days ago 3 replies      
I believe this has been discussed before, but it never ceases to amaze my wife and I.

We will be talking about, say suddenly needing new Swiffer pads. Face to face conversation, emergent and organic conversation, no prior searches in the last few weeks or anything like that. Then, next time you're scrolling through instagram, there is an Amazon ad for Swiffers.

gt2 3 days ago 0 replies      
Wouldn't this waste a lot of bandwidth?

Or is it likely that the audio is being analyzed client side before pushing results to a server somewhere?

Also, if this was actually happening, should this be announced in some terms of service?

NameNickHN 3 days ago 0 replies      
For me it's not the question of whether they're doing it. Its technically feasible, so it's being done.

What interests me more is whether the broad user base cares enough to change their habits. Does it become freaky enough for them that they'll change the way the use the platform? (Doesn't matter if it's Facebook or any other website.)

ibejoeb 3 days ago 1 reply      
Are you talking about Messenger in text, Messenger in voice/video, or face-to-face conversations? I'm reading some of these linked threads that suggest that the microphone is recording at all times.
tranvu 1 day ago 0 replies      
Same thing happened to me. I was eating Sunchips and then logged into Facebook to see an advertisement for Sunchips. Wouldn't be surprised that they're also watching us.
bsvalley 3 days ago 1 reply      
It's from Techcrunch not FB. They use retargeting/remarketing ads and sell this info back to Facebook. A lot of websites do that... It's actually easy to find out what people browse on the web only by looking at their FB news feed. If you see a birth control ad on your girlfriend's FB news feed - run away!
gesman 1 day ago 0 replies      
Why is that surprising though?
Ask HN: What are some ways to support open source projects besides writing code?
8 points by cagrimmett  1 day ago   8 comments top 6
cottonseed 1 day ago 0 replies      
Documentation! See this recent thread for example:


Or generally anything that helps user experience: documentation, improving web site/documentation design, testing, finding bugs and making high quality bug reports, evangelizing the project to users who need it but aren't aware, becoming a expert user of the project (which will almost certainly lead to bug reports, suggestions for improvements to features and documentation, etc.) and triaging tickets, answering questions in the support forum, etc.

Belar 1 day ago 0 replies      
Pretty much always you can "give them a $20", every medium+ sized project has some kind of support program going or accepts donations.

However, if they don't or someone doesn't have a $20 to throw at open source, there are a lot of ways to help. Just to mention a few (assuming you are at least an active user):

- help less experienced users (answer community questions, reported issues etc.),

- improve documentation (documentation is never finished),

- share your knowledge about a tool (write an article, tutorial),

- take part in tests and report bugs,

- apply your skills (design, writing, community management etc.) to aid project's needs,

- create (and maintain) a useful "resource" (e.g. list of example projects, plugin reviews).

There are many ways that often go "unnoticed" or rather... no one may officially pat you on the back for it, but it helps.

johnnycarcin 1 day ago 0 replies      
I don't have a lot if time to provide anything to most of the open source tools I use so I've setup monthly donations to them that my company matches. Some of the developers have wish lists as well that you can get them stuff from.


tmaly 1 day ago 0 replies      
I have been giving Mozilla foundation $20 each year. I use firefox daily and I am interested to see how Rust develops.
jetti 1 day ago 2 replies      
Write documentation. Good documentation is hard to find for a lot of open source software.
Ask HN: Is there any GitHub based/supporting gamification service out there?
21 points by diegoperini  3 days ago   7 comments top 4
wjvdhoek 3 days ago 1 reply      
We (me + a couple of buddies) were in the process of building such a service. Unfortunately due to the circumstances, we had to stop working on it but I firmly believe such a service can benefit professional development teams to improve. So I don't fully agree about not using such a service in your work place.

Anyhoo, we did find that such a service exists[1]. I haven't looked at it of about a year, but at the time it seemed interesting though a little lacking in features. They do seem to have improved over the year. You might want to check it out!

[1] https://getbadges.io/

scardine 3 days ago 1 reply      
Not GitHub based, but StackOverflow nailed gamification for Q/A - despite the fact that it attracts a lot of hate in HN they managed to build a great resource using a self-moderated community. Far from perfect, but who is doing it better?

There is a chat feature and I've used it to give free 1:1 consulting/support.

There are lots of answers linking github issues and code playgrounds like jsfiddle and codepen.

ethernetsalad 2 days ago 0 replies      
Personally, I use Habitica for task tracking and habits. The nice thing is it's open source with a wide variety of extensions.

I use the Github plugin myself where each time I push to repo or create/close an issue, it triggers a +1 on a habit (which results in Gold and XP) so indirectly, perhaps you might enjoy it?

I always forget about it then an pleasantly surprised to see a heap of gold + level ups later that day

eeZah7Ux 2 days ago 1 reply      
> I strongly discourage using such services at the work place.

Thank you for saying that.

Ask HN: Where can we find the YC W17 company list?
7 points by traviswingo  2 days ago   3 comments top 3
jaypaulynice 2 days ago 0 replies      
http://www.ycombinator.com/companies/ filter by batch YC W17 is last in the list, but it's incomplete...I think they're revealing 1 company a day via Launch HN title...
bsvalley 2 days ago 0 replies      
I think you have to wait for demo day. YC W17 batch is still on at the moment until March. Correct me if i'm wrong...
traviswingo 1 day ago 0 replies      
Thanks all. For some reason I thought we usually hear about who's in the batch at the beginning of the term...but it makes more sense to reveal on demo day.
       cached 29 January 2017 13:05:01 GMT