hacker news with inline top comments    .. more ..    31 May 2016 Ask
home   ask   best   2 years ago   
1
Ask HN: What small websites do you frequently use/visit?
16 points by curiousgal  1 hour ago   8 comments top 7
2
brianherbert 50 minutes ago 0 replies      
http://990finder.foundationcenter.org - Look up most nonprofits I encounter
4
swineflu 33 minutes ago 0 replies      
6
roschdal 55 minutes ago 0 replies      
7
2
Ask HN: Relationship between OO and functional programming?
52 points by spdionis  2 hours ago   42 comments top 20
1
noelwelsh 31 minutes ago 0 replies      
I gave at talk about this at Scala Days NY, and I'll give it again in Berlin in a few weeks if I remember to actually book transport and a hotel. I'll just try and summarise here, because I don't have the energy or time to write out my talk :-)

I think FP and OO are fundamentally different in how they approach programming: the way they break down problems, what they consider to be good code, and so on. OO views code as small unit of encapsulated state communicating with one another. FP views code as a series of transformations. OO code is not good FP code, and vice versa.

On a lower level you can find many similarities. OO patterns are largely FP language features, from a time when knowledge of FP was not very widespread. At least five of the Gang of Four patterns are first class functions is disguise. Going the other way, a very typical pattern in functional programming is to build up a description of what should happen, and then have an "interpreter" actually execute that description. These interpreters often look like "coalgebraic" structures, which is an FP term for ... objects. Now isn't that interesting?

In summary, the techniques often look very similar if you squint, but the fundamental way they approach programming is very different.

That's a very quick sketch, which is somewhat hazy on the details. Apologies for the brevity and lack of nuance.

2
sgrove 1 hour ago 2 replies      
Just a bit of a fun post on the subject, I quite like this koan about OO vs Closures [0]:

The venerable master Qc Na was walking with his student, Anton. Hoping to prompt the master into a discussion, Anton said "Master, I have heard that objects are a very good thing - is this true?" Qc Na looked pityingly at his student and replied, "Foolish pupil - objects are merely a poor man's closures."

Chastised, Anton took his leave from his master and returned to his cell, intent on studying closures. He carefully read the entire "Lambda: The Ultimate..." series of papers and its cousins, and implemented a small Scheme interpreter with a closure-based object system. He learned much, and looked forward to informing his master of his progress.

On his next walk with Qc Na, Anton attempted to impress his master by saying "Master, I have diligently studied the matter, and now understand that objects are truly a poor man's closures." Qc Na responded by hitting Anton with his stick, saying "When will you learn? Closures are a poor man's object." At that moment, Anton became enlightened.

I was surprised at having come to a similar understanding after implementing a very basic OO system in Scheme some years ago.

[0] - http://c2.com/cgi/wiki?ClosuresAndObjectsAreEquivalent

3
eldavido 1 hour ago 3 replies      
In the past five years, I've written C#, Ruby, and Javascript in a style I'd describe as "OO, but with a heavy functional accent"; it might even be fair to call it "object-functional".

A few little things I've identified that I do, that aren't totally mainstream:

- Don't reassign parameters, in fact, don't reassign things at all, if you can avoid it; show your work. It makes for more expressive code, and you'll have fewer bugs.

- Think of your code as doing "evaluation", not "computation". Code should take a bunch of inputs, do some stuff to them, and then return an "evaluated" response, vs. the viewpoint of "doing a procedure".

- Try not to make functions side-effecting. Avoid "void" unless you really need it, and really, really avoid distant side-effects.

- Don't be afraid to return a new object that seems "large" from a method. If you do it right, you'll mostly be copying references anyway which is pretty cheap.

- Share data liberally by reference all over your code.

- Don't be afraid to use a bit of recursion.

On the other hand, I'm not afraid of a little grubby OO now and then, especially when dealing with I/O, file handles, network streams, etc.

All to say, I think the two styles are about 90% compatible but there are some parts that don't mesh well. I'm not afraid to mix them, though.

4
spdionis 1 hour ago 0 replies      
Disclaimer: I am surely not experienced enough to give a highly informed opinion on the topic.

As I mention in the opening I do not think there is a strong dichotomy between functional and OO programming. I believe historical accident created "Objects vs functions", and by historical accident I mean Java. It is unclear to me why would you not allow to create plain simple functions and force everything in objects. Probably a misunderstanding of "everything is an object".

Famously Alan Kay emphasizes "message passing" as the key characteristic of object orientation. Because every discussion about OOP and functional programming eventually ends up talking about State as the main discussion point, I fail to note how a definition of OO based on message passing contrasts the benefits of functional programming around state management.

In fact the way I see it is that when we have more units communicating with each other they form a system that should be functionally pure from an external point of view but can be OO in its internal implementation.

EDIT: Continuing my train of thought: the problem with OO in it's current common form is that objects often/always leak details about their state. So you have a tuple (state, [actions]) where often using an action is invalid given the tuple's state.

5
jbandela1 1 hour ago 0 replies      
I like Michael Feather's quote https://twitter.com/mfeathers/status/29581296216

OO makes code understandable by encapsulating moving parts. FP makes code understandable by minimizing moving parts.

I think they can be used in a complementary manner. One area where functional thinking can be a benefit can be in code that is tested with a lot of mocks. Instead of having a bunch of objects that mutate state and that need to be mocked out, model that part of the program as a series of pure function transformations of data. It will be much easier to test and reason about.

6
mafribe 1 hour ago 1 reply      
This is a really interesting question and much work has been done.

For a long time, lambda-calculus has been seen by a lot of programminglanguage researchers as the foundation of programming to which everyother paradigm has to be reduced. This research tradition producedmuch work on encoding object orientation (whether class-based orobject based) into lambda-calculus. Ideally such encodings should besound and complete. That has proven difficult. In parallel, functionallanguages acquired OO extensions. The first serious implementation tomake this (sort of) work was OCaml.Arguably, all that work wasn't quite convincing. Eventually, it becameclear that lambda-calculus isn't the basis of all other programmingparadigms. Instead people tried the reverse: encoding lambda-calculus intoobject-orientation.

Scala really nails this, and validates your intuition that there isn't a dichotomy. Instead FP is a special case of OO.

If you want to understand the relationship between OO and FP there isno better way at this point to learn Scala and study howlambda-calculus (both at program and type level) is encoded intoclass-based object orientation.

7
sjclemmy 33 minutes ago 0 replies      
My take on this is that computation is the act of describing different states that the processor can be in - or describing the path from one state to the next.

