Want to use my wifi? (2013) - <AUTHOR> https://thejh.net/written-stuff/want-to-use-my-wifi? <comment><USER2> >Probably the easiest, yet most powerful one is to only use the browser in incognito mode while surfing on insecure networks. This way, no information (like passwords or cookies) can leak out and no evil cache entries can sneak in.

Is only partially true. If you sign in using incognito mode your passwords and cookies will leak. And you have to remember to open the incognito window after connecting to an insecure network and close it before you connect to a secure network because the cache and cookies are maintained until you close the window.

<comment><USER3> Here is an interesting dilemma: should HSTS persist in incognito mode?

If not, then this becomes bad advice, because all the attacker has to do to disable HTTPS is not redirect http sites to https ones (sslstrip).

If so, then the list of sites for which your browser attempts HTTPS connections without being told to is the list of sites you've accessed in the past. This information could become a supercookie allowing sites to identify and track you even in incognito mode.

[https://nakedsecurity.sophos.com/2015/02/02/anatomy-of-a- bro...](https://nakedsecurity.sophos.com/2015/02/02/anatomy-of-a-browser- dilemma-how-hsts-supercookies-make-you-choose-between-privacy-or-security/)

<comment><USER4> This is possible! HSTS does apply to incognito to my knowledge

Here's a project that uses this fact to look up browser history: [https://github.com/diracdeltas/sniffly](https://github.com/diracdeltas/sniffly)

<comment><USER5> At least it only works on chromium-based browsers. Firefox fixed the supercookie problem when opening up a private browsing session back in Firefox 34.0.5 after it was discovered.

Which then makes the HSTS preload list and HTTPS Everywhere extension all the more valuable to defend against active attacks.

</comment></comment></comment></comment><comment><USER6> My solution has always been to use a VPN, not just on an untrusted network but on _any_ wireless network (for any comms using an insecure protocol any wireless network, even one run by yourself to the highest standards, _is_ an untrusted network anyway). When WEP was broken it didn't affect me because the WLAN was just a transport and my traffic was protected by the VPN. When WPA was broken it didn't affect me because the WLAN was just a transport and my traffic was protected by the VPN.

Of course this creates two problems which make it impractical for the man-on- the-street: choosing the solution and host (in my case OpenVPN with end-points running on my home network and a hosted VM as a backup in case that link is down) and keeping yourself (your server, your client, your configuration) up- to-date as new exploits are found. But I'm not a man-on-the-street in this instance so it works for me. There are a number of solutions that claim to provide out-of-the-box methods that the untrained can use without any effort, but there is still the "which service do I trust?" issue to contend with from both security and reliability points of view.

A side problem is client support on devices, particularly mobile phones, though from my selfish PoV that is a lot easier now: OpenVPN seems reliable on my Android devices, Windows Phone is effectively dead, and I never had an iDevice so haven't needed to care. The final problem is a human one: remembering to turn it on if you don't have ti on all the time automatically.

The same works when providing wireless access to or via a network you care about, such as wireless access in an office environment. The access point could be left as open as open can be (though security in depth: there is no harm in turning WPA2 on as an extra layer of protection) but don't let it route _anything_ that doesn't look like your VPN traffic and let the VPN handle security.

If you need to provide wireless access for guests (visiting clients for instance) have a separate WLAN with all the usual protections that doesn't route to your other local network legs at all (without going out and back in via a VPN of course). Beyond that, their security is their problem.

<comment><USER7> There are two places where I found this approach problematic because I want to VPN to my home LAN.

First, client devices with OpenVPN don't support tap only tun. This means that when I'm not home, I can't e.g. my home NAS, etc.

Second, like most Americans, my home internet connection is dog slow. I get 80/5 Mbps. The 80 is tolerable, but the 5 is a drag. Surfing the web when first I have to VPN home...

Bonus problem: even with a business ISP setup, I am still under restriction with what I can do with my own IP address, can't get a static IPv6 allocation, etc.

<comment><USER6> I'm lucky enough to reliably see 76 down 17 up, the best you can get for a residential location in the UK generally unless FTTP is available to you, which is more than sufficient for most of what I do (mail and other mainly- text-with-some-images comms, HN, StackExchange, shopping, SSH & remote desktop or equivalent for various admin). On shared wireless or 3G/4G getting 17+ as a sustained rate is pretty rare in my experience anyway. And I've got a couple of static IPv4s play with, and a /48 IPv6 should I ever get around to using that properly, which I can do pretty much anything I like with and the ISP doesn't shape traffic beyond basic QoS measures either. It isn't a cheap connection, but nice...

Another advantage of the VPN endpoint being at home is that location sensitive applications think I'm there. This seems to reduce "are you a human?" checks in some places, and extra "characters 3, 9, and 11 from your password" requests during credit card payments.

One extra disadvantage, that doesn't affect me but would be a concern to someone gaming or taking part in other timing sensitive tasks, is extra latency, but you'll experience that on any VPN.

I've not found lack of tap support an issue, as I've only needed TCP & UDP via IPv4 anyway so normal routing options over tun do the trick. The lack of local broadcast support can break name resolution in some cases but that is nothing I can't fix with a hosts file entry or static hack in the LAN's DNS resolver.

</comment></comment></comment><comment><USER8> Mirror: [https://web.archive.org/web/20180104070103/https://thejh.net...](https://web.archive.org/web/20180104070103/https://thejh.net/written- stuff/want-to-use-my-wifi)

<comment><USER9> Thanks

</comment></comment><comment><USER10> FYI, this piece is from Jann Horn - known for the recent intel cpu bug disclosure at Google project zero.

</comment><comment><USER11> Discussed at the time: [https://news.ycombinator.com/item?id=6766106](https://news.ycombinator.com/item?id=6766106)

</comment><comment><USER12> So using HTTPS seems to mitigate everything in this article?

<comment><USER3> Well, sslstrip still likely works on websites that don't use HSTS, or that you're visiting for the first time. I suppose the HTTPS Everywhere plugin might mitigate this.

Do any browsers try https first yet?

Now that I think of it, I guess many search engines now use HTTPS with HSTS and will send you straight to the https site if it knows of one, so that's good.

[https://moxie.org/software/sslstrip/](https://moxie.org/software/sslstrip/)

<comment><USER13> If I'm using a wifi network I don't really trust (coffeeshops, airports, etc.), I'll turn on HTTPS Everywhere and further enable "Block all unencrypted requests," effectively giving me "HTTP Nowhere."

This works for most things - for a few things I'll open an incognito window in Chrome, which simultaneously turns off extensions and doesn't send my original cookies, and I'll be careful about what I do in that window (certainly no logins to sites I care about). This is generally enough for e.g. reading some random news site that doesn't support HTTPS at all.

<comment><USER14> Can I ask why you don't [seem to] use a VPN?

The reason I ask is, I'm under the impression that a VPN definitively mitigates this kind of attack. I'd have to change my habits if it turns out a VPN is not a one-stop-shop solution for this kind of attack. And, in case convenience matters to you: an enabled-by-default VPN is also less configuration and fewer manual steps than turning on HTTPS everywhere and blocking all unencrypted requests.

<comment><USER13> I haven't evaluated VPN providers enough to decide if there's one I trust. An evil VPN (or an insecure one taken over by evil people) is in an extremely easy position to MITM my HTTP traffic: it's technically easier than MITMing wifi traffic, and they also know my identity (either because I paid with a real-world identity, or they have logs of where I'm connecting from and what I'm connecting to).

For performance reasons I don't want an always-on VPN; I trust my home wifi, my phone's hotspot, etc. at least as much as I trust any VPN I could use, so I wouldn't get any benefit from it.

I suppose the thing I should actually do is route over an SSH SOCKS tunnel to some server I control, which would work fine.

(A thing I have wanted for a while is a configuration that does this for HTTP and lets HTTPS through normally for performance, which now that I think about it, I can probably just write a proxy PAC file to do ... thanks, I'll see if I can improve my setup.)

<comment><USER15> Use Algo on a droplet.

<comment><USER16> how secure is it?

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> An even easier way is to subscribe to a reputable VPN. There are often various sales where you can pick up annual packages at steep discounts. Having a VPN is also useful for troubleshooting network connectivity, and bypassing content-based throttling.

I like Private Internet Access.

<comment><USER15> Run Algo on a droplet.

[https://blog.trailofbits.com/2016/12/12/meet-algo-the-vpn- th...](https://blog.trailofbits.com/2016/12/12/meet-algo-the-vpn-that-works/)

<comment><USER18> Any reason to use droplet in particular over other vms?

<comment><USER19> The price is competitive but I've found another important factor when VPN shopping for VMS's is if that data center tends to be abused by scraping projects.

Craigslist for instance is very slow when accessing via a VPN on Digital Ocean but quick when accessed via one hosted on Rackspace.

Google Scholar may send you through captcha hell for 10 rounds or so every few minutes if you're hoping on from a fishy ip.

The only time I had trouble with sites protected by Cloudflare was when viewing through Tor or AWS.

</comment></comment></comment></comment><comment><USER20> > _Probably the easiest, yet most powerful one is to only use the browser in > incognito mode while surfing on insecure networks. This way, no information > (like passwords or cookies) can leak out and no evil cache entries can sneak > in._

This isn't true, as incognito can leak cookies. The proper mitigation is for site and app designers to use cert pinning.

</comment><comment><USER21> All of this and more has been explored with BEEF. An easy way to demonstrate these sorts of attacks is with BEEF + MITMF.

[http://beefproject.com/](http://beefproject.com/)

[https://github.com/byt3bl33d3r/MITMf](https://github.com/byt3bl33d3r/MITMf)

</comment><comment><USER22> I believe that it's that site's responsibility to set the cookie's secure attribute. Otherwise I'm surprised nobody mentioned disabling 3rd party cookies as a mitigation on the client side. Using a VPN provider, a VPS or even your self-hosted VPN in your home (your home ISP) is just choosing who you trust.

</comment><comment><USER23> Aren't all these problems that exist for all unauthenticated traffic, wifi or not?

</comment><comment><USER24> What about browsing over tor?

<comment><USER25> tor isn't a VPN service, it's an anonymizer. The end node could still sniff your traffic presumably.

<comment><USER26> _The end node could still sniff your traffic presumably._

The same is true on a VPN. Tor is no different, except it adds extra layers for anonymization.

<comment><USER10> It's been shown more than once that this does happen frequently.

[https://motherboard.vice.com/en_us/article/mgbdwv/badonion-h...](https://motherboard.vice.com/en_us/article/mgbdwv/badonion- honeypot-malicious-tor-exit-nodes)

[https://www.wired.com/2007/11/swedish- researc/](https://www.wired.com/2007/11/swedish-researc/)

<comment><USER26> Yes - my point is that the VPN is itself an exit node too.

</comment></comment></comment></comment></comment><comment><USER27> How I Learned to Stop Worrying and Love the VPN</comment>


Affordable Injection Molding Transforms Tinkerers Into Tycoons - <AUTHOR> http://www.wired.com/design/2013/01/protomold/?pid=1799&viewall=true

<comment><USER2> I think this service (and the associated milling service) is much closer to what a product designer needs in moving their idea from paper to production than any current 3D printer on the market. I'm surprised this is the first time I've heard about it.</comment>


Not even making it to the airtight hatchway: Execution even before you get there - <AUTHOR> http://blogs.msdn.com/b/oldnewthing/archive/2011/12/15/10247870.aspx

<comment><USER2> If the clearly ill-informed ramblings of idiots causes multiple Microsoft developers, at least one of them very senior, to waste a week, I think I've found a IRL DDOS vector into their dev process...

<comment><USER3> If you really wanted to attack their vuln-investigation processes, you would simply let them conduct business as usual since it seems they don't know how to triage potential vulnerabilities. If you force the issue by conducting a DDoS, they will respond by developing a better triage system that de- prioritizes crank vuln reports more quickly. Not only will this defeat your DDoS attempt, but it will make them more effective at handling vuln reports going forward.

</comment></comment><comment><USER3> Those two "reported vulnerabilities" are clearly not vulnerabilities. Whoever spent 5 days investigating these "vulnerabilities" should be embarrassed instead of blogging about it. The blogger, Raymond Chen, is somehow claimed to be "Microsoft's Chuck Norris" <http://microsoftjobsblog.com/blog/raymond- chen/>

<comment><USER4> Raymond explains why the vulnverability investigation took so long, in his reply in this comment: [http://blogs.msdn.com/b/oldnewthing/archive/2011/12/15/10247...](http://blogs.msdn.com/b/oldnewthing/archive/2011/12/15/10247870.aspx#10248173)

<comment><USER3> Add together these three statements the author made:

(1) The vulnerability report exists in the "shadowy ground between the reports that are clearly crackpot and the reports which are clear enough that you can evaluate them with confidence" (from the blog)

(2) "Oh, we recognized it immediately. But it was so obviously wrong that we began to fear that we were missing something." (from the comments)

(3) "this entire investigation took five days to complete, plus another day or two to complete the necessary paperwork." (from the blog)

This blog post paints a picture that Raymond's organization does a bad job triaging reports and prioritizing investigations. It's a waste of five days to analyze an "obviously wrong" vuln report, just on the off chance that there is something deeper. How about spending five minutes emailing the author of the vuln report, explaining why it doesn't appear to be a vulnerability, then asking if there is anything deeper?

It's also crazy to spend a day or two filling out TPS reports on a crank vulnerability alert.

If an organization takes security seriously then it should spend increasing amounts of time on increasingly plausible vulnerability reports.

<comment><USER5> Those 'five days' and 'another day or two' could easily include time spent waiting on a queue, of course. In which case, it could be only a few tens of minutes of actual time would be spent on the report.

</comment></comment></comment></comment><comment><USER6> The title made me think of some scenario from the movie "Cube"</comment>


Akasha First Impressions - <AUTHOR> http://www.ryanyosua.me/akasha-first-impressions/ <comment><USER2> > Akasha stores users' files on IPFS instead of a centralized server which > means that a government could not simply block access to a single server to > shut down Akasha.

If you live in the Western world (like almost 80 % of internet users) and you're not a silicon valley type, this is a non issue because Western governments don't really go around shutting down social networking sites. In fact I can't think of a single case of them having done so despite social networking site like 4chan and 8chan which have really pushed the envelope when it comes to content.

Even if you target the small percentage of people in the developing world, it still won't matter - because these people are more concerned about their government blocking the site than they are about some government closing the website completely.

>pay you to post

People use social networks to socialize, not to profit. I'm not saying that profit motive can't be a secondary motive - but given the relatively small amounts of money you can pay people per post, it will never be a very strong motive.

This is not the first social network to think paying people for posts and it won't be last . . . but it will be wrong in thinking it can motivate people to use it with the promise of a few measly dollars.

And this should be obvious from the fact that every single social networking site that is popular (with the exception of youtube) does not get users by offering the cash to post. And even youtube never really got users with it's partner program. Partnership incentivezed people to spend more time on high quality videos - something that doesn't work for social networks - how much time and production could you possibly put into a social networking post?

</comment><comment><USER3> Out of curiosity: what is the inspiration for this name? It's means sky in Sanskrit.

<comment><AUTHOR> From their website:

As a word, AKASHA ( [aːkaːʃə], आकाश) has roots in Sanskrit and means "ether" in both its elemental and metaphysical senses. The ancient Sanskrit-speaking civilization envisioned akasha as a metaphysical information network connecting humanity with itself and infinite knowledge. In this paradigm, thoughts, ideas, feelings, and experiences are stored forever and shared through the ether, which acts as an universal field connecting multiple planes of existence. Thousands of years later we have created a modern information network openly connecting humans with each other and perpetual knowledge. As a decentralized application AKASHA deploys a next-generation information architecture born from the fusion of Ethereum and the Inter-Planetary File System. Thanks to these technologies we were able to create a planetary-scale information network immune to censorship by design, where your thoughts and ideas will echo throughout humanity's existence.</comment></comment>


Citrine: Localized Programming Language - <AUTHOR> http://citrine-lang.org <comment><USER2> I don't get it at all. Nothing stops you from writing you code in your own language in most other prog langs (as long as it has unicode support). The reason a lot of us chose to write in English is because we want to share our code and English is the most universal lang we have right now. As a non native English speaker I most definitely see the problem in this but it is also an imperfect world and communication is one of those problems which will never have a perfect solution.

Programming languages should imo from the offset be steps ahead of this. They have simple rules that can be parsed despite understanding the subjectives. I could probably understand some rust code written in mandarin after studying it for a while. In our line of work it is important with clear communication. Spoken languages are not good ways of accomplishing that.

</comment><comment><USER3> I've said too much about this subject in the past [1], but my litmus test for "localized" programming languages is a Korean support (both because I speak it natively and because it is very much different from most Indo-European languages). It spectacularly fails. At the very least it is evident that Citrine only ever cares about languages with prepositions (e.g. `x on: 'greet:' do: { ... }`).

[1] [https://news.ycombinator.com/item?id=21352775](https://news.ycombinator.com/item?id=21352775)

<comment><USER4> "Citrine only ever cares about languages with prepositions"

You're confusing keyword/identifier localization for natural language. I agree with everyone who says NL is the wrong problem to solve, but that's not what Citrine is attempting to do.

Look at it this way: Citrine code is NOT natural English either. At most, it is a sort of "pidgin English" where individual words can be readily understood but the grammar is wholly artificial.

For instance, a Chinese or Japanese dialect should continue to use whitespace to separate identifiers. It's a programming language, not a natural one, and that difference is the point. Trying to "fake it" leads to dead-end mistakes like AppleScript. Trying to do it for real creates exactly the sort of ambiguities and imprecision that a programming language is meant to eliminate.

It's about finding the right compromise between human accessibility and machine precision, and anything that breaks down barriers between the traditional US English-dominated programming world and the billions of humans who speak something else has got to be a step in the right direction.

<comment><USER3> I definitely agree that localized languages can only reflect a _subset_ of human languages (and it's of course true even for English-based languages), but that doesn't make my point moot. If the author did really care about other languages and wanted to pursue the fixed syntax, every identifier should have been strictly nouns or verbs and nothing else; for example (say) `animate(source: X, target: Y)` instead of `animate(from: X, to: Y)`.

<comment><USER4> "every identifier should have been strictly nouns or verbs and nothing else"

Totally agree. TBH I don't think the authors' enthusiasm, while admirable, is quite matched by their knowledge and experience. A bit more up-front learning could probably save them disappearing down some obviously wrong paths.

As you say, they should focus on verbs and nouns, and getting those to machine-translate precisely. Nailing that would be a big deal just in itself. If they later want to experiment with adding prepositions to make code read "more naturally", make the system add those on a per-language basis according to per-language rules laid down by native-language speakers.

Thus in English the method signature might present as `animate(from: source, to: target)`, because that's what English readers expect and like. But that doesn't mean that `from` and `to` should be translated to every other language, because that's just an exercise in cutesy-clever nonsense, burying what is significant under what is not, and software already suffers from more than enough of that.

</comment></comment></comment></comment><comment><USER5> The site isn't clear on it, but from downloading the translation package ([http://citrine-lang.org/downloads/headers.tar.gz](http://citrine- lang.org/downloads/headers.tar.gz)), it seems translation is a simple string replacement. I don't think that's enough to cover all languages.

[https://en.wikipedia.org/wiki/Non-English- based_programming_...](https://en.wikipedia.org/wiki/Non-English- based_programming_languages#Modifiable_parser_syntax) has a list of languages that do at least as well (I think AppleScript tried to do better, but can't find examples)

Of course, switching language for the programming language itself won't translate identifiers, so multi-language teams still will have to decide on the language(s) used for those.

<comment><USER4> "it seems translation is a simple string replacement. I don't think that's enough to cover all languages."

Honestly, simple string replacement isn't good enough to cover _any_ languages. Homonyms and synonyms, anyone? I suspect machine translation will be harder with code simply because there's a lot less contextual information around individual words compared to ordinary prose with which to make a best guess as to meaning.

"I think AppleScript tried to do better, but can't find examples"

Dr Cook's HOPL paper on AppleScript gives an example of French and Japanese dialects (p20; can't it paste here as it's an image):

www.cs.utexas.edu/~wcook/Drafts/2006/ashopl.pdf

Not really the same thing as Citrine as it relied on manual localization of an application's resources (custom keywords defined in AETE terminology, vs labels and tooltips on GUI controls). And, as you say, it did not do anything to localize user-defined words.

In any case, AppleScript is a really good example of how NOT to design an accessible language syntax. All the rigidity and tolerance of a machine language, with all the complexity and ambiguity of a natural one faked on top. (Plus all the fun that comes with arbitrary keyword injection—argh.)

This is why I say _artificiality_ is good. Humans aren't after Shakespeare, they're after high-level understanding of program code.

<comment><USER5> _"Homonyms and synonyms, anyone?"_

I think, for this case, that's mostly solvable by being careful to not make assumptions. For example, you should create separate translation strings for the 'for' in "for…in" and in "for…each", and for the 'define' in "define function" and "define procedure".

Also, when (not if; if your language is successful, it will happen) translators report problems, you should 'simply' not hesitate to introduce new 'clones' of to-be-translated words.

Even ignoring languages with different word order, that wouldn't make things perfect. For example, there will be languages where the correct way to say "define" depends on the (perceived) plurality or gender of the function name.

I think the correct way to handle this is by letting the translator produce a grammar for your language that produces the same tokens as the 'original'. That probably is beyond many would-be translators, though.

</comment></comment></comment><comment><USER6> This is just silly. The whole point of having an abstraction like a higher level programming language is so that we can all work together on tasks instead of spending time on language details.

Unless you are working on an isolated system in an isolated setting that will be destroyed rather than merged, none of this helps. It's the same as localised programming some people do today where you simply can't work together because you lost the most important common denominator.

</comment><comment><USER7> > Citrine is one of the first∗ embeddable∗∗, general purpose, localized > programming languages (...) designed to allow every man to write code in his > mother tongue

This concentration of asterixes had me laugh out loud. Anyhow, this reminds me of so-called "auxilliary", constructed languages of communication, which are supposed to be easy to learn all over the world for as many people as possibe all over the world. In reality though, they're almost without exception wholly eurocentric, built mostly on germanic and romance languages, which barely covers _one_ of the main language families just in europe... likewise, this citrine promises grossly more than it delivers.

Though we shouldn't stop at that; if we look away from what it claims to be, what it _is_ seems pretty neat. For education, maybe this is great.

</comment><comment><USER8> I've written once an internationalized parser for another (more established) language. As long as you can output an AST, this works.

User feedback was interesting. Some non-native speakers of English objected to this, on the basis that it was a lot easier for them to distinguish language keywords (in English) from user symbols (typically in the user's language); language acted as a kind of syntax highlighter for them.

Also, they felt it disorienting to express in their own native language programming constructs that they'd learned in English. For example when one translates "a `while` loop", the keyword `while` is often left untranslated as there is no equivalent domain-appropriate word in the target language, and the generic translations don't "sound" right.

<comment><USER4> "they felt it disorienting to express in their own native language programming constructs that they'd learned in English"

Trust me, going from natural-language English to programming-language English is just as discombobulating. (Been there, done that; made a deliberate point of remembering that experience.)

If you're only testing it with existing programmers, you're bound to skew your results because anything new and different to what they're already used to is a disruption to their established flow. As in any scientific research, designing the right control for your trial is critical to avoiding GIGO.

A better test would be taking groups of English and non-English _non_ -programmers, and teaching both of them entirely from scratch. (This assumes, of course, that each group's teaching materials have been human-localized to the same standard, and all trainers follow the same script.) That way you avoid polluting your results with preconceptions and existing biases.

Out of interest, is there any more public information of your work here? iris- script[1], my own end-user-friendly language project and obvious anagram, has a way to go before I can begin to explore localizability, but it's on the TODO list so I am collecting links to relevant material. Ta.

\--

[1] [https://github.com/hhas/iris-script](https://github.com/hhas/iris-script)

<comment><USER8> > A better test would be taking groups of English and non-English non- > programmers, and teaching both of them entirely from scratch.

In a way, we already have this test today. Most of the world's programmers are non-native speakers and, by and large, they learn programming languages where keywords are based on English. I've heard people thinking that language localization would be a cool thing, but I haven't heard anyone _complain_ about it not being available.

> Out of interest, is there any more public information of your work here?

No, my comment is all the public info there is about it. My $.02, localizability wouldn't be what I would worry about for a proof-of-concept language.

</comment></comment></comment><comment><USER9> The Chinese version looks like just bad machine translation.

`Object` is translated to `宾语` which means the grammar component _object_ in _subject, verb, object, etc_.

The `power` operator is translated to `功率` which means _A measure of the effectiveness that a force producing a physical effect has over time._

`Ceil` is translated to `细胞` which means _Cell_ ???

:-(

<comment><USER10> > `Object` is translated to `宾语` which means the grammar component object in > subject, verb, object, etc.

Sounds right (though OOP treats objects artificially as grammatical subjects, they are the things on which functions operate, and thus more like what would normally be grammatical objects; they are the patients rather than the agents of actions.)

<comment><USER8> There is an established, domain-specific translation for this and many other terms of art (in this case, 对象)

<comment><USER4> Ouch. Sounds like they're using a general-purpose, not domain-specific, dictionary for their translations. That might suffice for an initial private proof-of-concept, but not for a public audience.

Imagine translating a medical or legal textbook without knowing the proper professional medical/legal terminology. Those target audiences will tear it a new one, and quite right too.

+1 for authors need to do their homework better.

</comment></comment></comment></comment><comment><USER11> Hi, I am the creator of the language, my name is Gabor. You can ask questions if you like.

To answer some:

\- Yes, we use machine translations, they serve as an example, they are far from perfect. Some language files are translated by native speakers. I think the website needs to be more clear about this.

\- I use gendered language because coding is a men's job, women belong in the kitchen! ;-). No, just joking. Women are also welcome to become Citrine users. I just think the opening sentence is beautiful, it combines the concepts of male and female in a lovely, natural way ignoring today's PC-bullshit.

\- No, Emoji-language is not allowed in the core. I only support natural languages. Endangered languages (EGIDS6 and higher) are also welcome. There is no limit.

I understand that there will be a lot of hate because of this language. I even received death threats over it. When a young developer I worked with brought up the idea I even laughed at him. However as I thought it over, the idea began to grow on me and I longed for a purely Dutch programming language (I had created one as a child for the C64 by just overriding the BASIC tokens). I figured that, if I longed for such a thing, maybe others do as well. I decided to share my code after some years just to give anyone interested some kind of basis or just discuss it.

It is important to realize that Citrine is trying to strike a balance. Programs will never read like a book. However, having a programming language using your own words and grammar just feels better and makes me more productive, I also tend to make fewer mistakes. The problem with just mixing Dutch with English programming languages is that is extremely ugly, also you never know when it's justified to use Dutch or English, especially when interacting with established English conventions, 3rd party software libraries or embedded languages in code (like shell or SQL). The other solution, translating everything into English is just horrible. I have encountered so many bugs that stemmed from miscommunication because of translation issues to English that I believe this will become a dead end eventually. One technique I am working on, that might help to improve the readability even further is simple macro processing, so you can say 'create a new Object' instead of 'Object new'.

Anyway, if you have any questions let me know, always happy to answer ;-)

<comment><USER4> "I use gendered language because coding is a men's job, women belong in the kitchen! ;-). No, just joking. Women are also welcome to become Citrine users. I just think the opening sentence is beautiful, it combines the concepts of male and female in a lovely, natural way ignoring today's PC-bullshit."

Dude, really. If you gave a crap about effective communication you would not just have said that.

Hell, you would not even have _thought_ of saying that; never mind typing it, reading it back to yourself, and then hitting Post cos you still think it's a good idea. SMH

Your enthusiasm is admirable but your limited expertise is clearly showing. Instead of saying that you're here to answer our questions, you should be the one who's listening to our criticisms and then asking searching questions of us. A bit more humility and a lot less hubris. You and your product will be a lot better for it.

<comment><USER11> If you have technical criticisms please share.

<comment><USER4> Go read the entire thread then, because that's all you'll be getting out of me and probably quite a few others now thanks to your awful attitude.

Programmers like you are the reason I finally taught myself how to code, so I would never have to depend on your sort for anything. You're a smug, condescending martinet with a grossly inflated sense of your own specialness, and the sooner you grow up/the world kicks you to the curb, the better.

So here's me expressing _my_ freedom of thought and expression by having nothing more to do with you.

</comment></comment></comment></comment><comment><USER12> The grammars langauges are so different, can't imagine how this should work in practice.

Sadly the site is dead (503).

<comment><USER13> Works fine for me (the site, that is).

Spoiler alert: it doesn't work at all in practise.

Grammar is one thing, but the "translation" even fails with single words.

It's basically complete garbage.

</comment></comment><comment><USER14> This is comical. In Japanese nil is translated to ナイル, like Nile River. It looks like their machine translation software aggressively corrects "errors" in input.

</comment><comment><USER15> In Java (among others), you can use any unicode names. Yes, reserved words stay the same ("if", "public", etc), but most of the code still reads like native.

Also I've seen business ERP languages, completely localized. Those who program on them usually laugh on it, they say it's not hard at all to get used to English keywords, business logic is what's hard. Even better, the fact it's English means it's built-in.

</comment><comment><USER16> Is anyone aware of tooling or languages in existence that allow for maintaining codebases with multiple supported languages? I'm imagining something similar to a git hook that performs translation at an AST level, where library can provide a "strings database" that maps it's public members into arbitrarily many languages. I could imagine for multinational companies, it might even be worth hiring dedicated translators to maintain manual translations as part of such a system, although it would definitely be desireable for it to fall back to machine translation.

That way, anyone could check out a version of the code that's localized to their native language, including language primitives, standard library calls, variable names, comments, etc. without fracturing the whole library ecosystem by language boundaries.

<comment><USER17> >variable names

Ouch. Naming things is, famously, one of the two Hard Problems of computer science. How much harder if you have to name everything, down to the last loop iterator, thousands of times - once for each language that humans speak?

</comment></comment><comment><USER18> This is cool! Has anyone here taken a computer science course in another language?

I have wondered if non-English-speaking universities have to teach their CS courses in 25-50% English, just due to the syntax of the programming languages generally being in English

<comment><USER19> I took a CS course in Polish and had no problem at all with programming languages syntax in English.

</comment></comment><comment><USER20> I think a localized programming language like this could be useful as a stepping stone while teaching gifted kids, for instance (before moving on to a "real" programming language like Python or Java).

</comment><comment><USER21> The grammar of localized programming language should be specifically designed. Only replacing the keywords and operators seems strange in some sense.

Besides, the example in my first language is unreadable.

</comment><comment><USER22> This actually looks cool! Besides the "localized" stuff, it borrows some good parts from Smalltalk, JavaScript and Lisp. I'm curious now.

<comment> vincent-manis They lost me at dynamic scope.

</comment></comment><comment><USER23> I'd love to have this sort of i18n for Python or JavaScript, and a good kid- friendly environment. Scratch does i18n well. Text-based programming doesn't. There's a gap in age between programming and English fluency.

What's odd to me is the page is internationalized. Their explanation: "As a developer, you have to know some English. Nobody is going to change that anytime soon."

</comment><comment><USER24> The first? Algol 68 allowed implementations to have language-specific versions of keywords. I remember seeing a French language Algol 68 book in the stacks at the OU library that had listings with French keywords. I don't remember what they did with the portmanteau words that Algol 68 (and much more so in the Revised Report) favored, like "ouse" and "elif".

<comment> vincent-manis I remember using Université de Grenoble ALGOL 60 circa 1968 on an IBM 7044. All of the keywords were in French. I don't remember if anyone hacked it to add English equivalents. It was kind of fun to say 'DEBUT' for _begin_.

</comment></comment><comment><USER25> If my memory doesn't fail me, Microsoft Office Basic in the 90s had localized keywords. Word, Access, Excel had English keywords in the US edition and Italian keywords in the Italian one. Probably the same in all the other countries. I don't remember if programs were portable across languages. VBA is 100% English now and has been for a long time.

</comment><comment><USER26> This is the first language and open source project I have contributed to. I would never have believed that one day my name would land on a page of a programming language site. Thanks to open source, thanks to Gabor, and to all that contributed to making me reach this level.

</comment><comment><USER27> I first wondered, why there is not an english version of this language, because there was no "en"…apparently citrine things, "us" is a language…

</comment><comment><USER28> If curious see also

2016 [https://news.ycombinator.com/item?id=10965259](https://news.ycombinator.com/item?id=10965259)

</comment><comment><USER27> I just looked on the translations to my native language and it is hilarious. Need more popcorn.

</comment><comment><USER29> Weird how a language that exists to be more welcoming and accessible uses needlessly gendered language on its website.

"Designed to allow every man to write code in his mother tongue" could easily be written as "designed to allow every person write code in the language they are most comfortable with."

<comment><USER30> It did say that, before they ran the site through Citrine.

<comment><USER11> that's actually quite funny ;-)

</comment></comment></comment><comment><USER31> > designed to allow every man to write code in his mother tongue. Hopefully, > by doing so, Citrine will make coding accessible to a wider audience.

One day that audience might extend to women.

<comment><USER32> My thoughts exactly! but it looks like op is Dutch in which language google translation tells me "mens" can mean "person", so hopefully it is just an esl thing

<comment><USER33> Which is just a perfect example of why anything "universal" is quite hard in practice when these misunderstandings happen even between English and Dutch.

<comment><USER34> Not really, it is more like counter-example; if the author would have been writing in his native language this might not have been issue. So it supports the claim that allowing people to work with their native languages would reduce mistakes.

Of course this also implies that the translations should be done by professional translators, instead of the authors themselves.

<comment><USER17> Which I'm sure the authors would agree with:

> The Citrine community is working hard to provide translation files. We use > machine translations if we can't find a translator yet. We appreciate any > help to improve language support!

</comment></comment></comment></comment></comment><comment><USER35> Sorry to be dismissive it's almost always essential to allow international contributors and english is by far the most common international language.</comment>


Where do DevOps guys hang out? - <AUTHOR> Looking to talk about some tech solutions with some DevOps/Sysadmin types. Anyone have any good tips on  where good active discussions are with these guys.  Thank you in advance! <comment><USER2> conferences and meetups about Docker like: [http://2016.dockercon.com/](http://2016.dockercon.com/)

Reddit: [https://www.reddit.com/r/devops](https://www.reddit.com/r/devops)

devops weekly: [http://www.devopsweekly.com/](http://www.devopsweekly.com/)

<comment><USER3> Devops weekly archive stops at Nov2014. Is it still active?

<comment><USER4> Yep, the email still goes out every week.

<comment><USER3> Thanks!

</comment></comment></comment></comment><comment><USER5> There is a good DevOps slack community at [https://devopschat.slack.com/](https://devopschat.slack.com/)

You can request an invite here: [https://devopschat.co/](https://devopschat.co/)

<comment><AUTHOR> Sweet. Thanks for the info

</comment></comment><comment><USER6> Feel free to post to Ask HN with DevOps related questions. "DevOps" is just a newish term for something many people on HN have been doing for decades.

<comment><AUTHOR> Yeah I agree to an extent. I think there is a specialization here with technology advances that has developed over the years - mainly with the goal in optimizing development iteration speed and scalability. Would you agree?

</comment></comment><comment><USER7> Attend a DevOpsDays meeting - www.devopsdays.org.

</comment><comment><USER8> S

</comment><comment><USER9> The bar.</comment>


Richard Branson on Intrapreneurs - <AUTHOR> http://www.entrepreneur.com/article/218011

<comment><USER2> 2 Great Quotes - "What if CEO stood for "chief enabling officer"? What if that CEO's primary role were to nurture a breed of intrapreneurs who would grow into tomorrow's entrepreneurs?"

"The greatest thing about this form of enabled intrapreneurship is that often everyone becomes so immersed in what they're doing that they feel like they own their companies. They don't feel like employees working for someone else, they feel much more like ... well, I think the only word to describe it is "belongers."</comment>


What is the point of an employee self evaluation? - <AUTHOR>

These are coming up at my job, and the idea makes me cringe.  What on earth is the point of these? <comment><USER2> It lets the most interested party do the data gathering that the manager would otherwise have to do. It also ensures that the employee is thinking about everything that they're being evaluated on more than just after the annual eval is done.

They're a good thing - it gives you a chance to tell the boss about everything you do, especially the stuff she doesn't notice. Spin it freely, and use quantitative stuff wherever possible.

</comment><comment><USER3> Because they don't do a good job monitoring you and they want to take advantage of your honesty and have you give them a ceiling to your evaluation.

Or, they want to correlate several data points (objective measures, peer review, management review) to find outliers and improve the reporting process.</comment>


"Don't be evil, except..." -- the new Google - <AUTHOR> http://www.codingthewheel.com/internet/dont-be-evil-except-the-new-google/

<comment><USER2> I agree that terminating Google reader isn't the smartest decision I would consider Google made, but IMO, cancelling a product that probably cost more than its revenue isn't exactly evil.

I have a product (it's like a google reader but for photographs), it has a couple of thousands of users, but it's not making any money. Right now I am paying $70/mo for the server. I can afford it, but will I deem myself "evil" if one day I decide to stop paying for that server? I don't think so.</comment>


New Zealand man jailed for 21 months for sharing Christchurch shooting video - <AUTHOR> https://www.bbc.com/news/world-asia-48671837 <comment> dfeojm-zlib All speech that doesn't cause imminent danger, no matter how heinous, hateful or unpopular, must not be restrained nor punished.

 _I disapprove of what you say, but I will defend to the death your right to say it._

\- Evelyn Beatrice Hall

</comment><comment><USER2> This is a triumph of emotion over good law.

<comment><USER3> Why? It's a serious hate crime, akin to instilling violence.

<comment><USER2> If he applauded the actions in the video, that's one thing, because that's very close to inciting violence. But what if someone forwarded the video with a comment such as, "We need to broadcast the full horror of what occurred, so that people who are considering doing something similar might have a change of heart"? If that should be illegal as well, then we're in "Hear no evil, see no evil, speak no evil" territory. And I don't like that one bit.</comment></comment></comment>


MicroPython 1.4.5 - <AUTHOR> https://mail.python.org/pipermail/python-announce-list/2015-August/010865.html

<comment><USER2> For those interested in simplified embedded development , this[1] paper implemented a python like language on microcontrollers , that does include the actor model, and they show it enables higher abstraction(and reuse) in microcontroller systems - which are usually event driven.

[1][https://www.usenix.org/system/files/conference/atc14/atc14-p...](https://www.usenix.org/system/files/conference/atc14/atc14-paper- barr.pdf)

<comment><USER3> What's wrong with MicroPython?

<comment><USER4> Owl is more 'pretty much normal python runtime ported to an ARM MCU'. micropython is a written from scratch implementation for MCUs. Maybe I am replying to the wrong thread here. What could be wrong? There are probably a lot of the standard libraries which are more work to get running on micropython than Owl. Some of the language features that are already in python 2.7 are not in micropython (which is a 3.X based system). That said, micropython is a fantastic project. I have a micropython board and also have it running in the ESP8266 with my own C modules. The whole framework is very well thought out and a pleasure to work with. It's not the python I use in my day job but I don't actually care as I have more C than python anyway :)

<comment><AUTHOR> Just to clarify facts - Owl is PyMite (aka python-on-a-chip) fork (e.g. [https://bitbucket.org/ricearch/embeddedpython/src/e491720236...](https://bitbucket.org/ricearch/embeddedpython/src/e491720236242b057991efe60e1e19cf174e7778/src/vm/obj.h?at=default#obj.h-230) , and there're dozens of PyMite references in Owl codebase), and pretty shallow fork at 46 commits past the initial import (over 2 years). PyMite has pretty long list of features not implemented, starting with standard Python exceptions. In other words, PyMite isn't exactly Python, it's Python-like language. It's very unlikely that PyMite is able to run more or less sizable script written for standard Python. (I'd love to stand corrected!)

MicroPython OTOH implements complete Python execution model (but e.g. only subset of Python object model), and nowadays runs pretty large subset of Python standard library ([https://github.com/micropython/micropython- lib](https://github.com/micropython/micropython-lib)).

Btw, if you run MicroPython on ESP8266, please consider contributing to the mainline - this port slowed down lately due to lack of contributions. Thanks!

<comment><USER4> I put pulls in but it seems they don't want to accept stuff that does not work like the rest of the platforms supported. Perfectly reasonable I think but the fact that there is not a way to set the wifi mode in micropython is a bit slack. They didn't want that most recent pull of mine. I'll put my whole interrupt driven framework on a fork on an share it in case anyone is interested.

<comment><AUTHOR> I see. Well, I hope that indeed can be understood - merging code to mainline which is known as requiring a rework means breaking some people's code later. In this situation, maintaining a fork till more momentum is gathered and issues are resolved does make a sense. But please keep in touch (e.g. via MicroPython forum) - alone knowing that you keep working on it and it does work for you is a good motivation for other folks to not drop the ball with this port (and for new folks to pick it up).

<comment><USER4> I can _perfectly_ understand why changes would not be wanted. It's no big deal at all. That's said. The project vastly underestimates the impact the ESP8266 has had and will have. IMHO that chip and those that follow in its footsteps will revolutionize the industry in more ways than the 100 STM32 projects ever did. It's more like the Aduino viral like impact on hobbyists. As much as it's a flakey POS, it's not as pathetic as the ATMEL chips and I'm jumping on the bandwagon.

<comment><AUTHOR> > changes would not be wanted.

Changes are wanted - very much. But clean changes adhering to MicroPython coding standards. So, if you have time and/or need to support ESP8266, please keep sending patches and working on elaborating them. In the meantime, more people appear to want to work on STM, TI and other chips, however you or me may find it strange. Probably because those chips already have been having impact on the industry - for number of last several years, and ESP8266 yet to show that impact.

All in all, MicroPython embraces ESP8266 and actually was one of the first _open-source_ projects to provide initial support for it (nodemcu was closed- source at that time). Contributions are welcome. We're also looking for sponsorship opportunities to provide top-notch support for it, but so far it didn't work out.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> We use PyMite at work, (Python 2.x) which works pretty well. The longer you use it, the more things you find that aren't implemented, though. No int() or float(), no try except, longs don't exist at all, no keyword arguments, etc etc. You give up a lot to fit in 55 kilobytes.

<comment><AUTHOR> Feel free to give MicroPython a try - it currently scales down to 77K (ARM Thumb2), but that includes compiler (i.e. you can start it and type Python source to execute - no "compilation" step is necessary).

</comment></comment><comment><USER6> If you want to hear a good interview with the developer:

[http://podcastinit.podbean.com/e/episode-15-damien-george- ta...](http://podcastinit.podbean.com/e/episode-15-damien-george-talks-to-us- about-micropython/)</comment>


Holiday Gifts We Want - <AUTHOR> http://www.maximumpc.com/article/features/holiday_gifts_we_want777

<comment><USER2> Those some expensive "gifts"</comment>


Silvio Berlusconi 'bunga bunga' sex parties iPhone app launched  - <AUTHOR> http://www.mirror.co.uk/news/top-stories/2011/06/18/silvio-berlusconi-bunga-bunga-sex-parties-app-launched-115875-23208527/

<comment><USER2> This is the worst news story ever. No link to the app or even a screenshot?</comment>


The God of Startups - <AUTHOR> http://en.wikipedia.org/wiki/Belphegor <comment><USER2> daemon(s) originates from the Greek word deimon <http://en.wikipedia.org/wiki/Daemon_%28mythology%29> which means someone who is wise, knows things, has wide and wise knowledge of something. In the ancient Greek times it was not linked to the concept they are now.

</comment><comment><USER3> hmm. ambassador to France. Anyway, the last line of the first paragraph is dead on.</comment>


Google Claims 'Quantum Supremacy,' Marking a Major Milestone in Computing - <AUTHOR> https://fortune.com/2019/09/20/google-claims-quantum-supremacy/ <comment><USER2> Does anyone have the paper? Please upload if you could.</comment>


Accused Capital One hacker had stolen data from 30 other companies - <AUTHOR> https://www.washingtonpost.com/business/2019/08/14/prosecutors-say-capital-one-hacker-had-stolen-data-other-companies-her-bedroom/ <comment><USER2> Anyone kept track of the world's most prestigious hacking competition DEF CON Capture the Flag in Las Vegas.

The winning players has been taking part in DEFCON for years. It is getting harder for new-comers to shine.</comment>


Ask HN: What service does your website use to send emails? - <AUTHOR>

Do you just use postfix/sendmail on your localhost, do you SMTP to your company's Exchange server, or are you using a 3rd party that just gets the job done?<p>Our server is sending around 7,000 emails a day (all opt-in job alerts), and it led me to question if using postfix is the smartest method or if there are reasons to rely on a 3rd party for email delivery. <comment><USER2> Getting delivered is your biggest concern. If you end up in a bad IP range, or a large email site (ie its automated systems) figure you might be spam, people won't see your mail.

This can be as simple as a minority of your email recipients hitting "Mark as Spam" in their webmail client to make your stuff go away.

I've worked someplace where this was handled inhouse. You need to keep an eye on the various blacklisting systems out there, consider making sure you conform to the latest "emails that don't have this are probably spam" trends, and set up "feedback loops" with major mail providers like Hotmail and GMail. The purpose of the feedback loop is essentially to have your system automatically unsubscribe people who indicate that they don't want your mail any more, even if they do so with the "This is Spam" button instead of unsubscribing properly.

I might need to send mail soon and I'm considering doing it with a provider like MailChimp (who have a poorly advertised API for sending individual mails, rather than bulk mails) or postmarkapp.com</comment>


The Virtual Moleskine - <AUTHOR> http://www.newyorker.com/currency-tag/the-virtual-moleskine?src=longreads <comment><USER2> > _Moleskine has enormous margins - it doesn't cost much to make a notebook_

> _it's not hard to understand why the company would want to branch out. The > stationery-goods industry isn't exactly fast-growing in this age of > Facebook, Twitter, and texting._

Why does every company need to be fast-growing?

What's wrong with a company that supplies a small number of consistently high- quality products to a more or less stable subset of the population, year after year, decade after decade? Why is "enormous margins" not enough?

There are inns in Japan and breweries in Germany that have been around for centuries with relatively little change. They don't give a damn about the fad of the decade, because they know it will pass and be forgotten, just like all the fads of countless past decades. Until recently, Moleskine has been trying pretty hard to make itself look like one of them, the heir to a long line of tradition, loved by Van Gogh and whatnot. (Poor Vincent probably couldn't even afford a Moleskine if he'd lived today, but I digress.)

And then Moleskine started diluting its own brand with cheap, short-lived, bastardized versions of its own flagship product. Yes, they sell a story, and their story used to be okay. Now their story is boring and confusing. It's as if a Hollywood executive has gone through the script and tried to add every cliche that he thinks will help him sell another ticket.

Oh, who am I kidding. We should have seen this from a mile away when a private equity firm bought out the company. No longer owned by its founder and manufacturer, Moleskine has become little but a page in a some anonymous investors' portfolio. After all, the modern Moleskine has only been around for 17 years. Who know whether they'll last another 17 years or not? Better bleed it dry while you still can.

</comment><comment><USER3> Somewhat tangentially, I've started using $1.35 Moleskine-style notebooks to take notes in classes I care about. I've discovered that as bad as my handwriting is, my attention, focus, and net-gain from classes is significantly higher when all I have is ~8x5 blank paper to distract me.

<comment><USER4> I agree completely. When I was a student I also eschewed using my computer during class for a notebook. I might never look at the notes I took again, but something about going from input to output makes the ideas stick better.

Later when I became a teacher for a short while, I tried to build that kind of concept into the curriculum to pretty good result.

I wrote some about it here

[https://news.ycombinator.com/item?id=8253351](https://news.ycombinator.com/item?id=8253351)

</comment></comment><comment><USER5> I don't use Moleskine notebooks per say, but there is a great deal of value in committing to a specific type of stationary. I've been using the big dot pads Rhodia makes for a few years now, and it's nice knowing that I can rip off a sheet and stack it on the others without having to worry about weird crinkling issues or archival degradation. Also, I feel like dots are more helpful for my handwriting than blank pages or lateral ruling. Quadrille is nice too, but once I went with dots, I never went back.

<comment><USER6> I like the dotted paper as well. Rhodia and leuchtturm1917 also both make moleskine-style notepads with much better paper, less ink show through than the moleskines.

I've been using a Leuchtturm Link ([http://www.amazon.com/dp/B00IYL9044/](http://www.amazon.com/dp/B00IYL9044/)) notebook - the markings are white, on grey paper - when you take a photo of it, the dots/lines don't show up. They've got an app that does auto straightening, etc. using markings on the page, as well. It's been working well for me, far better than my experience with the moleskine evernote.

</comment></comment><comment><USER7> Wow, I've been taken in by their branding - I thought they'd been around for a hundred+ years, not just since 1997.

</comment><comment><USER8> I'm wondering if there's a more ecologically intelligent version of the Evernote Moleskin... a notebook I can scan and digitize, but uses 100% recycled paper?

<comment><USER9> Isn't recycled paper often worse for the environment when you look at all end- to-end costs?

(I suspect this would be particularly true if it needed to be white enough for digitizing.)

<comment><USER10> You don't need to scan the pages, digital pens are cheap enough nowadays and some of them work on any paper.

<comment><USER11> How well do these digital pens work out in practice? Are they better than simply snapping photos of letter or A4 size pages with my iPhone or passing loose papers through a auto-feed scanner? How about the software that comes with the pens? Can they produce file formats that are easy to work with (pdf or plain text) without difficulty on different systems (Mac OS X or Linux).

I've never really been _completely_ satisfied with any system of note taking (from pens to org-mode) but this is probably more of a poor craftsman blaming his tools.

<comment><USER12> The pen tracking in my experience isn't perfect so it's probably not better, in terms of fidelity, than a steady photo with your smartphone but the file sizes should be smaller and it can be more convenient.

The Livescribe uses a combination of a pen and special paper (you buy it or you can print it if you have a color laser) not only to record your pen movements but audio as well. This combination is interesting because your handwritten notes can serve as a navigation tool for the audio, tap on a note and it can playback the audio that was recorded at the time. We lend them to students to try but many find the pen too bulky to write comfortably (I've only seen photos of the latest model, it looks like it may be a little slimmer but still relatively bulky).

This site seems to have a decent overview of currently available options (site design is kind of crap, though). They liked the Sky WiFi pen best, probably because of its features tied to Evernote but the Wacom Inkling had the best capture quality ("100%"); its ranking probably suffered because it doesn't come with any handwriting recognition software. [http://digital-pen- review.toptenreviews.com](http://digital-pen-review.toptenreviews.com)

<comment><USER11> Thanks for the info, I'm going to check out the reviews.</comment></comment></comment></comment></comment></comment>


Worque – CLI written in Ruby to manage and push your daily notes to Slack - <AUTHOR> https://github.com/huynhquancam/worque <comment><USER2> I've solved this issue with a chat bot in the past, answering phrases such as,

"!open jira issues assigned to jquast" or "!github issues closed by jquast since yesterday"

Expand or integrate as necessary for whichever systems your team manages with.

Although some of my teammates found it intimidating to have only 0 or 1 results where others might have much more, it presses home the idea that your task progress should be made visible in these external systems.

As a team, storing your progress in a local notes file is anti-team. We should strive to allow any other team member to continue your work using only the information published to these systems.

</comment><comment><USER3> I don't see in the project _why_ I would want to push my notes to Slack. What is the feature in Slack that makes this useful ?

<comment><USER4>
        "Ever stunned when your boss suddenly asked what you've done yesterday?"

I thought the same as you. Then I read this line and thought, "Man I'm glad I don't work there."

<comment><USER5> you realize that's exactly the info you're supposed to have on hand for a standup in scrum or any other Scrum-like agile methodology. What you accomplished yesterday, what you're going to be working on today, and what obstacles you need help with.

<comment><USER6> Absolutely accurate, but you did leave out the part about "when your boss asks you," which I think is what gave the OP a shudder.

This is the big area where scrum goes awry. Defenders of scrum object, reasonably enough, to the claim that scrum leads to micromanagement of developers. The daily standup specifically _isn 't_ supposed to be a daily status report to your boss, complete with renewed application of deadline pressure. In fact, I remember reading once that in a scrum meeting, only those who are producing are even supposed to speak. It is specifically not supposed to take the form of a status update.

My main criticism of this defense of scrum is that I think scrum is somewhat prone to this kind of corruption. It may not be what is _supposed_ to happen, but it's not a corruption out of left field either, it does seem to be an inherent risk. The presence of a daily standup, where developers can be put under a microscope and micromanaged under the guise of a developer friendly methodology, is just too tempting for bosses or other stakeholders who want to micromanage.

</comment></comment></comment></comment><comment><USER7>
      workque todo --for=yesterday
      # ~/notes/checklist-2016-07-18.md
      # This will jump back to Friday's note if it's Monday today!

Too much of intelligence. Does this imply that one can't have notes for weekends?

<comment><USER8> > If you're kind of nerd and you have no life. You would rather work over the > weekend than hanging out with folks, so you should enable the hardcore mode > which will stop skipping weekend for you.

> worque todo --for yesterday --no-skip-weekend

</comment></comment><comment><USER9> If it meets the guidelines, this might make a good "Show HN".

Show HN guidelines: [https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html)

<comment><AUTHOR> Thanks @brudgers but the title doesn't seem to be editable any more.

<comment><USER9> Looks like it was noticed without one.

</comment></comment></comment><comment><USER10> So is it pronounced like "work" or like "torque"?

<comment><USER11> Looks like it could also be pronounced "work-u"

<comment><USER9> I thought "work queue".

</comment></comment></comment><comment><USER12> Nice job. So can it can run on Windows environment ?</comment>


Blackberry to release BBM for Android and iPhone today - <AUTHOR> http://blogs.blackberry.com/2013/10/bbm-android-iphone-launch/

<comment><USER2> I honestly feel it's too late for BBM to enter the market. It would have still been fine if they released the app when they had originally planned. I think they delayed it by over a month and I have no faith in them.

<comment><USER3> They really needed to make the original launch date to overcome the idea that they're constantly late in shipping. Many have a "believe it when I see it" approach to BlackBerry at this stage, and who would blame them? This is apparently a rolling release, which shows that they're being cautious. You also wonder if this release will drag out for a while, if something goes wrong this time, too.</comment></comment>


Git repo for predicting March Madness using machine learning - <AUTHOR> http://blog.smellthedata.com/2012/02/machine-march-madness-2012-starter-code.html

<comment><AUTHOR> Of particular note is the use of Theano for the machine learning heavy- lifting. If you do machine learning and haven't looked into Theano, you're probably making things harder on yourself than it needs to be.</comment>


Ubuntu on IBM - <AUTHOR> http://partners.ubuntu.com/ibm <comment><USER2> Debian and other distros also support these architectures.

</comment><comment><USER3> But when can we get a POWER workstation for a reasonable price?

<comment><USER4> heh. good one. i wonder when IBM will open source Z/os so I can run it on an emulator to mess around with cobol.

<comment><USER5> COBOL works fine on other operating systems as well. JCL, on the other hand, is only available on z/OS and it's just as important to know.

</comment></comment></comment><comment><USER6> I have been told that ZFS works here. :)</comment>


Ask HN: Future of electronic voting, Blockchain plus identity protection? - grif-fin Having in mind the recent events with the US election and everything that comes with the classic paper election (result counting, protection against fraud, multiple counting, costs) and the final always unhappy voters who believe something went wrong, do we have all the technologies to go electronic voting all the way?
I know followmyvote.com has already started with this. Using blockchain to keep all the votes open to everyone tracking the election.
Does HN think we can overcome the identity theft with a bundle of technologies like finger and iris detection plus a pass and blockchain combined to enable electronic voting? <comment><AUTHOR> Blockchain doesn't really help much in the realm of electronic voting. It's just not needed for anything. You can have secure electronic voting without Blockchain tech.

BTW: [https://github.com/agoravoting](https://github.com/agoravoting)

<comment> grif-fin Isn't Blockchain the core of Agora Voting?

[https://tinyurl.com/zdsdkxr](https://tinyurl.com/zdsdkxr)

[https://tinyurl.com/j8yseuj](https://tinyurl.com/j8yseuj)

<comment><AUTHOR> No, it's not (btw I work at Agora Voting, now called nVotes), although we were the first to suggest it, in the end the blockchain was never introduced to Agora Voting.

The blockchain has some interesting properties that can be used, for sure, but in reality these properties would be used only in one module of the voting system, not at the core.

<comment> grif-fin Interesting. Could you share with us what are the biggest share-able projects Agora Voting is getting involved?

<comment><AUTHOR> At Agora Voting/nVotes ([https://nvotes.com/](https://nvotes.com/)) we have done multiple kinds of elections.

* We recently held an electoral process on a number of questions with the townhall of Madrid with over 200k votes [0]

* We run the national primaries of Podemos (Spanish political party), with over 155k voters [1]

* We also did the election for the Board of Directos of the Spanish Surgeons Society [2]

[0] [https://decide.madrid.es/primera-votacion-ciudadana- resultad...](https://decide.madrid.es/primera-votacion-ciudadana-resultados)

[1] [https://en.wikipedia.org/wiki/2nd_Podemos_Citizen_Assembly](https://en.wikipedia.org/wiki/2nd_Podemos_Citizen_Assembly)

[2] [http://www.aecirujanos.es/wpaec/page/2/](http://www.aecirujanos.es/wpaec/page/2/)</comment></comment></comment></comment></comment>


PayPal and Visa Enter Partnership - <AUTHOR> http://www.businesswire.com/news/home/20160721006308/en/PayPal-Visa-Enter-Partnership-Extend-Consumer-Payment <comment><USER2> > We are excited to begin a new chapter with PayPal. Our agreement provides a > framework for our companies to work together collaboratively

It seems strange to me to say something like "work together collaboratively". How else would you work together, antagonistically?</comment>


Where Do You Get Your News? - <AUTHOR> http://www.edelman.com/p/6-a-m/where-do-you-get-your-news/ <comment><USER2> In alphabetical order:

\- [http://firehose.datente.com](http://firehose.datente.com) \- a bucket-load of RSS feeds

\- Economist

\- Facebook shares

\- friends sending things directly

\- Google+

\- Hacker News

\- local media

\- Mastodon

\- News app on iOS

\- radio

\- Reddit

\- Twitter

And probably more I can't recall at the moment</comment>


The Maximally Shitty Product - <AUTHOR> http://redhotrevolver.com/post/4979080495/maximally-shitty-product

<comment><USER2> When I hear the word "maximally" shitty in this context, I don't think of MVPs - I think of products like IE6, RealPlayer, or E.T. on the Atari. A product can't be maximally shitty unless it manages to affect both users and developers in a seriously negative way, at huge scope and cost.</comment>


PyData NYC Speakers and Talks announced - <AUTHOR> http://continuum.io/blog/pydata-nyc-speakers-and-talks-announced

<comment><AUTHOR> If you're interested in working with data (especially with python) you should come to this conference. Several of the authors of the major libraries in this space (numpy, scipy, pandas, pytables) will be there giving tutorials.</comment>


How To Learn To Code In 2013 - <AUTHOR> http://blog.enoughtobedanger.us/how-to-learn-to-code-in-2013/ <comment><USER2> >> The reason it's so hard for adults to learn new things is that there is no authority figure punishing them if they fail.

I think it's way more than that. Once you're out of school, there is no one to set goals for you. Even assuming you do have goals, there are no structured classes or textbooks to get you to those goals with your eyes closed. You are essentially both the teacher and the pupil and you must figure out your own curriculum in addition to doing the learning.

<comment><USER3> I agree. Studying CS in college I never had an Aha! Moment or a specific moment where I knew I "learned to code", but the cumulative knowledge I gained from following the strict college computer science curriculum gave me that skill over time.

</comment></comment><comment><USER4> I dislike how people say "Learn to code" and that automatically implies that it's HTML, CSS and JS: There is a whole world out of that.

<comment><USER5> Especially since HTML,CSS and JS is actually a way to not learn to code. (Or rather a dangerous way to learn coding.)

To expand a bit, the most fun part of coding is clever tricks based on understanding a system. But with building a website, you get nice results by just treating coding as a complicated way to do photoshop, and settle for this.

</comment></comment><comment><USER6>
      In my experience, the best way to learn to code is to find someone who needs a website built and offer to do it for really cheap, though not free.

I'd highly disagree on this. The minute someone offers some sort of compensation for work, the dynamic of the relationship changes -- from helper to employee (and in some cases servant) -- especially at the low-ball prices. From what I've found, the people thinking a website can be built for $100 are the type of people who will bug you as to why it's not done, demand extra features, wonder why it doesn't look like {{insert_dynamic_million_dollar_website_here}}, etc. And if you are just starting out, you probably don't have much contracting experience to have contracts ready with expectations of work/time to commit/deadlines/etc.

The best solution I found when I wanted to learn to code was that I had something I wanted to create that I couldn't -- not anything huge, just something small. Once I got it up and working, I had so many questions -- "why did it do that?", "why didn't it work?", "what if I wanted to do X?", and that fueled me to find out more information so I could answer those questions.

I also disagree that "we have to create a context where we have no choice but to learn." What people need, instead, is to bring back our child sense of curiosity. When I was reading up on the fiscal cliff, I was confused -- why were we in this mess? Why couldn't we do X, Y, Z? If you are overwhelmed with questions, many will just quit, feeling the answers are too insurmountable. The trick is to ask just enough questions so that you can understand a slightly larger view of the puzzle, which will help you answer the next set of questions.

<comment><AUTHOR> > "The minute someone offers some sort of compensation for work, the dynamic > of the relationship changes"

That's the point. If you're doing something for free as a helper then there's no consequence for saying "hey sorry i haven't gotten around to the website yet, i've been really busy...". More often than not, that's exactly what we'll end up doing, because learning a foreign language makes our brain hurt.

> "What people need, instead, is to bring back our child sense of curiosity."

I'm really glad you are able to make that work, but I'm positive that curiosity is not as reliable as fear.

<comment><USER6> >That's the point. If you're doing something for free as a helper then there's no consequence for saying "hey sorry i haven't gotten around to the website yet, i've been really busy...".

Agreed, but if you have no experience, nothing will turn you off faster to learning than a client who yells or berates you for your lack of experience. A teacher is there to nurture your love of learning -- a client doesn't give a damn about you wanting to learn, they just want the project done at a certain time/budget/capacity.

>I'm really glad you are able to make that work, but I'm positive that curiosity is not as reliable as fear.

The problem with fear that I've found, is that it only pushes you to slightly outrun that fear, not run miles ahead of it. I don't need to outrun a lion, for example, I just have to make sure that I run faster than the person next to me. When you use that for learning, you'll only learn what you need to complete the task, not use creativity to ask questions and learn and expand your knowledge.

When projects come from a question, or from a problem, I feel much more likely to keep asking questions and learn to fix my problem.

<comment><AUTHOR> > "...nothing will turn you off faster to learning than a client who yells or > berates you for your lack of experience"

I never got berated, because I made it clear up front that I was a beginner and that I was charging a very small fee. It motivated me to make something that was worth it. I'm confident that most people have the ability to make something good enough to justify a $100 fee, it's just that they don't have a reason to try hard enough.

> "The problem with fear that I've found, is that it only pushes you to > slightly outrun that fear..."

This is a great point - in fact, when I was first starting out I was often ready to be done with projects. They were stressful! But they taught me skills that I don't think I'd have learned otherwise, that I could have more casual, curiosity-driven fun with later. I doubt anyone would put themselves in a stressful situation like that unless they had some genuine curiosity. It didn't permanently scar me. It just was an accelerator, like taking off the training wheels. Stressful and scary but a necessary push forward to learn faster and stretch myself.

</comment></comment></comment></comment><comment><USER7> I like that, if only because I plan on / am doing that anyway :) I am amazed by what is _already_ possible with "just" a modern browser and a decent machine, and the fact that it will get so much better in the near future..! I played games on my Amiga 500 just yesterday, in the afternoon I painfully tried to get SDL to draw enough pixels fast enough to make particles that look nice (forget alpha!)... now I can draw whatever I want with awesome speed, even without being an optimizing or math guru, send a link to someone or a million people, and they can play it seconds after I made the last change. WTF? Forget flying cars; did any of you see this coming 20 years ago? I love it :D

Oh, and happy new year! May you find many ways to make people happy, so they may make you happy in return.

</comment><comment><USER8> _The reason it's so hard for adults to learn new things is that there is no authority figure punishing them if they fail. ... If we're serious about accomplishing our goal, we have to create a context where we have no choice but to learn._

A great way to do this is 1-on-1 tutoring. As an adult, I learn faster under tutoring than in any other context.

Part of the reason is that a (competent) tutor can keep me right at the edge of my ability during a session, which is where learning is fastest.

Another reason is that fear of embarrassment motivates me to do my homework.

You could apply this to programming by defining a specific thing you want to make (e.g. roll your own blogging cms in Rails), then hire a programmer to coach you an hour or two per week and assign homework. You'd learn quickly and build your app at the same time.

<comment><AUTHOR> Very true, also probably less stressful. When I was a student I couldn't really afford it though. The nice thing about doing freelance is you make money! haha

</comment></comment><comment><USER9> I think a good first target for a static web site would be a restaurant website.

The goals are pretty simple, you can probably put one together in a few days or a week, and just by not making it awful you actually produce a website that is better than the vast majority of restaurant websites.

<comment><AUTHOR> That's a cool idea! I had a lot of luck with student organizations since I was a college student. I also built a site for a book my professor was writing, a board game that a friend was launching, and a professional parent psychologist. There's tons of small business out there that have little to no web presence but feel bad about not having something better up. They're more than willing to pay a learner $100 to give it a shot at creating something better.

</comment></comment><comment><USER10> I think the best way to learn programming is the same as it was in 2012. Or 1995. Or 1970. All you need is a compiler/interpreter for language X, an introductory course for language X, and a nice entry-level CS book. But most of all, you need passion. Without it, you are doomed to quit.

</comment><comment><USER11> I am going to (try to) learn programming next year. I'll start out with SICP, read all chapters twice and watch all the lectures. If that's to difficult I'll read Simply Scheme first.

</comment><comment><USER12> First of all, HTML and CSS is not coding, and second it won't result in a 'serviceable website' as sites need to be dynamic these days, and you won't get paid for a static website anyway. This is a bad post and the author should feel bad.

<comment><AUTHOR> I kind of feel bad that the switch from "learn to code" to "why schools work" was so jarring. I definitely need to do a better job making it a bit more skim-able. But I definitely don't feel bad about advising people to start learning to code by learning HTML and CSS if their goal is to eventually learn to build web-apps.

It certainly is coding in the most literal sense of writing code to be interpreted by a computer, although it's not a programming language. You are correct about that. Nevertheless, it's a great starting place for beginners.

You definitely can get paid for building static websites. Somehow I did.

<comment><USER13> Thanks for the good article. It definitely resonates with me and I will be trying to develop some habits in the next 30 days (every day). I am certainly not an absolute beginner (I know some html and css)but I am not a programmer at all and your article gives me some food for thought as I embark on learning a bit about javascript.

<comment><AUTHOR> Awesome! I'm glad you got something out of it. If you ever want to chat about strategies email me! nbashaw [at] gmail</comment></comment></comment></comment>