I think an understanding of state is fundamental - one thing that brought this home to me was a talk I watched given by Sophie Wilson [https://en.m.wikipedia.org/wiki/Sophie_Wilson] in which she displayed an image of a cpu. The image showed a 'path' across the cpu that was the current state, the next image showed a different path describing a different state. The path was a lot like a bolt of lightening.

An understanding of functional programming (FP) matches this a bit more directly than OO as FP is a pipeline of functions that describes state change and it is easy to reason about the state at any point in the pipeline. OO represents a real world object so you are encouraged to think about the problem you are modelling rather than the how to represent different states. But obviously in the end they both describe state and logic that describes state transition.

8
ridiculous_fish 30 minutes ago 0 replies      
One way to start to think about this is the relationship between objects and abstract data types. These are both techniques for introducing data abstraction, but their approach is different and have different tradeoffs.

https://www.cs.utexas.edu/users/wcook/papers/OOPvsADT/CookOO... is a paper that argues them as complementary to one another. It's worth reading in its entirety, but an excerpt from the conclusion:

A detailed analysis of the trade-offs involved must be made in order to choose whether an ADT or PDA ["object"] is better suited for a problem. Some relevant questions in this choice are: How likely is it that the system will be extended? Must the security of the system be preserved, even at the expense of extensibility? Is it possible the unforeseen interactions may be desired? Is the environment dynamically extensible, and must the additions interact in complex ways with existing code? How much efficiency is required? Is it likely that there will be a large number of binary operations with complex behavior?

In general, ADTs tend towards tight coupling, yielding more predictability, performance, etc. Objects tend towards looser coupling, allowing more flexibility and extensibility. This is a reasonable microcosm of the relationship between FP and OO.

9
thefastlane 1 hour ago 0 replies      
Rich Hickey has mentioned that abstracting i/o devices is an example of where OO can make sense. using OO properly requires a honed intuition about how to build large, stable software systems and see occasions where, in such systems, some component or aspect would truly benefit from a bit of OO sprinkled in. i think one great way to develop such an intuition is pick up a functional language and use it for a significant period of time (a couple years) -- because this let's you see how far you can get just by writing simple functions and passing around simple data structures without any classes.
10
LionessLover 1 hour ago 1 reply      
They are orthogonal. Program in Scala and do both.

http://www.scala-lang.org/

Free course(s):

"Functional Programming Principles in Scala"https://www.coursera.org/learn/progfun1

"Functional Program Design in Scala"https://www.coursera.org/learn/progfun2

(There are two more free courses in the "specialization" - only the certificates and the capstone project cost money - original announcement http://www.scala-lang.org/blog/2016/05/23/scala-moocs-specia...)

11
agumonkey 27 minutes ago 0 replies      
I suggest people to take the pharo mooc on FUN. I have to admit, smalltalk has a very different flavour of OO. It's very tiny, and helps thinking in tiny reusable pieces of logic from objects to objects, not very far from function composition.

https://news.ycombinator.com/item?id=11690331

12
sidcool 1 hour ago 0 replies      
One relation I feel is that OO stresses on behavior and data to be a part of a single entity. Functional paradigm asks to keep them separate, with immutable data structures being passed to pure functions that have the behavior.
13
mindcrash 52 minutes ago 0 replies      
Stuart Halloway has a great talk on this called "Simplicity Ain't Easy" [0] where he more or less states that a FP language like Clojure is basically a better designed OOP language, because FP is basically contains all its strengths (namespaces, abstractions and the like) and none of its weaknesses (e.g. uncontrolled state mutation) and you are able to select and use specific features you need to solve a specific problem, and not being saddled with every feature (including the ones you do not need to solve the problem at hand) at once.

[0] https://www.youtube.com/watch?v=cidchWg74Y4

14
partycoder 38 minutes ago 0 replies      
Well, OO tries to represent entities, and their state, via objects.

FP emphasizes immutability. So in OO + FP, objects are treated as immutable data. Functions create new objects instead of modifying the same object (avoiding side effects).

For convenience you can create functions to access parts of an object instead of creating new objects to achieve the same.

15
zeeshanm 25 minutes ago 1 reply      
OO favors indirection to make code supposedly "maintainable." FP likes completeness in one place so code is more readable.
16
stijlist 48 minutes ago 0 replies      
I wrote about this here: http://somethingdoneright.net/2015/07/30/when-object-orienta...

Comments welcome.

17
cwmma 1 hour ago 0 replies      
eh when you get down to it they tend to be 2 extremes with most programing being somewhat in the middle, there is a great article [0] that discusses the absurdity about talking about object oriented program by comparing it to talking about 'pants oriented clothing' in that it misses the big picture

[0] http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom...

18
moron4hire 51 minutes ago 0 replies      
For my money, OOP and FP are two axes on the same Expression Problem [0]. OOP languages, it's easy to add data on which a fixed set of functions can operate. In FP languages, it's easy to add functions that can operate on a fixed set of data. This is why there will never be a distinct "winner" between the two.

It's also why you have Greenspun's Tenth Rule, and why there is probably a Smalltalk corollary for FP languages. You eventually need to be able to solve both halfs of the expression problem.

https://en.wikipedia.org/wiki/Expression_problem

19
noblethrasher 29 minutes ago 0 replies      
The original idea behind OOP as articulated by Dr. Kay was that since computers (Turing Machines) are powerful enough to simulate/approximate any process, then computers should be the smallest building block of a system (especially one that wants to scale -- recursion is awesome).

In general, objects are supposed to be processes (in the general sense, not necessarily OS processes). Some of those processes might be equivalent to full Turing Machines, but most will be much more limited; it just depends on what kind of formal grammar they recognize, which is key to understanding objects: They are just processes that accept some input and dispose of it as either code (something that is translated and executed) or data (something that is stored and forwarded). Crucially, in either case, objects do work by responding to messages. This is why Dr. Kay says that the actual big idea of OOP is message passing.

Once I learned to appreciate real OOP, I realized that there is actually a natural simpatico between FP and OOP rather than a dichotomy. Consider that if you're doing real OOP, you're going to end up designing lots of little languages and then implementing interpreters/compilers for them. Well, it turns out that it's comically easy to build compilers and interpreters using statically-typed languages like ML (F# in my case).

Now days, I use F#, C# (immutably w/o setters), and SQL to simulate a language that recapitulates what I think is the real power of Smalltalk/OOP: It can rather directly simulate the process of scientific progress itself. I now find myself designing classes that represent falsifiable statements (e.g rather than a class 'SearchEngine', I'd have something like 'LowLatencySearchEngine'). Just as scientific progress is often concomitant with theories and models that have ever more symmetry, so it is the case with the graph of classes that describe my system: I somehow end up with fewer central points of failure. For instance, in the case of 'SearchEngine' vs 'LowLatencySearch' engine, the latter made it apparent that my class should be initialized with a set of search providers, and that it should keep latency statistics (thus being able to falsify the proposition). The end result is that the proposition represented by the class naturally contraindicates that I should rely on one search engine.

There's a lot more to say about this, but the last thing I'll mention is that FP languages like ML teach you that there is a difference between a class and a (static) type. The big idea is types correspond to logical propositions (the so-called Curry-Howard Isomorphism), but I naturally ended up there just by trying to more effectively simulate the process of science, which brings us full circle to Alan Kay's big idea: computers can simulate any process, they can even simulate better computers. I would argue the scientific process is the best computer of all.

20
sdegutis 17 minutes ago 0 replies      
The biggest difference I've seen in my career:

- OOP code is usually separated and organized by the principal data it operates on, i.e. the instance of a class, and more specifically the instance's fields.

- FP code is usually separated and organized by the more abstract or philosophical responsibility of the functions, and they may not always share the same arguments.

3
Ask HN: Am I under attack?
2 points by passive  29 minutes ago   2 comments top 2
1
ramtatatam 21 minutes ago 0 replies      
If you clicked on any hyperlink from that email then you can consider yourself to be phished. You do not know what they wanted - was it your google account? Or something else? You don't know, the only way to keep yourself safe is to change all of your passwords.
2
serg_chernata 24 minutes ago 0 replies      
Maybe these are phishing emails? Just change your password and maybe enable two factor authentication just to be safe.
4
Ask HN: Generate random traffic for metadata obfuscation?
42 points by fratlas  9 hours ago   16 comments top 8
1
brodo 6 hours ago 3 replies      
Scripts like these can be easily circumvented as browsing habits are not random. Using machine learning or statistical methods, you can filter out the randomness. People can be identified by the unique set of websites they use pretty reliably. (see https://svs.informatik.uni-hamburg.de/publications/2013/2013...) The only way to anonymize yourself using fake traffic is not to generate random traffic but to specifically engineer requests which bring you closer to the global average. How to do this is still an open research question.
2
jstayton 8 hours ago 1 reply      
TrackMeNot (http://cs.nyu.edu/trackmenot/) uses this technique to protect against web search tracking.

In general, privacy by obfuscation is an idea that privacy researchers have been considering. Other than TrackMeNot, however, I haven't seen many real-world applications.

3
Canada 3 hours ago 0 replies      
Here's a couple of papers describing metadata resistant anonymity systems that may help you understand how "chaff" traffic can help obfuscate real traffic. It's not as simple as generating random noise because real traffic patterns can be identified with confirmation or intersection attacks.

Aqua:http://conferences.sigcomm.org/sigcomm/2013/papers/sigcomm/p...

Dissent:http://bford.info/pub/net/panopticon-cacm.pdf

Of particular interest to your question are the threat models.

4
feral 8 hours ago 0 replies      
I've given this a good bit of thought; I'm sure its easy to generate plausible deniability, but actually masking relationships is not as simple as it sounds, as an adversary will easily filter out random noise.

You would need chaff deliberately constructed to look a bit like non-random social network/communication data; that's kind of a research project, and its going to be hard to guarantee it is working in the face of unknown statistical attack.

5
bespoke_engnr 5 hours ago 0 replies      
I don't know what's happening with this now, but I remember the Pond ( https://www.imperialviolet.org/2013/11/10/pond.html ) project working on something like this. I believe they were trying to do this with encrypted data as opposed to plaintext, but their work might still be interesting. IIRC a big part of it was batching transmissions and introducing a delay, sending 'dummy' data when there was no 'real' data, at regular intervals (to prevent timing/traffic correlation attacks).

It kind of reminded me of the old Asynchronous Transfer Mode protocol, with its cells.

6
evils 5 hours ago 0 replies      
Set up a Tor Exit node.
7
Natanael_L 7 hours ago 0 replies      
Tor, I2P
8
JoeAltmaier 6 hours ago 0 replies      
5
Ask HN: Do you use FreeBSD as web server? Why or why not?
56 points by kiloreux  15 hours ago   57 comments top 29
1
chao- 14 hours ago 2 replies      
No.

I have a high tolerance for trawling through documentation and reading the code of open source libraries in pursuit application logic and the fiddly bits of related services. I have low tolerance for the same work in pursuit of infrastructure configuration and systems administration.

I run various flavors of Debian and Ubuntu across a desktop, 2 laptops and a home server (various audio/video projects). Thus I tend to default to the familiarity of these systems, and get back to the part of the stack I enjoy working in. Another word for this might be "laziness", but that doesn't quite tell the full story.

2
toddnni 14 hours ago 0 replies      
Yes, because it is a great platform to learn system administration. First, it's so simple that eg. it takes only few lines to automate installation or create a customised internal repository. Second, the documentation.

edit. And oh yes, the memory usage of the default installation is so low, that you can virtualize dozens of them on your laptop. This helps when you want to locally reproduce the stack you run in cloud.

3
kev009 12 hours ago 0 replies      
Yes, I use it for my personal web servers. I completely rid myself of Linux when Debian switched to systemd. I run nginx for static and proxy services. I wrote some Scala/Play apps that I run in jails on OpenJDK8. I run some open source PHP, Python, Ruby and C and perl CGI scripts for various admin things and "cloud" things but all on my own hardware. I use iocage to manage the jails. I replicate the jails between two physical servers asynchronously, and also send them to my house for an off site. I run PostgreSQL on the two servers in a failover setup with WAL shipping. It takes about 30 minutes a month to keep security patched. I use saltstack to manage as much as possible. It took about 2-3 weeks to set everything up using just evenings and weekends, it's a lot more hacky than stuff I do for dayjob because I'm the only one that needs to understand the setup so I can elide some robustness I'd use in a team environment (i.e. no test suite, no branches, no CMDB just simple text files assigning roles, no multi-platform or abstractions everything is decisivly coded for my tech stack of choice like FreeBSD, Postfix, Dovecot, PostgreSQL)

I also use it at work. The scale is much different as one of the largest CDNs, the network interface stats are eye popping. This is proprietary caching software and nginx and apache for certain types of origins or admin services.

4
dang 14 hours ago 2 replies      
HN does, because pg and rtm liked it from way back, we inherited it, and it works well.
5
mrsirduke 13 hours ago 0 replies      
I started out using fbsd back when 4.4 was a thing, and the performance was much better than anything GNU/Linux could do, for running Apache.

Back then fbsd had something called accept filters, which basically made the accept call only return when a http request was received in the network buffers.

Systems running fbsd loaded up different than Linux, kept being responsive. On same hardware, could do 3-5x more rps with lower load iirc.

As my applications at the time became more cpu bound, I switched to Debian around 4.11.

I've recently been using 10.x, coming back to fbsd from 10 years of Debian. I love what you've done while I was gone. Especially binary packages and easy upgrades, but especially jails and zfs.

6
dallbee 4 hours ago 0 replies      
Absolutely. It's the only OS where I can be certain that I know where everything is and how everything works. It has few deviations from the Unix architecture and the ports repository enforces adherence to the filesystem layout.

I don't buy into the "increased performance" though. Every well done benchmark I've seen is at least several yaers out of date, and my personal benchmarks usually put linux ahead on any sort of operations that include networking. Not to say FreeBSD doesn't perform well, it does.

Simplicity is key.

7
rbc 2 hours ago 0 replies      
I use FreeBSD for hosting personal web sites. I've used it on and off since version 1.1.5.1. I like BSD in general and have hosted small web sites using NetBSD and OpenBSD. I came back to FreeBSD, mostly because of the broader ports support and binary updates. The packages do most of the work for setting things up. With NetBSD and OpenBSD, there is more integration work to do at setup time. I'll add the caveat that this is for small all-in-one web sites.
8
officialchicken 14 hours ago 1 reply      
Yes because it has lower response latency and performs about 12-15% better than Ubuntu on top of much lower CPU and RAM usage on AWS for hosting the same nodejs apps.
9
synthmeat 12 hours ago 0 replies      
Yes, on a small fleet of node.js (and some other services) VPS' on DigitalOcean in production, after a year or so playing with it for personal playthings.

Default system uses less memory than Ubuntu (~50MB last time I checked which means something on .5, 1GB RAM instances). I could swear memory consumption in general has fallen down, but haven't done any measurements.

I don't have to jump all over the web to figure out how something works - I just go to handbook. Which means one gets tendency to study topics instead of copy-paste snippets from around.

Since base system (maybe things were different before) does not abruptly change or pull the rug under your feet, combined with handbook studies, this has the effect of compounding knowledge that'll be effective in years to come.

Firewall (pf) is a thing of beauty. I've barely scratched the surface of it.

Base/userland abstraction split, as well as consistency throughout the system helps one maintain a solid mental map of the system. After a short while, you just know where stuff is, how to configure it, and where its defaults are even when you're in completely new territories.

Bonus: You can really go the distance without compiling anything, but if you're keen on maintaining a low memory profile by dropping various features from your packages, this is a great new build system I use to have all my pkgs up to date - https://github.com/jrmarino/synth

10
retrogradeorbit 13 hours ago 0 replies      
Yes. Because it is simpler. Less moving parts. This means more predictable interaction between components. No systemd. Slightly more efficient and faster. Quicker startup. And ZFS is useful for snapshots.
11
davidcollantes 2 hours ago 0 replies      
I use FreeBSD as my VPS OS. I use nginx as my web server. FreeBSD because I am used to it (used BSDi a long time ago, and stuck to BSD ever since), and is an excellent OS. Nginx because it is rock solid.
12
geff82 13 hours ago 0 replies      
Yes, because Jails and ZFS are cool. FreeBSD has superb documentation and a giant software repository.
13
imron 12 hours ago 0 replies      
I use it. I use a pretty standard stack - nginx, postgres, php and a few other things so I don't have the issues some of the other posters have mentioned here about needing to hunt down source and patches and everything is installed via the standard package manager pkg.

One thing I really like about it besides the things others have mentioned is that by default it sends emails every day/week/month regarding security and system usage statistics, so it tells me when a security vulnerability has been found for a package I have installed and that I should upgrade it.

I've found this makes me much more likely to keep things up to date.

14
cperciva 15 hours ago 0 replies      
Yes. Because it just works.
15
toast0 13 hours ago 0 replies      
Yes, all the other servers where I work are FreeBSD, why would we run something else for www?

It works fine, but Linux is probably ok too. There's some things you need to tune if you're high traffic -- most of them are sysctls you can tune at run time, but there's a couple boot time values; basically if you have enough ram to do webserving at 10gbps, some of the auto tuning for network buffers are going to be oversized, you'll likely actually allocate that much during peak, and FreeBSD won't return free'd network buffers to the overall pool; so you can't just drop the per socket sysctls, you need to reboot with lower network buffer caps (and per socket buffers, probably too). Depends on what kind of traffic you're serving though, and I'm guessing a lot of people won't hit 10Gbps out anyway. There's some other minor tweaking of that nature required too; and I would suggest running 10.3-RELEASE, if possible, there's some useful bug fixes in there.

16
stock_toaster 15 hours ago 0 replies      
Yes, because I rather enjoy using FreeBSD.
17
lrfrancis 14 hours ago 0 replies      
Using for 16 years because I want little hassle from my machines. FreeBSD tends not to blow up everything for new features, yes major technologies have been introduced but rearly at the detriment to others.
18
i_feel_great 13 hours ago 3 replies      
What reliable and reasonably inexpensive hosting services allow you to use FreeBSD?
19
mankash666 15 hours ago 1 reply      
Yes, because of it's superior networking stack
20
BillyParadise 13 hours ago 0 replies      
Did for years, prior to that I started on BSDi. Flirted with Linux a few times, but ran into dependency hell. Came back a few years later, the package manager finally worked, so I moved most things to Centos.
21
zxv 15 hours ago 0 replies      
Yes, because it performs well.
22
wanda 13 hours ago 0 replies      
Yes, because upgrades can be done without fear and because of ports in general. To say nothing of better TTFB I've observed in my personal experience.
23
ifiht 14 hours ago 0 replies      
Yes, because pf is how a firewall should work.
24
Scarbutt 14 hours ago 1 reply      
No, because the JVM is more supported, tested, used, and developed for linux.
25
duncan_bayne 14 hours ago 1 reply      
No[t yet].

Migrating to FreeBSD for both dev and server work is on my personal roadmap for around June / July this year, once 11.0 is released and my laptop chipset is supported.

26
cgag 13 hours ago 0 replies      
I'm doing a coreos + containers thing at the moment.
27
mozumder 12 hours ago 0 replies      
Yes, because I wanted to reduce response latencies, and wanted something efficient to serve more people with minimal hardware. (I might go unikernel later, once I build a custom HTTP server.)

Linux also seemed to have changed quite a bit since the last time I used it in the 90's/early 2000s. With systemd, it doesn't seem like Unix anymore.

I also looked up recent Linux distributions to use, and was largely overwhelmed at the choices. I looked up FreeBSD, and it was just one distribution.

28
urbanxs 13 hours ago 0 replies      
No, because it is not popular and i want to be popular and use linux.
29
techdragon 14 hours ago 0 replies      
Yes and I've upvoted all the posts with opinions I agree with as well.
6
Ask HN: How many of you gave up working as a professional coder?
86 points by sillysaurus3  1 day ago   32 comments top 11
1
cableshaft 4 hours ago 1 reply      
I haven't left it yet, but I'm starting to plant the seeds now that I'm hoping will eventually lead to full-time board game designer in 5-10 years. I've got several prototypes, one being evaluated by a publisher currently, and I've been going to conventions and networking with other people in the industry. If one of my designs ends up being a hit, I should have enough money to make the transition.

I still enjoy programming, but there's a lot of "Keeping up with the Tech Jones's" with constant new flash in the pan API's or frameworks and not a ton of just "get shit done", and BA's/managers with minimal technical experience making decisions on what you have to do is the rule, not the exception, and it seems a little pointless after awhile.

Like I could be replaced by someone else and the work would still get done, so what value am I really adding to this? At least in video games I had creative input on the look, feel, and design of the game. In corporate dev I've had almost zero input, except sometimes in how the data is structured (which doesn't excite me anywhere near as much).

2
siberianbear 15 hours ago 3 replies      
I retired from my job managing a group of software engineers in Silicon Valley a few years ago. I'd been quite frugal, mostly driving old beaters I bought outright. I owned a condo outright. I ate the free and discounted food at work. I was making $300K+ a year in base salary and equity compensation, and my expenses were only about $20K a year. (My biggest bill was my monthly homeowners association fee of about $400.) So, I was able to save a metric ton of money and invested it all in the stock market.

As a child, I loved computers. I taught myself 6502 and x86 assembly languages, as well as some other languages. When I got to the university and actually understood how digital circuits worked, I was so fascinated. When I finally landed in Silicon Valley, I felt like I was in a dream. I was good at what I did and I met awesome people who were good at what they did. Actually, the greatest pleasure was meeting and working with people who were much smarter than I was.

Eventually, the thrill wore off. Id seen so many bugs and new projects that they started all feel the same, kind of like my personal version of the film Goundhog Day. I didnt love it anymore. And then later, I didnt even like it anymore.

At one point, I calculated my net worth at a few million dollars and realized that I could just quit my job and live off the investment interest. So I just did it. Ive been retired for four years now.

I travel a lot, which was something I couldnt do much when I had a job that only gave me three weeks of vacation. I can also travel in a different way: taking the time in a new place to see un-touristy things, meet locals and study the language a bit. I read a lot of books, none of which are about computers. I havent been back to the United States in over a year.

Thanks to my frugal habits and the runup in the stock market, my net worth is higher. My burn rate is under 2%, which means that I can do this indefinitely. I dont miss Silicon Valley and will never live there again. In fact, I probably wont ever live in the United States again. And I dont miss my cubicle one bit.

What I did is unusual. But the thing I dont understand is why it is unusual: most of the professionals I worked with could have made the same choices and had the same result. I guess they found more enjoyment in the cycle of work and consumption than I did. And like most people who lived in the Valley, I knew and had friendships with people who were far richer than I was: whose net worth was $10M or $30M or more, who could retire today and have a very comfortable life anywhere in the world. But they continued to work. I can only guess that they found more enjoyment in work than I did.

3
id122015 40 minutes ago 0 replies      
The more I read the more I realise its not worth it to be employed as a programmer. I havent even started employment.Sometimes I read that programmers are not even allowed to do what they want, so I start to be content that even though I do little Im free to do what I want.
4
kd5bjo 20 hours ago 3 replies      
Earlier this year, I left my job at Facebook to play tennis all the time. When I'm not doing that, I'm either playing video games or pretending to make furniture.

Only time will tell whether this is a sabbatical or a career change.

5
King-Aaron 16 hours ago 1 reply      
My current post may well be my last; I'm sick and tired of continuously working for SME's with no direction, business plan or competent management. If I lived somewhere that there was more opportunities I may feel differently.
6
glenr 20 hours ago 0 replies      
I did. Started in '99; started an agency in '04 where I was the lead coder with 2 partners; by 2010 I was dabbling at best. Another six years on, I don't code at all and do sales/management. I'm not sure I'd do it the same should I have my time again, I miss it.
7
jonsterling 18 hours ago 0 replies      
My last day is in just over two weeks! Starting my PhD in type theory at CMU.
8
adamkchew 17 hours ago 1 reply      
After getting the 6 figures programming job, I realized that I was already decent so I quit and started a startup. Now I'm just reading books, riding bikes, and networking.
9
lukeh 13 hours ago 0 replies      
I did it, more or less. I had a software company, now I am a full time musician.
10
nickthemagicman 21 hours ago 0 replies      
Good question. Im wondering this as well.
11
SFJulie 8 hours ago 1 reply      
Well, I can do bread that is edible,alcohol that make your drunk without poisoning youmusic that people can sing repair bikes fairly well

But ... I get rejected for every job I ask : I don't have diplomas. The bread I see on average are at best and as good as mine, my alcohol is cheaper than market and tasting better, my reparations are clean... but I don't have diplomas and the conforming education...

So I am looking back at coding, and I still hope I will find whatever is not a modern job intoxicated with all the current hype in IT or financial or web agency or startup spirit.

Wish me luck, it is tough but I am still going and as long as I can I will try.

7
Ask HN: Why no preview and no ninja edit on HN?
2 points by dorfsmay  5 hours ago   1 comment top
1
detaro 4 hours ago 0 replies      
In what way does HN show that you edited a post?!

Also, there is the delay option in your profile, which does sort-of work to give you a preview (although it is a bit of a clunky way) https://news.ycombinator.com/newsfaq.html

8
Ask HN: Does anyone here use OS X as a webserver?
30 points by rohanprabhu  23 hours ago   29 comments top 20
1
pyrophane 22 hours ago 1 reply      
I doubt you will fine anyone who does this today for reasons other than a needing to support legacy software that only runs on OS X for some reason.

All modern web application stacks run as well on Linux as they would on OS X, if not better, so there is no advantage to running OS X and lots of downsides.

You need to run OS X on Apple hardware, and they haven't made a blade server for several years, so you'd be stuck with either the mini or the Mac Pro, either of which is going to be expensive for the computing resources you get. You also can't fit them neatly into an enclosure.

Also, if you ever wanted to move your infrastructure to the cloud you'd need to move to Linux anyway.

I can think of no valid reason to use OS X server to host any kind of web app.

2
detaro 22 hours ago 1 reply      
There is an image CDN (EDIT: imgix, as tristanj linked below) which runs OS X for their image processing servers and I've seen pictures of rack holders for Mac Minis for build servers, but in general OS X isn't a very interesting choice.

Running it on non-Apple hardware is legally questionable at best (the EULA forbids it, if this part of the EULA is applicable in your country is a question for a lawyer), Apple doesn't do server hardware anymore, it costs money and you don't get support or special software from Apple for server-usage for it, and since nearly nobody runs it as a server OS it probably isn't very high on the priority list to support that usage for other software vendors or open-source project.

A lot of things probably will work well since they are made to run for developer usage, but if you do not absolutely need integration with something apple-specific or just want to reuse an old mac lying around for a hobby project it doesn't give you anything over other OSes as a normal web server.

3
tristanj 22 hours ago 0 replies      
Not me personally, but Imgix uses Mac Pros in their datacenter for graphics related work.

http://photos.imgix.com/racking-mac-pros

And not directly what you asked, but a thread that comes to mind is this one, where an unnamed company (presumably Mathworks) built a rack of Macbook Pros for testing purposes.

https://news.ycombinator.com/item?id=9967357

4
xchaotic 22 hours ago 0 replies      
Serving HTTP requests has been commoditised, there is a hundred cheaper, better, ways to serve a webpage.The only sensible case is non-mission critical SOHO scenario where you happen to have a mac mini or iMac idling around and gathering dust otherwise.
5
scosman 22 hours ago 0 replies      
A few of the continuous integration companies that support iOS/Mac development run fleets of Macs. If you need info, talk to the folks at bitrise.io or CircleCI
6
silverlight 22 hours ago 0 replies      
I would think the main barrier to doing this is the tie-in between the hardware and software. Mac hardware doesn't even really have a "large server" piece. And certainly if they did it wouldn't be very cheap compared to a Linux box. Since basically any software you would run on OSX to run a server you would presumably be able to run on Linux as well (e.g. nginx, etc.), I don't know what the advantage would be.
7
dsl 21 hours ago 0 replies      
I ran part of a website on OS X. We needed to generate screen captures of URLs back before lots of tools existed to solve that problem, so we had a Mac Mini generating captures and thumbnails. For a very long time they were all generated, stored locally, and served by Apache. Recently (after I stopped working on the project) serving was migrated to S3, I believe just due to disk space issues.
8
spottedquoll 22 hours ago 0 replies      
https://macminicolo.net/

An entire colocation facility that runs Mac minis. It looks fun.

9
spriggan3 19 hours ago 1 reply      
The only reason why I would personally do that is to run some continuous integration for OSX software. Otherwise I can't think of any reason why one would run a OSX server,which implies owning a Macintosh. Some legacy frameworks like web objects might run better on OSX. At a previous job, we used a server on a mac mini that ran a proprietary software which did 3GP video encoding with DRM. We had to buy a mac mini for that single purpose (+ the cost of the software license).
10
taknil 6 hours ago 0 replies      
I did serve a company internal tool written in PHP/mysql from a white macbook. It was served to all our retail locations (under 100 DAUs).It was a "but it works on my machine" - "back up your email, your machine is going into production" situation. It ended up taking almost two years to migrate the application away because it just worked. Picture of said server macbook https://flic.kr/p/DY4k1U
11
wittedhaddock 22 hours ago 0 replies      
We do, but not at the millions of users level. We use it to run a swift proxy server.

We have no interest in scaling on OSX and plan to port to linux. It's an interim type of thing.

12
gatesphere 6 hours ago 0 replies      
IIRC, a few years back http://iolanguage.org/ was hosted on an aging Macbook. I'm not sure if that's still the case.
13
throwaway2016a 7 hours ago 0 replies      
I have some OS X machines on the LAN for things like dashboards but I wouldn't dream of using one on production web servers.

I really like OS X, I've been using it on my personal and work computers for 9 years. But for server sit is Linux all the way.

14
zaphoyd 22 hours ago 0 replies      
Ten years ago when Xserves were a thing we ran web servers on OS X, but primarily because we needed OS X for some other server software and it was cheaper to also run a web server on those boxes than stand up a Linux box.

We've since abandoned this practice as there is no Apple hardware suitable for it. We still run some Mac mini servers for things that do not run on any other OS, but definitely not web sites/apps.

15
kcrwfrd 21 hours ago 0 replies      
If you use it, don't install their Server.app unless you specifically need something it does. It takes over port 443 and others forcing you to do things in their way behind their global proxy.
16
NathanKP 16 hours ago 0 replies      
The only webservice I've run on OSX was a Jenkins webserver to provide an HTTP dashboard for an automated ios app build system running on the same machine. And it was not a pleasant experience at all. I do not recommend using OSX as a webserver unless you absolutely have to (for example to run Xcode builds).
17
sam_goody 22 hours ago 1 reply      
Edit: Offtopic but interesting.

I definitely don't have millions of users, but there are hosting companies that do mac only. You can ask them if they have large clients.

(My needs are a node.js based site on virtualmacosx.

I had written something locally on Mac, and it depended on things that OSX did different than Linux, and decided I didn't have the time or inclination to fix it, so went with VMOSX.)

18
brbsix 14 hours ago 0 replies      
I've used Filemaker Server to host it's web interface. I probably wouldn't use it again, but I didn't know of any simple self-hosted alternatives at the time.
19
King-Aaron 14 hours ago 0 replies      
I've spun up OSX Server instances to run 4D databases in the past, nothing in production with the sort of users you're looking at however.
20
baconhigh 22 hours ago 0 replies      
used to have a few Xserves when they were a thing, never a million users though.
9
Do computer security guys use smartphones?
10 points by tokhi  10 hours ago   8 comments top 4
1
davismwfl 6 hours ago 1 reply      
I am not a security guy, but I keep a tablet that is void of all personal information, uses no Google, Amazon services, has no email accounts on it, has no banking or financial applications, no pictures, no social media etc. It doesn't even have my name anywhere on it. The only thing that ties me to it is likely the wifi data that it stores. I also routinely will wipe it and start over.

Why do I do this? Well, it lets me have an anonymous web experience overall. I started it when I needed a way to test work I was doing but making sure that it was a "clean" experience. e.g. I didn't have something loaded or cached that would mess up my testing or the results. Then over time I figured out it is nice too because if someone needs to borrow a tablet for something real quick or needs to look something up I will hand it to them and I have no worries over anything they might see/do.

If I was doing security work, I don't think it would stop me from having a smart phone, but it would depend what type of security work. If being anonymous and hidden was the goal, I sure wouldn't have a smart phone, or any permanent phone for that matter.

2
sidcool 1 hour ago 0 replies      
I knew a few who used Cyongen mod devices.
3
dpeck 3 hours ago 0 replies      
in my experience security guys and privacy guys are very different people. Theres a lot of overlap in interest and skillset at lower levels but it usually diverges hard with experience.
4
herbst 8 hours ago 1 reply      
I am not a security guy but i use my smartphone as "walled environment" i do nothing on it that could potentially lead to issues except maybe some google services. But anything Banking or Bitcoin has never seen my phone at all.
10
Ask HN: Do you use widgets on Android?
6 points by imakesoft  11 hours ago   9 comments top 9
1
achow 2 hours ago 0 replies      
I cannot survive without the calendar widget.

My need is to have a glanceable schedule for the day - what is coming up, when and where; or how packed the day is or not. Calendar notifications don't work for me as I need information at the back of my mind. Having a widget displaying information without me seeking it out, helps my back of mind scheduler.

Now thinking about it, Widgets (atleast for my case) acts like an ambient device.

https://en.wikipedia.org/wiki/Ambient_device

2
zhte415 7 hours ago 0 replies      
Air Quality Index (almost everyone I know uses this, but I'm in a more polluted part of the world).

Some internal company ones giving quick KPI/dashboarding. I think this market is under-served by corporate apps in general. If a process is critical to an organisation no matter it's size, a widget can be a great tool for monitoring it.

When a real-time statistic is sufficiently important I prefer a widget to needing to load (or even develop) a dedicated app. I can then go through unified web-based (responsive) interface to take any action needed.

3
lovelearning 8 hours ago 0 replies      
Just two - digital clock, for the day and date; and power control, because it lets me toggle wifi and GPS with a single press unlike the settings drawer that opens settings dialog and requires more clicks. Moto on Android KitKat.
4
reitanqild 9 hours ago 0 replies      
I so want to use them but I haven't found any good reason yet.

What I have used instead (but not much ) is the OneNote badge. It works kind of like Facebook "conversation bubbles", giving me a shortcut to OneNote from any app.

5
tonylemesmer 11 hours ago 0 replies      
Nope.

I perceive them to use up battery and memory and I don't want the unnecessary distraction. Whether they actually do use battery or not is another question.

I used to use a wifi/BT/GPS toggle widget but all that is now in the notification drawer there's no need.

6
thecupisblue 9 hours ago 0 replies      
Nope.Had a battery stat widget which I removed, now I have this calendar and all-in-one widgets which I basically never open, they just stand there for looks. Don't know many folks that use them.
7
seren 11 hours ago 0 replies      
I use one for weather, another one for calendar. But given than Google Now prompts your for both weather information and next meetings, I should probably get rid of them.

There are not a lot of information you need to have always up to date.

8
odesian 3 hours ago 0 replies      
I like the idea of them but from my experience widgets have been lacking. Whether that be from not updating correctly/timely to just not working at all.
9
imakesoft 8 hours ago 0 replies      
Is it important that the widget looks nice?
11
Ask HN: How much do developers make in Toronto?
48 points by torontodevs  6 hours ago   44 comments top 25
1
jbob2000 3 hours ago 0 replies      
I'm a Senior Javascript Developer in downtown Toronto making 75k.

Blatant promotion: My company is hiring more people for the same position. We're a very small company and we build apps for hospitals and healthcare providers around the world. Email us at careers@qochealth.com for more info :)

2
azilnik 3 hours ago 0 replies      
Sadly, the compensation for people in technology in Toronto (which includes devs, designers, pms, etc) is less lucrative than most major metropolitan cities in the US. I wish this wasn't the case, but in my experience, I'm making more than double in New York than what I would be making in Toronto as a designer. Would love to come back to Toronto if it made financial sense.
3
fouc 3 hours ago 1 reply      
For web developers with serious skills in Ruby on Rails and/or Javascript, (either full stack or backend):

These seem to be the typical salaries for what I've noticed from web-based companies in Toronto. And I think it's on the low side. Developers should be paid more.

* Intermediate level (2-4 years): $70-85K

* Senior level (5+ years): $90-120K

A web developer ultimately needs a solid handle on SQL, Javascript (React/Angular/Ember), and a server-side language/framework like Ruby on Rails/Node.JS/etc. And be comfortable with Linux/GNU tools. The better your skills, the higher the salary you can command.

4
torontodevs 6 hours ago 1 reply      
I'm a junior web developer with about 1 year experience writing React & ES6.

I started at $40000. After 1 year, I'm now at $53000.

I both live and work in Toronto.

5
whalesalad 3 hours ago 0 replies      
For what it's worth, I was offered a senior-level engineering position at a fairly small company in Toronto which had recently been purchased by a public one for ~120k (CAD) annually. This translates to roughly 91k USD. Unfortunately due to some past legal issues entering Canada is not in the cards for me, so I had to decline the offer.

The stack would have been a PHP monolith moving towards small/polyglot microservices with an Angular front-end component.

6
paulbennett 2 hours ago 0 replies      
This is interesting for me because I am moving to Toronto in July, I've done research into how much I should be expecting to earn but some anecdotal evidence is always welcome too.

The numbers compared to my current employment in Cambridge, UK seem fairly similar, I believe living costs are pretty similar too. Not all of us have the ability, or the desire to move to the US!

7
laranerd 4 hours ago 2 replies      
Burlington - 40 minutes from torontoJr Web dev - Started at 40k. After 1 year, now I get 43k. I have 1.5 year experience.
8
throwaway8088 2 hours ago 1 reply      
Senior backend dev, many years of experience. I made $130k CAD/yr from 2011 to 2013 at three different local companies. I've been working remotely for a US company since 2014 and making $130k USD/yr, which translate to about $170k CAD. Wife also makes a little over $165k CAD/yr. All full-time positions, no contracts.
9
dthakur 3 hours ago 1 reply      
It was a bad situation when I worked there a few years ago. Looking at the answers, things haven't changed.

I encourage you to take employment in US, if that's a possibility for you.

10
lhorie 3 hours ago 1 reply      
It varies a lot. Most people whose salary I know earn between 70k and 120k. Entry-level frontend devs go for around 50k-70k. Tech director level goes for around 120k-140k.

When I worked for a Toronto firm (1.5 yrs ago), I made 96k doing Angular. Now, I do remote consulting and it's very difficult to find anyone in Toronto willing to match what I currently make. Highest I've seen from a recruiter is 150-160k for a CTO role.

11
throwaway0331 2 hours ago 0 replies      
Senior database dev in Toronto, working for a large utility. 112k salary. Contractors here earn between $50 - $90/hr.

I haven't examined alternatives too closely, but I get the sense that I'm approaching the top end of the salaried pay scale around here (GTA).

12
browseatwork 2 hours ago 0 replies      
Worth looking into the the cost of living in the Toronto (or any) area. What you make matters much more in context of what you spending power will be.
13
throwaway5906 3 hours ago 0 replies      
Making just over 50K as a Java Application developer right out of school.
14
throwaway200 2 hours ago 0 replies      
Early startup employee. Officially a "VP", more of a principal programmer. iOS, Android, web, server, whatever I-solve-problems dev.

$150k base, up to 15% bonus.

15
AnonNo15 3 hours ago 0 replies      
I am a web developer (JS and Python), making 72k

Not too far from downtown Toronto

16
instakill 2 hours ago 0 replies      
Just under $30,000 PA when converted to USD from local currency - full stack developer.
17
fatbabyin 2 hours ago 0 replies      
How much would data engineers make (scala, spark, kafka) ?
18
throwaway8087 3 hours ago 1 reply      
$80/hour as a highly experienced web application developer on a medium-term contract.
19
aiotaa 2 hours ago 0 replies      
Senior developer in Ottawa, not Toronto.Currently working mainly in Pascal and C++.Salary is $90K - $110K, unionized environment
20
throwaway8086 4 hours ago 2 replies      
105,000k (before taxes) + bonus at a bank.

Works out to taking home 5200 CAD per month.

21
cheez 2 hours ago 0 replies      
Toronto is a fantastic city. I say this having lived in both New York and Chicago. The best part about Toronto is every kind of person can and does live here. It's a little bit different than ethnic diversity as there is also an economic diversity. Nowhere is it more evident than the ridiculous number of community programs available.

The other side of that coin? The pay as a developer is FUCKING SHIT.

Best strategy is to get paid in USD and live in Toronto.

22
nibs 6 hours ago 0 replies      
Junior: $25-30/hour

Senior: $40-60/hour

24
RodericDay 3 hours ago 0 replies      
Not directly relevant to Toronto, but may help evaluate comparing costs of living &c: I'm making 65k in Montreal in my first software job, working with Django + misc.
25
hardwaresofton 3 hours ago 0 replies      
I'd encourage you to look at glassdoor (https://www.glassdoor.com). One of the best sites for finding out what people are getting paid and whether your pay is truly competitive.
12
Ask HN: Why database as a service didn't succeed?
9 points by twa927  22 hours ago   10 comments top 7
1
ronreiter 21 hours ago 1 reply      
Amazon's DynamoDB is widely adopted. Google's datastore is widely adopted. And Google just added a generic interface to BigTable. And there's also Google's Firebase.

Database as a service works just like any other managed service today.

2
jbergens 20 hours ago 0 replies      
Depends on what you mean. There are databases that are mostly handled by the hosting firm. MS Azure can be used in failover mode and you can scale up to more powerfull "servers" without taking the application down. Sql databases are normally hard to scale-out over many servers and often require some rewriting of the application to do scale-out.

IBM Cloudant can scale-out to many servers that are all handled by IBM. I'm sure a lot of other cloud based documentdatabases can do this too.

Regarding why it hasn't become really popular yet organizations are generally very slow to change their data storage solutions. Changing to nosql from a relational database also requires a large rewrite of the system and it is not only upsides of going in this direction (some says that it is almost only downsides). It is for exmaple usually harder to get acid guarantees from a distributed db and it may be harder to create (secondary) indices.

3
smt88 21 hours ago 0 replies      
I like RDS because I get control over the app-specific things (structure, indexes, etc.) and don't worry as much about general DB issues (backups, slaves, I/O performance, etc.)

That's really only possible if the DBaaS is a "thin wrapper" as you describe.

But, other than that, I think ronreiter is right -- there are DBaaS that have big user bases.

4
SHOwnsYou 4 hours ago 0 replies      
Latency. If you're already hosting on AWS or GCE, using their databases is commonplace.

But if you host your frontend, it doesn't make sense to talk to a database in a different datacenter when you could instead put it in the same rack.

5
cjlarose 21 hours ago 0 replies      
FWIW, if you configure AWS RDS for Multi-AZ support, you essentially get a black box "cloud database" with synchronous replication and automatic failover. You're right, though, in that you're still essentially being allocated a fixed-sized single-node deployment of your favorite RDBMS.

I think the "obvious solution" is just not super easy to implement. If you want ACID compliance as with traditional RDBMSs but in a auto-scaling, distributed setting, it's not going to happen. Early RDMSs were built with a single node in mind, and any database-as-a-service will have to make some compromises. DynamoDB gives you the flexibility of not having to worry about scaling, and even offer strongly consistent reads, but without support for transactions, for example.

6
kasey_junk 6 hours ago 0 replies      
"Database" is not specific enough. You have to get to very specialized consistency requirements before you can start talking about what you mean by a database.

Once you do that, things like instances/nodes/hosts become important because you cannot abstract certain consistency requirements away from them.

7
nostrademons 20 hours ago 0 replies      
Most of the MBaaS market is basically database-as-a-service.
13
Ask HN: What do you think about the current education system?
34 points by alejandrohacks  1 day ago   29 comments top 17
1
sova 55 minutes ago 0 replies      
Education! First and foremost, teachers must be paid very well, they are the stewards of knowledge...

Secondly, globalization without universal cultural appreciation has done a lot of damage to what we could consider our collective human heritage. A great dream would be to have schools that rotate around the continents, so that students/scholars/people would be exposed to the best of what other parts of the globe have to offer. It would forward-leap humanity a lot if there were simply better crosstalk between tribes.

Thirdly, the emphasis of education should not be to create/fuck/produce/consume but to actually emphasize co-reliance of beings, species, environment, nature. We cannot exist without our planet, and although we can drive fast places, most people do not realize at what a cost this simple luxury comes. Sure we can advance and make up for some damage, but not making damage in the first place is generally the best idea.

I suppose my main beef is that education is not looked upon as a topic worthy of evolution, when it is in fact the head of the inch-worm of humanity-at-large.

2
andrei_says_ 1 day ago 2 replies      
Trying to make kids memorize a bunch of stuff that's unimportant to them is incredibly inefficient and the information fades fast.

Having them do this at the expense of play (accelerated self-guided learning through social simulation, art and sports), at the expense of physical activity and in an insanely toxic social environment, is plain crazy.

Apprenticeship, where one learns what they need to learn when they need to apply it, and then uses the newly learned skills to achieve own goals beats that hand down. Look up Tobi from shopify and his posts about his learning to write software in Germany's apprenticeship programs.

Convincing kids that they are smart or stupid based on their teacher's opinion on the kids' obedience and ability to regurgitate uninteresting (to them) data is harmful at best. Convincing them that what they are experiencing in school is learning is even more harmful.

Schools are great at efficiently enacting a plan that has little to do with children's needs and little to do with learning.

Like a close friend who attended an elite private school with tiny classes and a lot of self-elected subjects, time allocation and projects said, "when I went to college I thought I was surrounded by idiots. Later I realized these were kids who didn't get a chance to learn good writing, or public speaking, or to plan, schedule and execute on their own nprojects, or to navigate bureaucracy."

I'd say same goes for other important life skills, like financial planning, media preparedness (understanding propaganda and advertising), job hunting, entrepreneurship, art, etc.

3
jtcond13 1 hour ago 0 replies      
It's too expensive, takes too long and fails to accommodate the diversity of educational needs. It also does fairly little to help people find suitable careers during adolescence.

That said, these problems are widely known and discussed. Alternatives such as Montessori education are becoming more available. Most American 18-year-olds are reasonably numerate and literate; some even manage to pick up some scientific, historical or foreign language knowledge as well.

In hindsight, the weirdest thing about it was how difficult it was to find suitable times to go to the bathroom.

4
matt_o 1 day ago 0 replies      
I think it's bad, mainly because it was built at the end of the 19th century and since then it's calcified. It's like having legacy code and instead of refactoring it when you need to make changes, you build more stuff on that, get more technical debt.

To add some context to what I mean, the current system is largely based on the decisions of the Committee of Ten[1]. If you read that short note, you'll notice that it's pretty much applying the lessons of industrialization to education ie. assembly line approach.

The example of the assembly line approach is especially relevant for me because I don't think that it is applicable to humans. Different humans learn at different rates so it doesn't make sense to group them by age. Additionally, teaching everyone the same things, while making things nice and uniform, takes away the biggest motivation for learning - curiosity.

This is completely anecdotal, but the further away I moved from this assembly line education system (from high school to college, from college to self-taught developer) the better grades I got (college) or more money (work) and the more time I spent learning, even things that are unrelated to my main focus because the world is fascinating.

As for an idea on how to fix this, I admit that I don't have a concrete one. I've skimmed the topic and the thing that drew my attention most is the Montessori system[2] system of education. It proposes a few points relevant to what I wrote in the previous paragraph, but also one that I find particularly interesting to developers: "Uninterrupted blocks of work time, ideally three hours".

[1]: https://en.wikipedia.org/wiki/Committee_of_Ten[2]: https://en.wikipedia.org/wiki/Montessori_education

5
Kinnard 1 day ago 0 replies      
I'm in no way an expert, but I've pretty much seen the gamut: private preschool, public elementary school, charter middle school, inner-city public middle-school, elite private boarding school, magnet public high-school . . .I think the public education system is a travesty, but I know it also doesn't make sense to talk about "the system" as if there's anything approaching uniformity. Detroit Public Schools and Bloomfield Hills public schools are worlds apart.

And even still, today's education system might be the best there's ever been . . . most people learn how to read . . .

This doesn't address higher-education, which is a whole 'nother shit-show . . .

6
jvvlimme 1 day ago 1 reply      
There is very little good about the current education system:

1/ Dividing kids in age based groups is very poor. They only learn negative behaviour from each other. Skill based would be more interesting as the younger kids would learn from the older students and the older ones learn some responsibility towards the older students

2/ Scientific research has proven teacher based education to be sub-optimal. You take away the inquisitive nature of the kids. They will take what the adult says as true and fail to look for different ways to reach the same goal.

3/ School just isn't fun. Information is pumped into children which they forget once it has been tested. Let them discover things in a playful way and they will remember it much longer.

4/ Exams really only test how well one can game exams and tests, not how well one understood the matter. Test should be used as a personal measure to check if you understood everything and if you are ready to move on to more complex issues, not as a benchmark compared to others.

And so much more.

7
oxplot 1 day ago 0 replies      
I think the current education system is inefficient at best. It also fails to expose kids to variety of skills/professions out there enough, so they can get a taste of what it's like to be this or that. Most kids don't know what they want to do even after starting college because all they've dealt with has been subjects that taught them the tools (e.g. mathematics, language) without giving them context.

Further to that, instead of focusing on minimalism and utility, each subjects goes to depths far beyond of what most kids need to know to make use of. Lo and behold, they're going to forget majority of it in a month. And some subjects have gone completely off the rails, like English, with the main focus on past literature. That's not what natural languages are most used for. Arguments, public speaking, legal, journalism, marketing. These matter day in day out, not what Shakespeare spewed while he was high on an Autumn afternoon. That's fine too but let the kids do it on their own time and focus the efforts in equipping them with critical thinking, etc for when they enter the wild!

8
mathpepe 1 day ago 0 replies      
Very simple, the problem is not education but the true purpose of it. If education is a mean to earn more money, or the best way to get to the top and it doesn't matter how to get it, then learning only teach you what to avoid and how to simulate being a person.

Education is about making up what is important for us as a society. If we are to allow million of people to starve and get convince that what we see is just a natural state of affairs, then we have defined education as a system not about us as a society but about you as an individual. Society must speaks out with their pockets: If you are paying low wages to scientist, teachers and doctors, you are educating people about what to do with their lives. Forget about the shiny words, education is a lot about economic, incentives and giving people a decent life. Education can't be build without a framework and a clear purpose. Today all of us know what is the purpose of education: save yourself, stay alive, survive. The rest is just a hollow mud of words, deceitful, vain group of vacuous words.

In this forum virtual reality can be turned into a platform for education. We can use virtual reality to replace opium and get people sideway of our way, that is convert into passive, sleeping minds.

But otherwise, we could transform virtual reality into a platform for action, were people are actively engaged into learning and helping others to create and promote knew ways of learning and discovering what is being a human being in the 21th century.

We all want feedback, learning is about communication for action not for self-oppression. I am for an education for action. Now, go, ruin the idea, sell the product, crook the intention, ban the action and feed the vultures and continue educating for succeed.

9
bxh 1 day ago 1 reply      
I find the use of examinations and tests to assess the "quality" of the student non-ideal.

It's very possible to perform very well on tests with minimal actual comprehension of the material through memorization. In fact, it's quite possibly easier to memorize solutions than to actually learn to solve them.

11
exolymph 1 day ago 0 replies      
I went to a Waldorf school up through eighth grade, and it was wonderful. Then I went to a run-of-the-mill private high school, and it was hell.
12
yompers888 1 day ago 1 reply      
I think we probably need to pay teachers significantly more if we want to improve things, at least until we understand education sufficiently well to be able to train anyone to do the job.

Back in the early 1900s, and even through a significant part of the century, teaching was nearly the only place for graduates of top women's colleges, at least until they got married. Upwards of 90% of employed graduates of these schools were teaching. Whether that was a matter of it being the most respectable or the most lucrative thing for women to be doing, the fact is that it had a pretty great talent pool to work with. By the 1980s/90s, when you looked at the top 10% of women in terms of academics, only about 10% of them had any interest in teaching as a profession [1].

Now, both the money and the respect are lacking. The perception is that any idiot can become a teacher as long as they can make it through their four years of college. Some people will be quick to say that you can't teach for the money. While that's certainly the case in the US right now, and it agrees with the overall notion that it's much better to be in a job you love, it ignores a lot of the problem. Top students, when they pick what area of studies to pursue, are bound to think about the prestige and earning potential of their future careers, though the amounts of those will differ for different people. If you could easily be headed for a job where you'll make upwards of $100k, accepting $40-50k is a lot for some people to swallow. Suppose I think I'd really enjoy teaching, and hopefully even be good at it, but asking me to be unable to retire for ~40 years, versus the 7-10 I can manage otherwise, is a bit much. Even if I'm not doing my ideal job, I can afford some hobbies that will make up for that. I like sailing, skiing, and traveling, and I'd like to get my pilot's license. Teaching isn't going to pay for any of that. So I make my trade-off, reducing by one the pool of potential teachers. And there are a lot of others doing the same thing.

I have many more things I could say, but I should wrap up my rant. I also believe that home life has an enormous influence on school performance, and I think land use patterns in the US increase this effect by reducing community cohesion, and along with it possibility of parents who struggle being assisted by the people around them.

[1] Somerville College Report, 1987 and 1996. (I've used statistics from Oxford here, but the trends are similarly mirrored for US. I just don't have a resource handy.)

13
kdamken 3 hours ago 0 replies      
Speaking in terms of the USA here.

Garbage. An almost complete waste of time and energy. For grades K-12 a lot of it is just babysitting, to give kids a place to be and keep them out of trouble while their parents are at work. I value my primary school education very little.

While I wouldn't go so far as to say that college is a scam, I would say it is often one of the poorest financial investments people make, and it's even worse because we trick naive 18 year olds into doing it. College is not for you to find yourself, and it's not for you to waste time pursuing a degree that can't help you support yourself and pay back the insane amount of debt you took on to go there.

The current generation of kids was told that you need to go to college or you'll be a failure in life. My dad constantly was saying that if we fucked up and didn't get into a good college we'd be "Making hoagies at Wawa". They say your major doesn't matter, it just matters that you have a degree - you can figure out the rest later.

It's a shame no one sits kids down and says - "Hey, you're about to take out one of the largest loans of your life, one that you'll have to pay many years, maybe even decades. Why are you doing that? What career do you want? Will this degree get you there? What can you expect to earn with this degree - can you pay down these loans with it? If your loans are X, you will be paying at least Y a month."

Most people I know did not get a talk like that from their parents, or high school teachers/guidance counselors. I wish they did.

Some things to improve the current system:

1. Not every kid needs to go to college. Are you bad at that book learning stuff? That's fine - push more kids into trade schools.

2. In the upper grades of primary school, focus on teaching kids the things that will actually matter and are useful. Financial things - how to do your taxes, how to use and maintain a budget, how to pay your bills on time. Life things - applying for jobs, finding an apartment, what careers pay best and how to get into them. Civil rights - how to protect yourself from the police. Real life things that will actually benefit them.

3. Encourage kids to do community college for two years then transfer to a real college to save money. The "college experience" isn't worth the price most pay.

4. Hammer it into kids' heads that unless you're going to MIT, Harvard or Yale, where you go to school doesn't matter. Your degree and the field you choose to go into matters a lot more. Require all colleges to provide what the average jobs and starting salaries are for all majors before a student is allowed to pick one.

Education is important, but the system we have today sucks.

14
vinchuco 1 day ago 0 replies      
15
miguelrochefort 1 day ago 0 replies      
The current education system is broken, yet it's designed to prepare people to the real world, which is even more broken.

We can't fix education without fixing the rest of society. The system is so complex and inconsistent, we simply can't expect a kid that keeps what makes him good (curiosity, honesty, idealism) to thrive in the real world.

16
miguelrochefort 1 day ago 0 replies      
We all know what the problem is.

The solution is to preserve curiosity and honesty. These are the only traits that matter.

17
ankurdhama 1 day ago 1 reply      
Humanity screwed up education the day teaching became a profession (to earn money).
14
Ask HN: How to improve technical writing skills?
9 points by CiPHPerCoder  22 hours ago   2 comments top 2
1
zhte415 6 hours ago 0 replies      
No one else has responded, so I'd like to contribute something, as you're clearly investing time in this.

Technical writing is often cold, fact-based writing. There is the need to be 100% correct and caveat explicitly where necessary.

Technical articles also should assume to require a user's attention, and popular articles deliver a quick fix.

Promoting the use-case for a product isn't technical writing, it's marketing, providing clearly linked outcomes to causes/problems/opportunities that an audience should be aware of (should be).

I had a quick look at your blog, for example 'Solve All Your Cryptography Problems in 3 Easy Steps'* The title is popularist, implying a quick-fix for readers that need a quick thirst-quench. Not that business, as it isn't quantified. A bit like a 20 second page-view blog post.* The content is not. It is long and quite detailed. But now I'm thinking, so who's the audience? If the audience is 'business' write to them with appropriate diagrams and do link to much more highly technical implementation and justification - using external references can help a lot here.* If the audience is implementers, stroke the technical side. How it is not hard, exotic or difficult, but is interesting, well supported, and could also gain some credit if they used the material to bring a business case themselves.

Improve the quality of the writing: Split your audience into buckets of people with different needs, and address those needs.

About learning Photoshop: Forget that. If you want more diagrams, do them in PowerPoint, export as a PDF, then export from Acrobat as an image. Absolute zero learning curve.

2
ddri 2 hours ago 0 replies      
This is a great question, and one that I love seeing emerge with surprising regularity in our dev community.

A few thoughts below. For context, I was a technical writer at Red Hat before spinning out the content tool I cofounded. I'm the cofounder of Corilla, a publishing tool for technical writers... Corilla is like Github for content teams (http://www.corilla.com).

Peer review

When asking for peer review, you will mostly get people pointing out a few minor things and moving on. Doing in-depth reviews are really hard, so it's just human nature to find a few things to comment on and fulfil that emotional contract.

Building up a small circle of very close collaborators for peer review is very helpful. But it's hard work - for example I'm in Boston this week, and I made sure I did a deep-dive on a new content deck sent over from another founder from our NUMA accelerator alumni in Paris. Pay that ^&$& forward first.

Technical writing versus marketing

A long time ago in a galaxy far, far away, technical writers openly mocked sales and marketing. Then something called "Google" happened, and writers that didn't take the time to appreciate that every page is now page one suddenly found their career prospects shrinking.

Technical writing is a very specific art, but one that is broadening widely. I look at "technical writer" in the same way as "full stack engineer". The oldskool days of learning dry and emotionless technical writing were kind of like an engineer getting down with LAMP. Ditto how IA and HCI has blossomed into UX.

The best technical writers understand the power of their content and how it intersects with the needs of the reader. And some of those readers are making purchasing decisions. So you can either argue about "technical writing has become content marketing", or you can learn as much as possible to improve your ability to write the right content for the right persona at the right time. Right?

Clickbait titles

Personally I hate them and avoid content because of them. Unless I encounter them because of a trusted referral in my network. Or if the body content is enough to drive my user journey towards that content.

Your case will depend on your target demographic. Are they inclined for clickbait titles? Are they mostly referred by trusted sources/social media? Are they driven by google (or, lol, Bing)?

Graphical aids

I worked with a manager once that was proud that they never watched videos and hated graphics. That was a great experience, because much of the universe is the opposite.

I can list off a lot of figures that support the conversion/retention/activation power of these other forms of content, but it's 2016. We don't have to. It's not even a debate anymore.

The challenge is that they ALL work. Most of us grew up reading MAN pages, right? So what? A good technical writer has to and loves to test the content preferences of their users.

I wouldn't suggest you learn Photoshop necessarily. You could use Freelancer/Upwork to get some expertise in. If you want to DIY, get a design buddy (or pay a few bucks on Upwork to get taught) how to use Sketch and Marvel/InVision. The design space is shifting quickly.

Get better at technical writing?

Join the Write The Docs community. Seriously. Eric is probably reading this thread right now (g'day!), and they are just a wonderful global community of diverse technical writers. The WTD conferences are super sweet too.

Hope that helps. Ping me directly anytime, I live in this space and love to help.

15
Ask HN: Any self hosted solution to manage passwords in a team?
10 points by codegeek  1 day ago   16 comments top 8
1
fbm 12 hours ago 1 reply      
Take a look at ours, it's self hosted and for teams: http://teampasswordmanager.com

(I'm the founder, happy to answer any questions you have)

2
rajjalan 22 hours ago 0 replies      
I am obviously biased for following(founder) and password mgmt is just one part of it, but do check out Device42 for a low cost password vault: http://www.device42.com/features/enterprise-password-managem...

There is no limit on # of passwords or # of users with the base license and has full Rest API support.

3
koolba 1 day ago 1 reply      
Check out: https://www.passwordstore.org/

It's git friendly and supports having separate GPG keys for different credentials.

4
gingerlime 1 day ago 0 replies      
take a look at passopolis[0], a fork of Mitro[1] - which got acquihired by Twitter and later stopped supporting the project.

You can either use the free hosted service by passopolis, or host your own.

disclaimer: not affiliated with either of those, but was a happy Mitro user and then switched to Passopolis (and am still very happy to use and know the project lives on).

[0] https://passopolis.com / https://github.com/WeAreWizards/passopolis-server

[1] https://www.mitro.co/ certificate expired)

5
dirktheman 1 day ago 0 replies      
KeePass on a shared server or even a Dropbox folder works fine, as long as you're aware of the slightly higher risk of putting your database on the internet.
6
adp957 23 hours ago 0 replies      
Check out Pleasant Password Serverhttps://www.pleasantsolutions.com/PasswordServer
7
gawenr 1 day ago 1 reply      
8
Faaak 1 day ago 2 replies      
A good LDAP infrastructure ?
16
Ask HN: If you started making a web app today which tool would you choose?
15 points by karimdag  1 day ago   27 comments top 20
1
codemonkeys 1 day ago 0 replies      
There is not one tool I would use/recommend before knowing the actual requirements.

In one of our latest projects we decided on following stack:

Backend/API: PHP, Symfony3, Mysql

We choose this because the following reasons:

The team is already familiar with symfony/phpWe had to integrate with existing stack/business logic in php ( or port parts of it )

Frontend: Angular.js

We needed a single page app that we could easily port parts of to a mobile app later onWe wanted to decouple our frontend from the backend by doing only api calls so we avoid having backend code responsible for generating html/etc

Real-time component: Node.js, Redis

We needed a component that processes events as they come in, and a lot of them. We decided against PHP so we could lower our memory footprint and also because it is a bit more convenient to deal with state.

This component checks each incoming data packet with a set of rules and reports on violations.

This component gets it's configuration from the backend api and reports back to the api whenever a violation occurs which needs to be logged.

2
sidcool 1 hour ago 0 replies      
I would use Scala with Play framework. Mongo or Maria DB depending on type of data. Angular 2 for front end. Hosted in Google cloud.
3
_RPM 37 minutes ago 0 replies      
php, mysql, angular, laravel/symphony, nginx, linux, node.js and socket.io for long polling
4
sheraz 9 hours ago 0 replies      
As always, the right tools for the job.

And those tools today are often a mix of my own code and some SaaS.

Depending on how much data management there is, I will ususally start with Django, specifically Django Cookie Cutter [1].

This bootstraps a lot of the basics for me like user auth, testing, front-end assets, etc.

For error console, I will use Sentry[2]. There are self-hosted and paid versions.

If I want some real-time type functionality, I will use Pubnub [3]

I am lazy and will always play to my strengths. That happens to be Python, Postgres, and constantly hunting tools that make me an even lazier developer.

[1] - https://github.com/pydanny/cookiecutter-django

[2] - https://getsentry.com

[3] - https://pubnub.com

5
Capira 14 hours ago 0 replies      
That depends so heavily on your requirements that every general answer is incomplete.There are lots of different kinds of web apps with very different requirements.There are tools for solving certain problems in frontends and other tools for certain problems in backends. There are tools for small projects and others for large scale products... As long as there is no specific problem you can't say what's the right tool.
6
Jamsii 11 hours ago 0 replies      
Am I really going to be the first?

I would use Rails. Rails has everything I need to build a web app and API back end should I require a native mobile app. As a ruby guy I can't really comment on the frontend, but my go to JS framework that lets me build shit quickly is knockoutjs.

7
Avalaxy 8 hours ago 0 replies      
Like everyone else: my personal preference.

In the future I want to use the following setup: ASP.NET Core with Angular 2 and Typescript. And then host it on Azure. Sounds like a golden combi.

8
reitanqild 1 day ago 0 replies      
Right now, if tasked with building another service of the same type as the one I am currently creating (kind of a CRM integrated with various 3-rd party payments and messaging) I'd use the most recent version of my current stack.

My current stack is JavaEE on TomEE.

I'd probably happily sacrifice verified stack compliance for the latest TomEE 7 milestone build as I understand the verification issue is just Oracle being Oracle again, throwing a wrench in the gears just because 'why not'? Or rather to see if they can somehow extort some money from an open source project. </rant>

9
PaulHoule 1 day ago 0 replies      
Java back end, HTTP/2, everything tuned for small transfer size and high speed, no CDN, no extra DNS lookups, as little JavaScript as possible, but maybe d3.js or something else which adds a lot of value.
10
a3n 1 day ago 0 replies      
Vim. :)

If it's just you, and a first outing, then a minimal set of whatever you're most familiar with. For me that would be nginx -> wsgi -> flask/bottle or similar -> postgresql, because python. Similar if you're more comfortable with ruby, js, whatever. Build out from there if it becomes worthwhile.

If you're a group, whatever allows the group to make best progress.

11
edoceo 1 day ago 0 replies      
This long weekend (US) I started a project hosted in Linode running Debian. I am writing code in Go, HTML, JS, CSS using jEdit on Gentoo desktop (4 monitors). The backend stuffs are Redis and Solr. I used Bower to add web components. I still use Makefile rather than grunt or other newish things
12
abhimskywalker 1 day ago 0 replies      
Front-end: React.js(if fancy interactive stuff needed), Bootstrap with Flexbox for stylingBackend: Django, PostgreSQL, Redis, Elasticsearch, Nginx

Haven't used but wish-list to try next: Docker, GraphQL, and probably try hosting it on google cloud platform

If the use-case fits, even wanna try a Firebase-backend only app as well

13
samsonradu 1 day ago 0 replies      
Server: Nginx

Backend: PHP (Yii2), Mysql, Redis

Frontend: React (if I can't get away with just JQuery), Bootstrap 3

Realtime components: Node.js, Socket.io

14
siquick 20 hours ago 0 replies      
Surprised at the lack of Rails usage...

Personally, I would go for Flask just because it's so easy to build up momentum due to the minimal setup required.

15
dagw 1 day ago 0 replies      
Server: Flask (or possibly Django) behind Nginix

Database: Postgres and possibly Redis

Frontend: Not much of a front-end person so I avoid all the complicated stuff and stick with Bootstrap. I also tend to prefer coffescript

16
smt88 1 day ago 1 reply      
Would love comments, questions, and criticism on my choices.

Hosting: Lambda via Serverless for API, S3 for HTML/assets

API: Node/JS via TypeScript, Postgres RDS, GraphQL

Front end: React

17
andruby 1 day ago 0 replies      
If the app is mostly a tool that doesn't need SEO I would use Phoenix with jsonapi.org compliant api + EmberJS.
18
ramon 1 day ago 1 reply      
AWS S3, Lambda (NodeJS). You'll get one year for free, then you'll pay very little on that configuration.
19
bbcbasic 20 hours ago 0 replies      
C# asp.net and knockout for money

Haskell yesod and elm for fun

20
brudgers 1 day ago 0 replies      
ASP.NET webforms because it is what I understand best. YMMV.
17
Ask HN: Downloading PDFs from SlideShare Without JavaScript?
7 points by pmoriarty  1 day ago   1 comment top
1
nmjohn 23 hours ago 0 replies      
I have a bash script that will do exactly what you want I suspect: https://github.com/n-johnson/bin/blob/master/dl_slideshare.s.... It needs imagemagick installed to build the PDF.

It's not robust and won't handle edge cases gracefully, but I've used it for a few hundred PDFs and they all worked.

The big downside is the slideshare slides are images, so the PDFs aren't searchable - they are just images.

18
Ask HN: Refactoring a BASIC Blackjack Game from the 70s
22 points by LarryMade2  3 days ago   18 comments top 11
1
akamaka 3 days ago 0 replies      
If I were to refactor this code, I'd first make a good set of automated tests, by recording the input and output of a series of games. If you go through many stages of refactoring, these tests will save you a lot of time.
2
wvenable 3 days ago 0 replies      
I'd be tempted to toss that into QBasic where it might reasonably run. Then start renaming variables and creating functions in QBasic. Slowly turning it into a modern program but have it run at each stage.
3
armamut 3 days ago 0 replies      
The code looks like the ones from C64. I used to write C64 Basic when I was 5 to 10 years old. (Later my father bought me an Amiga 500 and I started to play around 68000 assembly with MSeka assembler. There was also a C compiler, but there wasn't any documentation about C and the libraries. So I didn't choose to learn C with trial and error. Also there wasn't any Internet... Assembly was so much easier and logical to me at those days.)

But at some time, my C64's tape recorder broke. And I couldn't save the programs I wrote. So, programming to me was, waking up in the morning, start writing some program and playing with it, and in the evening when I switched off the power button everything would be gone. But I loved to play with my C64 :)

At those days, sometimes I even wrote very long programs. But I must admit that, when I see those 322 lines, it really frightened me now! It's looks like a million line C or Java codebase to me. I have no intention to refactor that code at all.. But I agree it would be fun.

4
newmana 3 days ago 0 replies      
5
dragonbonheur 3 days ago 0 replies      
Refactor QBASIC code instead and keep your sanity: http://www.jefflewis.net/programming-qbasic-blakjak.html#sou...
6
icedchai 3 days ago 0 replies      
I love looking at old BASIC code. I remember learning it on a TI 99/4A, then an Apple IIe a few years later.

Recommend you port it to Python, as a command line / console app. Command line would make it simpler to keep the "spirit" of the original.

7
JohnDeHope 3 days ago 1 reply      
One of the biggest hurdles for me is the inability to have arrays of structs. You have to have multiple arrays of atomic types, and keep the indexes in synch. Maybe that's not a problem here. I collect old basic books and enjoy the nostalgia as you seem to :
8
russellbeattie 3 days ago 1 reply      
I took a few minutes to see how difficult it would be just regexing a bunch of lines into something like JavaScript. At first it was pretty clear, but then wow... I forgot how insane GOTOs were! How anyone could follow a program like that amazes me.
9
JohnDeHope 3 days ago 3 replies      
Related question... Is early BASIC the best we could do with all of our modern programming experience? If we were teleported back in time, knowing everything we do now, what could we accomplish in the same hardware constraints, language design wise?
10
zem 3 days ago 0 replies      
a few years ago, i contributed a guest ruby quiz that involved translating the old basic HAMURABI game into ruby. it was a pretty fun exercise - you can see the challenge and a few solutions here: http://rubyquiz.strd6.com/quizzes/223-hamurabi
11
nobleach 3 days ago 0 replies      
Oh the days when I used to copy code out of books on my TI-99/4A...
19
Ask HN: Does Bitcoin solve the micropayment problem?
4 points by Capira  21 hours ago   2 comments top
1
struct 21 hours ago 1 reply      
It seems hard to do it directly, but I've been analysing [1] for an upcoming project, and they do some clever tricks to amortize the cost. If you get to try it out, let me know what you think!

[1] http://dev.blockcypher.com/#microtransaction-api

20
Ask HN: How many of you non-tech people wanted to learn to code and gave up
68 points by sathishmanohar  1 day ago   75 comments top 21
1
reitanqild 1 day ago 0 replies      
I didn't give up but I have to admit I felt quite useless after finishing higher education.

I understand that higher education isn't there to teach you VB or Java but to teach you the principles... but IMO it certainly wouldn't hurt if there was some connection to real life.

I came in as someone who had already coded a while. I was best in class in several subjects IIRC, helped others but felt like I could never have a career in Java.

The reasons?

We were never taught how to work efficiently. Or rather: teachers actively restricted access to sane environments.

Code was supposed to be written in an old unsupported text editor.

For many of us this very smart idea teachers has about teaching things "from ground up" has the nasty side effect of demotivating many of the best students to the point where you consider doing something else.

I never even dared to apply for a Java job and only started after being picked up. I remember telling my first boss the truth: yes, I have been coding since I was a kid and yes I have passed Java in school but I cannot program it. Luckily he gave it a try and with good colleagues Java soon became my personal favourite.

2
anysz 22 hours ago 6 replies      
I'm a Canadian with no Bachelor's and I started to learn how to code over a year ago to work in the field.

I learned the fundamentals of Ruby on Rails with Michael Hartl's tutorial and built an e-commerce application on Heroku from scratch (html/css/js/jquery/postgresql) It featured an admin panel, inventory management, user accounts and a reasonable RSpec test suite. It took me about 3 months of plowing 90hours+/week. I used it as a portfolio application to start looking for jobs. After blasting hundreds of resumes (>600), I got about 20 interviews. None of them worked out except for two unpaid internships which I financially could not accept.

I gave up Rails, but I didn't give up coding, so I asked the internet what was more likely than Rails to land me a job? iOS was probably more niche and more in demand. So I spent a month learning the basics of iOS development with Swift and released 2 apps on the App Store over the following 6 months (build-learn-build-learn cycle), both using Parse, Firebase and a panoply of 3rd party APIs. They were well architected (imo) using fundamental OOP principles, as well as the classic iOS patterns, singleton, observer etc.

This time I sent over 3 thousand resumes over the course of 5 months, all over the world: Canada, USA, Mexico, UK, Australia, Netherlands, Germany, Argentina... you name it.

I got 2 remote pair-programming sessions, which I nailed, I also got about 8 coding assignments, which I completed within hours of receiving the instructions (4 of which never even had the decency to respond or give feedback). All in all response was the same. I even got a couple of absolutely ridiculous contract offers such as building a full fledged real time web and iOS landlord/tenant management system for 2000$, solo.

Without trying to start a pity party, I am now doing manual labor on a curtain assembly line, going door to door after my shifts trying to sell Wordpress websites, which are easiest to setup and sell.

I guess I had to stop coding because I couldn't find a job, because it takes up time I don't have and even though I am passionate about it, passion doesn't pay the bills.

3
katpas 1 day ago 1 reply      
I started out with Codecademy and gave up lots of times (over about 6 months) before I decided to commit to learning full time.

My plan was to lock myself in a room for 3 months and teach myself Python, I ended up doing an in person course in Javascript (one of the rare free ones). Learning with peers and some support made the whole thing a lot less gruelling. Before that I would get stuck on very simple things for hours and hours not knowing what to google to find the way out of it.

I wrote about this in article a little while ago if you're interested in the full process I went through. Note (I didn't choose the title for this) - http://www.gadgette.com/2016/02/19/how-i-learnt-to-code-in-a...

4
scandox 23 hours ago 4 replies      
I think the reason that many smart people don't stick with programming is because a fundamental part of the job is struggling with intellectually trivial incantations specific to some configuration/OS/Language/Tooling.

I am a programmer and I have a lot of patience for that stuff. But I don't why I do, because objectively speaking it's crazy to spend hours ingesting this kind of ultra-specific, non-reuseable information.

5
bloaf 1 day ago 1 reply      
Engineering grad student here:

1. Learned to code some C# in an attempt to distribute some of my simulations to other computers. Had a great time and managed to get something good enough up and running.

2. Tried to pick up Haskell because I liked some of the ideas, and had a few projects I was interested in trying to do in a functional language. Had a bad time and quit after ~2 weeks. The environment and tools were garbage. I thought the old by-engineers-for-engineers software I used to build research models was user-unfriendly, but I guess that was just because I had never tried to work with the software programmers build for each other.

6
salemh 1 day ago 1 reply      
I used to work in spreadsheets all day, or at least, 70% of the time, I'd have to collate 50x spreadsheets information into a singular summary page, etc.

I worked through ~20% of "Learn Python the Hard Way", then later, the intro CS 101 of Udacity which has a Python intro, as I wanted to be able to do more then vlookups and complex workarounds for Excel sheets.

My new career is in marketing automation, so I did some tutorials online, and bought a SQL book to pull PL/SQL queries for data segmentation. I also picked up HTML/CSS, but don't have any reason to really use Jscript. I can read it, and trouble shoot in some landing page uses, but I don't need it.

Learning to code was always a supplemental goal for career growth, and I find it fun. I was that IRC guy who loved scripting simple tasks like a music player/displayer, k/b wars, etc.

However, when I'm actually diving into learning actual code, I don't enjoy it. I don't think I'm built for it, just as I don't grok statistics, yet my sibling is a actuarial scientist, but he gets confused about things that come naturally to me.

Being in Marketing Automation, its more relevant for me to do "continued" (outside of work) education not in coding, but in platform research (Eloqua, HubSpot, Marketo), more SQL/data management (I am reading "Object Technology: a Manager Guide), and certifications in these platforms.

7
Santosh83 5 hours ago 0 replies      
I'm an artist and since I've always been fairly interested in science in general too, I decided to teach myself HTML and CSS to code up my own site from scratch, for hosting my art (and miscellaneous other things). Am currently going to start learning CSS Flexbox that everyone's talking about, so that all parts of my site can be rendered form-factor independently. My plan is also to teach myself Javascript after CSS although I've no current need for any JS on my simple site. I did teach myself C years before and successfully worked my way through K&R2, but since professionally I was headed in a different direction I saw no reason to go further. Can't say I've given up on coding except for a short attempt at Java (again ~10 years back) which I gave up quickly since coming from the simplicity of C it seemed rather bewildering to me (at that time).
8
DrNuke 1 day ago 1 reply      
Coding for coding is irrelevant for non-techies and rightly so: outsourcing is so cheap nowadays. Coding in order to do something relevant within their particular field of knowledge is their main point and may be worth the fuss.
9
pappyo 1 day ago 2 replies      
I had two problems while teaching myself how to code; I'm not that passionate about it, and learning technical disciplines on line is not how I learn.

I viewed coding as a means to an end. Learn to code-->start a business-->get investors-->pay someone else to code. I didn't care much about what I was learning, only that what I was learning could potentially fulfill other goals. That, in and of itself, wouldn't necessarily deter someone from learning how to code, only...

I struggled learning through on-line tutorials (Code Academy et al). It's not how I learn. That was unfortunate, seeing that coding community spearheads this type of learning. I realized that if I wanted to make it work, I'd have to register for a class. Then I became scared that maybe the struggles wouldn't persist past on-line and I'd be financially committed to it. I wasn't willing to take that risk.

10
MrJagil 23 hours ago 2 replies      
Classes in Javascript were really hard for me for some reason, and I've never really passed that point. Also, the fact that programming is not solving anything by itself, you need to know the entire stack. After wrestling with classes for a while it's really demotivating to realise you have to know DNS, server-side languages, http_S_ and all sorts of things before you can actually create your app/website. It was just a bit too much for me.

Codecademy did a good job though and http://www.theodinproject.com/ too.

EDIT: Also, the job prospects did not look too good because of the fierce competition. What motivated me was doing my own apps/sites (lego for grown-ups), or at least work on a startup, but the required resumes were really daunting. Sysadmin just didn't have the rockstar flavour to it (I think it's a fine job, just trying to convey the fact that a certain air of adventure needed to be present to lure me to stick with it- i.e. the same reason 13 year olds learn the electric guitar).

11
touchofevil 22 hours ago 1 reply      
I've made a couple of attempts and I'm about to make another attempt to learn to code. I think the problem I run into the most is that a lot of the online learning is not project based, or takes too long to get started on a project. For example, I started the TeamTreehouse Flask Track and it takes a while before their tutorials challenge you to actually start building a site with Flask. I signed up for onemonth.com and I liked their approach much better, where you just dive in and start building something from the beginning. However, the OneMonth Python/Django course that I was taking shutdown right in the middle of the course I was taking, due to problems with the course material. It's also been very difficult to choose a language/framework, but I think I've settled on Python/Django. I'm thinking that I will resume my Flask course at TeamTreehouse and also give Code4Startup.com's new Django course a try.
12
caseymarquis 18 hours ago 0 replies      
I've given up at many points over the last 9 years. I now program "professionally". I work on full stack web applications, networked desktop applications, and recently embedded applications.

The primary reason I gave up was that I wasn't willing to accept the amount of effort which needed to be put in to get the level of results that I wanted. I just couldn't comprehend that the skills I wanted to have required years of commitment.

The advice that I'd give would be to understand that this is a huge task. You won't learn everything quickly; even if you're very bright; even if you spend 14 hours a day on it. Those things will help, but they aren't the key.

If you want to be a good programmer you need to love learning. It's not about being clever, it's about being persistent. You constantly need to learn new tools and frameworks, and occasionally new languages. You need to understand the technologies you're interacting with and how they work. And you need to take all those tools, frameworks, languages, and technologies and use them daily.

But mostly you need to invest the time.

Don't give up if you let a big project go because it's too difficult, or don't understand something, or spend two weeks on something you thought would take an hour. Be disappointed, sure. But don't quit.

Keep going. Keep learning. Keep on picking up just a small amount of knowledge or skill each day.

In a year things that now seem complex will be obvious. And that will happen again and again every year that you continue learning. Eventually, your failed projects will turn into completed projects, but it could take years for this to start happening depending on how ambitious the projects were. You can't let that stop you. You just have to keep going despite it.

So keep going. But realize it's a long, slow, life-time commitment to constant learning. It's not easy. Even if you've been good at everything else in life, there's no exception for you. Mastery and skill will only come with significant time and effort. But they will come.

Also learn vim. That sh*t is awesome.

13
fierycatnet 23 hours ago 3 replies      
I was messing with programming for years now but I can't manage build anything worthwhile, even for my own amusement. I was CS major but I got burned out on high level math and I switched majors.

Through out these years it's always been a struggle to learn to code and finish something. I've done some basic problems, some Project Euler, etc. I did countless tutorials, it just doesn't stick for me. I've been through so many languages that I can't even remember them all, name it and there's good chance that I've read a book on it.

It also seems like there is so many tools and programming today is so convoluted and over engineered that I just get overwhelmed. I also don't have anyone to talk about programming, I am just spinning wheels solo and get frustrated when I get stuck.

Right now I am giving my last chance of learning to code. I found out Lisp and eventually Clojure. It seems more straightforward and simple, there are no 'design patterns' to remember and break my head with. I feel like I can slowly build something from bottom up. I have high hopes for Arachne upcoming framework. I hope it will be accessible and I'll be able to make SPAs sites.

But yeah, I feel like I've burned out on this. I just get frustrated with code most of the time when I can't come up with a simple solution.

14
exolymph 23 hours ago 1 reply      
I've dabbled a bit with various online courses, and concluded that coding just doesn't spark my intellectual interest enough for me to get into it fully. Wrote about this, actually: http://sonyaellenmann.com/2015/12/its-okay-to-not-learn-how-...
15
votingprawn 22 hours ago 0 replies      
Years ago I started coding qbasic with a photocopy of a book given to me by a friend of the family.

I progressed from there to medicore competency in PHP, rails, and c++. Then I went to university to study comp Sci...but almost immediately switched to aerospace engineering, and my coding skills plateaued.

By that I mean I can write basic stuff in all sorts of languages, but I'm miles away from writing a compete program or anything user friendly. Most of my code these days revolves around automating various things in the most sensible language. Where sensible often means something the next non-coding engineer to come along can understand.

I guess I stopped because I knew enough to do what I currently need to do. I'm content that, given time, I could learn to be a better coder. But at the same time I avoid jobs in my industry that are suited to decent coders because I know there are more suitable people for the role.

Every so often try to pick up some "hobby coding" but find that I don't really enjoy it like I did as a teenager.

16
fmilne 1 day ago 0 replies      
The only online curriculum I have had success with was:http://www.javascriptissexy.com/how-to-learn-javascript-prop...

The reason it clicked was because at the time, a colleague offered to mentor me. This helped since he would assign me cases related to my skill level, show me how to ask better questions, and explain how things worked in context to our tech stack.

17
elbear 23 hours ago 0 replies      
First time I stopped, because I got stuck. I didn't have Internet at home, so I had nobody to ask for help.Second time I stopped, because of university exams. I was studying something completely different at the university and when exams came, I dropped the programming and didn't pick it up after.Third time was the lucky one. I made programming my most important priority and I didn't stop. Also, I had Internet, so I could ask for help.
18
pythonscheme 1 day ago 4 replies      
I am having some problems with magic methods in Python. They are defined inside a class using built-in functions and are not directly callable. What are some helpful resources with this topic? Thanks.
19
giarc 23 hours ago 1 reply      
Because it was free.

I tried many of the free options out there but whenever I hit a roadblock I just quit because I had nothing to lose. I paid $30 or so for a swift course and never stopped because I had paid money. It's a tiny amount of money but I felt like I had to see it through since I paid money. I now have 2 apps in the app store, with another on the way this week likely.

20
ftwynn 22 hours ago 1 reply      
I've started and stopped a number of times. Mostly I don't have an itch to scratch that pushes me to make anything interesting.

I find myself particularly struggling when language walkthroughs get to libraries and code organization. Follow all the paths and dependencies is really tough for me.

21
conductr 23 hours ago 0 replies      
I learned. Then realized the value of having good ideas for what to work on.
21
Ask HN: Good alternatives to screen/tmux to persist long term jobs?
3 points by aashidham0  1 day ago   6 comments top 4
1
0942v8653 1 day ago 0 replies      
I can't remember if it has the buffer space you want, but take a look at dtach. https://github.com/djpohly/dtach/blob/master/README
2
stephenr 1 day ago 1 reply      
If it's a one off isn't this exactly what nohup is designed for?
3
mattkrea 1 day ago 0 replies      
Either write programs that daemonize themselves or write upstart/systemd services
4
malux85 1 day ago 0 replies      
supervisor?
22
Ask HN: Specializing in a technical domain
11 points by votr  1 day ago   2 comments top 2
1
jventura 8 hours ago 0 replies      
I specialized in NLP as well (did a PhD and wrote some papers about it), but could not find any job here where I live, so I reinvented myself as full-stack web developer. But web dev is a freaking never-ending never-stable world, so I'm quite sure that pretty soon I'll move back to NLP or general AI..
2
throwaway_105 1 day ago 0 replies      
I am also curious to know, what are some things which would be worth specializing and hold great value for the future? (Of course, it is hard to predict the future, but would just like to know what the HN community is betting on)
23
Ask HN: Advice needed regarding TDD from programmers
4 points by supersan  1 day ago   5 comments top 5
1
sidcool 1 hour ago 0 replies      
I prefer Test driven Development rather than Test First Development. I can't think with tests first. I do a mix of both. In the end I ensure my code has good coverage.
2
twunde 1 day ago 0 replies      
You can definitely write successful applications without tests of any sort. However, as your application becomes more complex, it becomes more and more likely that you'll find it difficult to make changes without breaking something else (especially as developers cycle through the codebase). Tests become significantly more important if you're planning on creating and supporting projects for 6+ months

Now the good news is that you don't need to use TDD. Tests of any kind do make a difference, even if you have to write them after you've coded up a solution. Tests should be testing the most important parts of your application or the trickiest parts. Tests are there to give you confidence that your code does what you think it does AND to ensure that you don't accidentally cause regressions. If your application wasn't built with testing in mind, use test data or use a BDD tool like codeception.

I don't find TDD to be necessary but I do find tests necessary. It along with automated deployment can increase the quality of your code by an order of magnitude.

3
cauterized 1 day ago 0 replies      
I've absolutely built projects without tests, let alone without TDD. They eventually became overloaded with tech debt. That said, the wrong types of tests can become a straitjacket instead of a support system.

I don't particularly enjoy TDD, where you write the tests first. I do enjoy what I call test-oriented development, where code doesn't get merged without tests, and automated testing is how you verify any changes before committing them (though for UI and workflows you should always have an acceptance testing stage). It goes a long way towards making me feel confident in my code; it gives me a structured point in my workflow to consider what the edge and corner cases might be and how to deal with them; and it often helps me catch and verify fixes for subtle (or not so subtle) bugs much sooner and with a lot less effort than click-throughs would.

Edited to add: you say you spend a lot of time mocking databases and such. I usually plan to have a DB available for testing. Django in particular makes this easy by building an empty DB scheme for each test run and running every test in a transaction that gets rolled back so that the DB is in a known state for the next test. Some things you may just want to use instead of mocking, especially if they don't require running an additional process (sockets seem like an example of that to me, depending on what you're doing with them).

For other interfaces (especially third-party web APIs), look for libraries in your language that will let you mock requests, specifying responses. If there isn't one, build one for re-use, use it for all your projects, and release it open-source. That'd be a great way to earn some visibility in your ecosystem.

4
supersan 9 hours ago 0 replies      
Thank you everyone for your replies. After carefully reading all opinions I think that TDD is the way to go because for larger projects sooner or later it will help me catch bugs when the project becomes complex. I also think that the 2x effort will be worth it with easier deployments.

I was kind of giving up on TDD but seeing that almost everyone thinks it is important (for larger projects), I will try to watch some more videos and try to write tests for my current project (for the work already done) and tests first for the code that hasn't started (maybe I'll add comments in the tests). This way I can compare the two, with which approach suits me better and fails more (i.e. catches more bugs) in future.

5
afarrell 1 day ago 0 replies      
I really enjoy TDD when I get into the rhythm, but I've found that setting up the infrastructure can be a real barrier, especially for a language/framework that I've never worked in.

However, I have written code without it and I frequently find that when I do so, I very quickly regret it. Either I get confused about what precisely I'm doing or I end up having to write tests after-the-fact and it is much harder. The barrier is worth overcoming. How?

1) Find good tutorials and work through them.

A lot of people say that the best way to learn something is just to dive in and build something. I disagree, at least when that thing is new to you. I find it is much better to find a tutorial that guides you through building something the first time. It is worth asking around on twitter or on a relevant subreddit for this. Then, don't just read--actually work through at least a good chunk of it. Once you've done that you have some code you can look back on when you are looking for the basics of how to set up your tests.

2) Don't worry about mocking as much in the beginning.

The purpose of mocking is to avoid having the test take a long time to run due to the machine spending a bunch of time working on other things. Given that you are waiting on the machine when you run your test, this is actually meaningful. So, mocking intelligently can be a win if you it saves you that time. However, it also has the downsides that it can take a lot longer to write the test and it can make your test more brittle. For that reason I find it often makes sense not to mock and just write a bunch of tests that do in fact (for example) hit the database. This is especially a good idea with a new language where trying to use 7 new libraries at once (cough javascript cough cough) is going to lead to confusion.

Also note that TDD doesn't really work if the code is already written because doing fine-grained tests for code that is already written is really hard. It is better to do interface/API tests and put off unit testing until you are willing to refactor the code.

Note also that there are some tasks where your tests are going to be more like infrastructure tests and your changes won't be quite as granular as TDD doctrine dictates. That is something you have to accept when everything is coming together, because that is the realm of integration tests.

There is a tutorial I've written which aims to teach this alongside teaching configuration management, though it is my first tutorial. I would love critiques of the pedagogy and example code. https://amfarrell.com/saltstack-from-scratch/

24
Lastpass not using certificate pinning, wut?
3 points by johnflan  1 day ago   8 comments top 2
1
smt88 1 day ago 1 reply      
I've always been surprised that anyone thinks shared cloud password databases are safe. You'd have to trust that service so completely.

My suggestion is to use KeePass and store your database in a zero-knowledge, self-hosted cloud with end-to-end encryption (and also secure it with an offline private key).

If setting up that cloud storage sounds like too much trouble, SpiderOak is a good centralized, zero-knowledge service.

2
SubiculumCode 21 hours ago 0 replies      
is this real?
25
Does the whole Thiel vs. Gawker thing trouble you?
33 points by bitinn  3 days ago   30 comments top 12
1
tdburn 3 days ago 2 replies      
There is a big difference here. In China the press is censored by the state. In this case Gawker was allowed full freedom by the state to print what they chose. But the individual who felt his privacy or whatever was damaged sought redress through a Civil trial. The press has many protections for what they write, where an individual has little ability to fight back when they have been wronged. And it takes lots of money to fight such a case, and I bet many such cases fail. And even having a large backer does not guarantee success. This is not a perfect system, but it is not censorship.
2
pythia__ 2 days ago 0 replies      
It doesn't trouble me at all from the perspective of this being something Thiel can do that I can't. As long as billions mean something billionaires are going to wield more power than mere morals. From my standpoint, moreover, this is far from the worst use of private donations for an "activist" cause.

As for it being censorship, this event is not properly comparable to the government censorship of speech in China. Read http://www.paulgraham.com/say.html if you haven't. In the US what you can say is restricted through informal, "softer" means like social pressure, which would make it like most places if not for the fact that American cultural institutions are the most powerful in the world; those institutions, in turn, have a complicated relationship with the government. Briefly, American billionaires like Thiel have nothing on the American media or universities in terms of their ability to influence what people think. Government, media and academic opinion form a feedback loop.

There is (thankfully, of course) no Great Firewall of the United States but in practice American thought rarely deviates from the government-approved norms.

3
hirundo 3 days ago 0 replies      
It is a strength of the U.S. system that outsiders to a case can contribute toward it. That's as true when the outsider is a private individual with a grudge as when they're the ACLU or Sierra Club. It is a weakness of the U.S. system that a jury has the power to destroy a company with excessive judgments, as in the Hulk Hogan case. I don't have the solutions to this, but I am clear that one of them is not to limit potential plaintiffs to their own resources.
4
smt88 3 days ago 2 replies      
The troubling part, to me, is not the case itself. I personally don't believe the sex tape was newsworthy (at least not as much of it as they released).

The troubling part is that we have someone secretly using money to manipulate a case in which he is not a direct participant.

Wealthy people should not be able to weaponize our legal system.

5
waterphone 3 days ago 0 replies      
Yes, it definitely does. There has been a recent shift in the past decade or so among a lot of people, I've been noticing, where respect for strict freedom of speech and press has been in decline. A loss of the ideal of "I may disagree with what you say, but I'll fight to the death for your right to say it".
6
wmil 2 days ago 0 replies      
The thing is that there's already a huge amount of manipulation by billionaires. Read up on George Soros and Carlos Slim.

Thiel funding a lawsuit against a website that specifically wronged him is so mild that it's just not worth getting upset about.

To me the story seems to be that Gawker was wealthy enough to crush libel and slander lawsuits for years. But in the end, there's always a bigger fish.

7
commentzorro 3 days ago 1 reply      
I'm loving it because Peter Thiel is a f-ing billionaire who is now publicly showing what the 1% of the 1% are capable of. The power that these 0.01% have is staggering. To see what they're capable of with just a few million dollars is truly awesome. And the very best part is that there absolutely nothing we can do about it anymore. We're now officially owned by the 300!
8
auganov 2 days ago 0 replies      
The only unsettling part to me is the cost of litigation.

Assuming the legal system is just, I don't have a slightest problem with whoever funding or managing a lawsuit, revenge-seeking or not.

And comparing an invasion-of-privacy (or libel and slander) lawsuit to opaque state censorship is a huge stretch.

9
xbmcuser 2 days ago 0 replies      
The problem is not that Thiel financed Hogan the problem is that Hogan needed the money to do so that's where us justice system seems as fucked as anywhere else in the world.
10
kqia040 2 days ago 2 replies      
I feel like hes allowed to do what he wants with his influence/money/connections. If I fell victim to defamation by a news outlet and I had the ability to put a stop to it, I would.
11
max_ 2 days ago 1 reply      
Nick Denton kicked the hornet's nest with his article on false claims of Peter Thiel being gay.

Now he is going to get stung.

12
matttheatheist 2 days ago 0 replies      
Good old-fashioned revenge. What's not to like?
26
Ask HN: What do you want to unlearn or relearn in 2016?
13 points by 8sigma  3 days ago   1 comment top
27
Ask HN: How to set up a minimalist professional web page these days
18 points by ACow_Adonis  3 days ago   21 comments top 16
1
achairapart 3 days ago 0 replies      
1) Use a service like SquareSpace or Medium, no dev involved.

2) Use WordPress: just pick a simple, one purpose theme and avoid bloated ones (ie ThemeForest). It requires a LAMP/LEMP stack.

3) Ghost is an alternative blogging platform with minimalistic and usually well designed themes. It runs on Node.js.

4) Pick one of the many static site generators based on the language of your choice. They require no database and only need basic static hosting: https://www.staticgen.com/

2
_RPM 3 days ago 1 reply      
Mine is a true home page. There isn't anything on their but hand written HTML that contains links to my online stuff. Not really anything special. It also contains a picture of myself and my email. I wrote some obfuscated javascript to write my email to the document.
3
avail 3 days ago 0 replies      
I wrote my homepage[1] in about an hour (with bits and pieces of js borrowed). I used to have a wordpress blog styled exactly the same, but I never posted on it so it is gone now.

I by all means don't think this is 'professional', but I doubt what you want to make would need much more work than I have done.

These days there's resources for everything, webservers which have really good proxying if you want to code in a language other than php or manually writing html, pre-made 'article-writing software' in many languages made for the web.

Tools? All you'd need is notepad, or nano (or, your preferred text editor)! You shouldn't need to run compiled code for the web, in my opinion, as there's no noticeable speed differences.

Googling for specific things in a specific language will probably give you results, e.g. 'nodejs blog' will land you to Hexo[2], which really neat, customizable, and fast.

[1] https://avail.pw[2] https://hexo.io/

4
mdorazio 3 days ago 1 reply      
Can you provide more detail on what you're actually looking to post and how much functionality you want to include?

On the lowest effort end, squarespace is a pretty decent option for getting something that looks nice up and running quickly without needing to deal with server stuff. It works for several colleagues, but has some flexibility limitations.

The next step up would probably be a Wordpress installation either on your own server or the lower-effort hosted solutions from wordpress.com. Personally I can't stand wordpress (it's become immensely bloated and keeping it updated and all your plugins/themes/whatever in sync and playing nicely can be a pain), but it works well for a huge number of people.

After that you're looking at rolling your own custom page on your own server, maybe a simple themeforest template on a shared host. I don't recommend this approach these days unless you're itching to get your hands dirty with some code whenever you want to update something.

5
probinso 2 days ago 0 replies      
If you do not want to see yourself as web developer, you can often find free templates that are simple HTML CSS. You can either use this as your template depending on the license, or create a derived piece.

I use Dynamic DNS and a lamp(hp) server hosted on a Raspberry Pi.

This cost me a total of $10 a year + trivial Electronics costs.

My site consists of 0 interactive parts. I have no use of a database . It only lists work that I've done, Often linking out to GitHub repositories.

6
bobwaycott 3 days ago 0 replies      
There is a plethora of static site generators in just about any language, nearly all of which have some decent-looking templates you can use. Then managing your site is just a matter of writing markdown for text content, and pushing it up somewhere for hosting. Github can handle this, as can many other services (e.g., S3).
7
kelt 1 day ago 0 replies      
I went this route for a simple web pressence:

- html theme from themeforest

- amazon s3 for hosting the static files

- linked a domain

- used formspree.io for the contact form

Not much traffic, couple of cents a month. I don't do much updating too. Worked well for me.

Good luck!

8
LarryMade2 3 days ago 0 replies      
I like dokuwiki - https://www.dokuwiki.org/dokuwiki#

You can use a CMS template to make it blog like, lets you do nice formatting no cruft.

Here my use of it (need to do some updating, been a while):http://www.portcommodore.com

Heres a good example page:

http://www.portcommodore.com/dokuwiki/doku.php?id=larry:proj...

9
bbcbasic 3 days ago 0 replies      
Just to throw a few numpty options out there we have Wix, Wordpress.com, Blogger.

Then there is Github pages and some people have created template repositories that you can clone or fork that look rather nice and are easy to post content to if you just learn Markdown which takes five minutes

E.g. https://github.com/barryclark/jekyll-now

10
snehesht 3 days ago 0 replies      
If you just need a blog try this https://posthaven.com

However if you need an intro page I would suggest wordpress, they have a hosted one too, incase you don't want to deal with server stuff.

p.s My site https://snehesh.me is built on react and nginx

11
bigmanwalter 2 days ago 0 replies      
My choice right now is to build a small Django site with a sqlite db backing it. This way you get a free admin dashboard for updating the site. For the theme, grab something from www.html5up.com
12
kirankn 3 days ago 0 replies      
I would suggest Jekyll on Github pages with a custom domain and possibly Zoho for custom email. All this is free and can be setup on a quiet Sunday afternoon.
13
walrus01 3 days ago 0 replies      
What is your level of proficiency with Apache/php/mysql? There are some good minimalist WordPress templates that do not look like a blog.
14
sheraz 3 days ago 0 replies      
Wix, weebly, or square space. Done and done.

I'm a dev and would doing it if I were not such a cheap bastard.

15
peternicky 3 days ago 1 reply      
Check out codepen and/or GitHub pages...very simple and flexible.
16
marvel00legend 2 days ago 0 replies      
Try WIX
28
Ask HN: Are you a programmer with Parkinson's?
32 points by septerr  4 days ago   19 comments top 11
1
hanschagi 3 days ago 1 reply      
Having been diagnosed with Parkinson's 15 years ago at age 36, I today still have no mental limitations and I can concentrate the same way as I could before the diagnosis (as has been tested several times by neurologists). Among other tasks, I am still programming and leading development teams. It seems to me that programming is the ideal job for someone with Parkinson's since one can do it independent of the fact that some motoric skills such as walking are reduced or one's voice is not so crystal clear anymore. I learned from my own experience that an illness or handicap does not mean to drop out of the professional world, in contrary I made very good experiences with ill/handicapped colleagues and employees since they are usually very dedicated. The most important thing from my view is to address any and all issues related to such a condition in an open, respectful manner so that your ill colleague does not feel pressed to hide problems and ask for help concerning things like commuting to work etc. (sorry for my inelegant English, it is not my mother tongue).
2
trcollinson 4 days ago 1 reply      
I do not have Parkinson's but I have a form of Muscular Dystrophy which acts a lot like Parkinson's (to the point where a number of people get it confused). In some ways I have been quite lucky; mine began to show signs when I was born and has progressed slowly my entire life. It causes tremors, spasms in my hands and arms (and neck and eyes), and muscle weakness. Because of the progressive nature I don't really notice it. Your body is amazingly good at adapting to things even rather quickly progressing things.

Luckily we don't move a lot in this business. I might type slightly less quickly than most people (though I am actually quite a fast typist, I think it's slowing with age), and I might make more typos (thank goodness for IDE's which help correct things like that!) Ultimately I can code all day without much problem at all. Maybe other engineers are less tired at the end of the day, but who knows? I can only judge how I do based on my own experience.

The one big problem with Parkinson's is that it can have cognitive effects. I have read that it can cause dementia and other issues. This could obviously effect coding.

Anyway, I am glad to answer any questions.

3
hawkeyegirl 4 days ago 1 reply      
I was diagnosed about 5 years ago. Although programming isn't my primary job anymore, I still do it occasionally and did so for at least a couple of years acceptably. The main thing I noticed is that the ability to focus on complex logic or chains of events went seriously downhill so I had to do a better job of sketching out my algorithm before I started to code and making lists and diagrams for myself. I could no longer hold it all in my mind. Medication (Sinemet) does help somewhat with the ability to focus. Also finding times each day when you are clear from distractions -- this can be accomplished by setting aside time to deal with the distractions and time when you will not deal with them. I find I can focus for maybe an hour at most now, and then I need a break. This is manageable when you know about it and plan around it. As I've moved to more managerial type tasks, it actually works out ok. If you intend to stick to strict programming, I advocate being as organized as possible. I used to have an excellent memory and it's just not there anymore, but I mostly do just fine because I've learned to be diligent about creating a task for myself for everything I need to do and not relying on myself to remember it. Good luck!
4
drostie 4 days ago 1 reply      
One thing that you guys might be interested in: there has been some limited investigation into tandem cycling as a therapy for Parkinson's, though it's somewhat anecdotal. What research there is suggests that it's about being forced to cycle at 80-to-90 rpm at a lower resistance which still keeps your heart rate up, as opposed to cycling voluntarily at whatever pace you want while being coached to keep your heart rate at the same level: 5 people who were forced to cycle at the higher RPM showed dramatic improvements in symptoms, as opposed to 5 who set their own RPM with coaching.

Since those numbers are so low, there is right now a team at the Cleveland Clinic which recruiting for a much larger study (100 people total) that they're calling CYCLE: 40 people with PD will do forced exercise on a motorized stationary bike in the lab, 40 will do voluntary exercise on a normal stationary bike in the lab, and 20 will not be directed to exercise at all in the lab:

http://www.ncbi.nlm.nih.gov/pmc/articles/PMC4415238/

This is right now still in the recruiting stage so it probably has a couple years before it yields results; but if your friend can't live in Cleveland for a year, you could try to find another way to keep yourself at the 80-90 RPM levels, whether tandem biking with your friend or else by jury rigging a motor or perhaps even self-discipline.

5
peterjpierce 4 days ago 0 replies      
Great question! I am just starting to figure out adaptations to cope with multiple sclerosis (another neurological disease) that has stolen my ability to touch type. I'll be watching here for advice, too.
6
mathattack 4 days ago 0 replies      
I have a family member with Parkinson's. She was able to work in a thought-requiring field for almost 10 years. It's gotten much more treatable in recent years. You friend might still have to get used to working at 60-80% rather than 100% though. It doesn't go to 0, but it's not 100 either.
7
uuuuuu 1 day ago 0 replies      
I hate typing, so here's a short reply. I type less every year. 6 years from diagnosis. I seek work that is more looking at stuff to find the fault, and less data entry. Voice recognition is fine for dictation, but sux for editing code.Riding my bike hard every day makes a HUGE impact on my typing speed, so a decent bike commute is mandatory for me.Glad I'm in the software biz, and not a musician or surgeon. Never thought I'd say that!!!
8
jbandela1 4 days ago 0 replies      
One thing I would do is make sure that your friend has been evaluated by a neurologist who specializes in movement disorders and not just a general neurologist. In recent years we have gained a lot of knowledge about specific neural pathways.
9
michalxnet 4 days ago 1 reply      
I suggest you to watch this talk on this years ng-conf.

https://youtu.be/mAjjI35RcUE?t=11949

10
radnam 4 days ago 0 replies      
There are nuero rehab practices and physical therapists who specialized in this area. I would start by having a conversation with one of these folks.
11
totoykhu4213 1 day ago 0 replies      
full upgradesscore 100000
29
Bizspark what did you spend your credit on?
6 points by dimasf  1 day ago   2 comments top
1
dimasf 1 day ago 1 reply      
Does anyone know if I can use BizSpark credit for purchasing SSL from them?
30
The Sharkoon FireGlider Mouse software queries and connects to some porn website
5 points by chrisper  1 day ago   5 comments top 2
1
mmastrac 1 day ago 2 replies      
Sounds like a placeholder. "serverclient.xxx.com" reads like "serverclient.something.com".
2
peternicky 1 day ago 1 reply      
Link is broken.
       cached 31 May 2016 20:05:01 GMT