Learn Regex The Hard Way  - <AUTHOR> http://regex.learncodethehardway.org/? <comment><USER2> Not to sound like a pretensions CS guy ... but how can you have a book on regular expressions without even mentioning DFA/NFA? Maybe its just me, but (back in my day) I found learning about finite automata made regex just click.

Edit: _ahh, I see now mentioned in intro that "I'm going to be very practical and straight forward about it. No NFA to DFA conversion. No crazy explanations of push down finite state automata." :) I still argue that thinking of regex as state machines is a very useful tool._

<comment><USER3> I'm not a CS graduate. I first learned of state machine from an article posted here on HN a few months ago.

I learned regular expression from the regular-expression.info site and from the first 4 chapters of Jeffrey Friedl's book over 5 years ago. I don't recall an introduction to NFA/DFA from them either. I'm pretty comfortable with regex and use them regularly (no pun intended) and so far, I don't feel that I've missed much.

I'm not disagreeing with your view, but I think it's worth pointing out from someone having developed an understanding of regex from a different perspective, that NFA/DFA might not be such a strong prerequisite and people should not feel like they're going in at a disadvantage.

<comment><USER4> Chapter 4 of Jeffrey Friedl's "Mastering Regular Expressions" goes in depth about NFA/POSIX NFA/DFA. It even has car analogies!

<comment><USER3> It must have been the 3 first chapters then. At the time, they were enough for me to understand and "get going" with regex. Various other online resources have filled little gaps here and there over time. This thread makes me want to revisit the book and resume my reading of the next 3 chapters, a long overdue promise to myself. I'm glad that the book will cover the topic of FA then.

</comment></comment></comment></comment><comment><USER5> Thats pretty awesome. Regex's the tool (vs. the concept of "regular expressions" that comes up in interpreters/compilers) is a supremely useful utility when used sparingly, and surprisingly portable between languages.

Regex's are in a (not-)sweet spot of practical languages that aren't taught in school. For all the hype of ruby, et al. being able to make "DSL's", its surprising how mystical an _actual_ DSL, that is portable between languages (through PCRE) is held.

Unfortunately, like many other tools, can be used sparingly after a lot of practice writing crappy regex's, and having to eat your own dogfood (so you learn its not an "ultra-fast parser", or that you shouldn't chain substitutions on user-generated input).

A rote tutorial -- in the style of LPTHW -- is excellent.

<comment><USER6> What are some other examples of DSL's that are useful in the same way as regexes?

I am thinking LINQ might qualify. Also, JQuery is strictly not a DSL, but it kinda feels DSLy.

<comment><USER7> Personally, I classify any sort of sequence comprehension as a DSL, including LINQ and python's list and generator comprehensions. JQuery is basically as close to a LINQ-like DSL as you can get in a language like JavaScript that doesn't have metaprogramming support. Related to sequence comprehensions, there is Common Lisp's controversial LOOP macro, which is basically an iteration comprehension DSL.

I'm somewhat on the fence about whether format control strings qualify as DSL's. They don't as much, but they tend to have very complicated and specialized syntax.

I feel that Monads are a DSL in Haskell, but whenever I see "Monads in Blub!" I don't feel the same way about them. Part of it is probably that Haskell provides not only infix operators, but do-notation for supporting monads. Part of it is also that monads don't do as much in other languages, because their type systems aren't rich enough to fully express them, nor restrictive enough that their capabilities are useful.

<comment><USER6> A DSL doesn't have to be Turing-complete IIRC so format strings could probably qualify.

</comment></comment></comment></comment><comment><USER8> What do you guys think of Zed Shaw's teaching style? As I'm not a beginner programmer, I can't really evaluate correctly — to me it seems like a odd approach to programming pedagogy, but perhaps it works. Any non-programmers want to shed light on why his style works?

<comment><USER9> I'm about 75% through his Python book, and I have to say I like it. He assumes you're an absolute beginner, and I'm not, so I can't really give it a fair appraisal from the perspective of its target audience.

That said, the book definitely makes learning fun. For the first half of the book, you have a really quick learn-reward cycle. The exercises are short and to the point, and he makes you type in the lesson and run it. This means that you type a few lines, then immediately get to see what it did, on your computer. It very much reminds me of when I was in grade 10 and we were doing simple stuff in QBasic. It would definitely grab and keep the interest of an absolute beginner dipping his or her toes into the programming pool for the first time.

From the perspective of an experienced programmer - a term I apply to myself with some trepidation - things move a bit slow, but the experienced programmer is definitely not Zed's target with the book. Even being on the slow side, the exercises are quick enough that you can knock out a bunch of lessons quickly if you're so inclined, and I've definitely skipped over a bunch of the "Extra Credit" stuff because of that.

I actually did spend the "recommended" week doing Exercise 37, which is sort of a "learn at your own pace" exercise. You're given a list of operators, string formats, keywords, etc. and asked to spend some time looking into them, defining them for yourself, and playing with them. I spent a good amount of time reading into the way Python's floor/integer division and modulo operations work / differ from other languages and why (if you're interested, Python floors towards negative infinity, not zero, and performing a modulo on negative numbers takes the sign of the divisor, not the dividend, in contrast to some other languages), and spent time toying around with decorators and lambdas.. I kept a spreadsheet of everything I was supposed to learn and my description of it. My interpretation of that lesson is probably a lot different from a beginners, but I think it's a nice example of "you get out of it what you put in."

Zed also likes to shove you into the deep end and let you learn to swim. The extra credit assignments don't have answers, they're all about making you play around and learn on your own terms. The lesson above is a good example of "here's a bunch of terms, now go play on your own for a while", which was an interesting change of pace. Also, he gives a solid emphasis on reading other peoples code. There have been at least two lessons so far dealing with that, and I've read over a bunch of reddits code and learned a good amount from that - this was during the first "go find some code" exercise, where you only know the bare minimum of conditionals and looping, so there were a lot more scary "i don't know what that code is doing, but I'm going to find out!" moments, which I found helpful.

<comment><USER10> > It very much reminds me of when I was in grade 10 and we were doing simple > stuff in QBasic.

That's pretty much the feel I was going for when I wrote it.

<comment><USER9> It really shows. A friend of mine asked me about it, and my abbreviated review was just "it makes programming fun again."

I hesitated to use that in my earlier comment because some might use it to paint a bad picture of me, contrasting it with the idea that all good programmers love their craft and are always writing code because it's always fun for them. I just think that as you get into meatier works and start architecting larger applications, there's always going to be some hair pulling and you're going to fight wars with your compiler/interpreter/whatever. LPTHW isn't like that. You just sort of cut through the bullshit and get on with the fun stuff, and it makes the learning process easier.

So thanks. I look forward to reading your other works as they finish.

</comment></comment></comment></comment><comment><USER11> The regex shell is a neat idea.

In many situations I'd like to generate strings accepted by the regex, to check that my regex is tight enough.

I know this is hard in general (for lots of reasons, basically all reducing to "there are a lot of strings and no easy way to iterate through them in a satisfying way").

But, has anyone made any progress on this for the "easy" cases?

<comment><USER12> Your wish has been granted: <http://txt2re.com/>

I use this all the time. No wonder I don't know to hand write a Regex.

<comment><USER13> Here's another tool I use when testing my regex: <http://regexpal.com/>

Nice tool for testing the regex on a given data set.

</comment></comment></comment><comment><USER14> just decided to randomly click a chapter. in 12.1 wouldn't

^[0-9]+|[A-Z]+$ in fact need to be written as

^([0-9]+|[A-Z]+)$ or non-capturing

^(?:[0-9]+|[A-Z]+)$

i doubt the intent was to alternate NL/EOL assertion. seems like a novice oversight and does not instill confidence in the rest of the material.

or am i missing something?

<comment><USER10> Hmm, well the book is being written so there's potential for some errors, but I believe you are wrong here. You're confusing match with search semantics. Your above works because by default Regetron searches. If you turn on match it doesn't match your proposed test below. Try this:

<http://codepad.org/uPpwKPJS>

Notice when you turn on !match it doesn't find your test.

Also, keep in mind that this is just introducing the concept of alternating. Captures are covered later.

<comment><USER15> I agree with the GP --

<http://codepad.org/YmsaEtJS>

<comment><USER10> Great, another example of regex engines not doing anything you tell them. I'll look at changing it but () isn't going to work there it has to be taught later.

<comment><USER14> the solution seems pretty easy. simply leave out the beginning/end-of-line assertions. [0-9]+|[A-Z]+ would suffice for that example. i agree that introducing capture groups IS too early, but you can add the parentheses without mentioning capture groups, even if they do capture. grouping still has great value as a precedence indicator which is taught in gradeschool arithmetic.

it's rather unfortunate that the syntax to capture is "(" while the less complex no-capture is "(?:", i'm not sure who thought that through, but here we are.

<comment><USER10> Yes, I _hate_ that (?:) syntax. Who the hell thought that crap up.

But, I will point out that you attributed the error to NL/EOL assertion, when actually it was order of precedence of | being greater than $ and ^. It's a simple nearly 1-2 character mistake, not a "novice" mistake that discredits the entire book.

<comment><USER14> yeah i apologize, perhaps i was a bit harsh. i _did_ understand what the issue was and never claimed that it was the newline/EOL assertion itself. i said that your newline/EOL assertion is being treated as PART of the alteration, which is exactly what happens - yes because of pipe's higher operator precedence when no explicit grouping is defined.

novice or not though, 2 misplaced chars in a regex can make the diff between a security feature and a security hole, in this case matching a plethora of inject-able, potentially malicious characters which appear nowhere in the regex, not even as a wildcard ".", i would never make the claim that a 2-char mistake which matches this far beyond its intent is a minor oversight in a real-world, public facing application - and isn't that the ultimate goal?

the only issue in the context of a book for a regex beginner is that the regex gives the appearance of newline/EOL assertion hugging an alteration, but does something quite different. removing those assertions would clear things up for the better.

</comment></comment></comment></comment></comment></comment></comment><comment><USER16> The (?i) is a confusing part of that example expression, and I don't see why it's necessary.

<comment><USER10> Which one? That might be an error.

<comment><USER17> I think it's the one on the "cover page" (the one linked to from HN.</comment></comment></comment>


Tiny Emus: 8-Bit emulators - <AUTHOR> https://floooh.github.io/tiny8bit/ <comment><USER2> Author here. The most recent change is that I started adding debugging UIs to the emulators, using the excellent Dear ImGui ([https://github.com/ocornut/imgui](https://github.com/ocornut/imgui)).

The UI is in a separate version of the emulator, launched with the little "UI" button in the top right corner of the image panels (e.g. [https://floooh.github.io/tiny8bit/kc85-ui.html?type=kc85_4](https://floooh.github.io/tiny8bit/kc85-ui.html?type=kc85_4)).

The UI is updated once per 60Hz frame, so you only see a per-frame snapshot of the microchip pins which on its own isn't that useful yet except for a nice blinkenlight effect, but it will make a lot more sense once a step-debugging window is added. This will let you inspect the pins after each CPU instruction (still not as accurate as the emulation, which is running with machine-cycle granularity on Z80, and clock-cycle granularity on 6502 machines.

The emulators are written in C(99), with some platform-specific bits written in Objective-C and Javascript, and in C++ for the UI parts (since Dear ImGui is implemented in C++). Apart from the WebAssembly version, Win32, Linux, OSX and iOS is also supported, but you need to compile those yourself :)

<comment><USER3> This is super cool! And it's awesome that it uses WebAssembly.

</comment></comment><comment><USER4> Writing emulators is a lot of fun. Great stuff here :) Kudos!!!

A little off-topic: I end up doing a sub par job at writing some classic 8-bit emulators myself. At first it looks pretty straightforward, but becomes daunting as I progress, end up losing motivation for a couple of days before starting yet another project. How do you correctly learn this magic?

<comment><USER2> True, in the beginning it's tough because it takes so long until you can actually run small emulated programs and even then there's no real emulated computer yet, just a CPU. What kept me motivated was that I really wanted to play the games I wrote as teenager again and there were only very few existing emulators for this system, and none as easy to get running as just navigating to a webpage. There was also a bit of (unfounded) fear that those games would be lost since my own cassette tapes have rotted (unfounded because other people took care during the 90's to digitize the tapes and put them on the internet).

Once I had the first machine working (which required Z80 CPU, CTC and PIO emulations), it was fairly easy to build emulators for the other East German 8-bitters, and after that for the ZX Spectrum, and with each new machine it becomes easier and the chip emulations become better...

Another factor is that the emulators are only like a fallback project which I return to when I don't feel like doing something else (usually I reserve my Christmas vacation for this), and the emulators are also a nice testbed for my other projects (the sokol cross-platform headers, and generally doing WebAssembly stuff). These are small complete applications, yet built from very little code, so they're quite easy to maintain and experiment with.

</comment></comment><comment><USER5> How do I load a game into the 48K Emulator - I notice there are some in the github repo.

<comment><USER2> If it's the right file format (.z80 snapshot file), you can drag'n'drop local files into the browser window while the correct ZX version is running (48K vs 128).

</comment></comment><comment><USER6> I am wondering if there is any value of having old hardware around anymore.

<comment><USER7> There's still no way to emulate 32-bit iOS apps.

<comment><USER8> I am very worried that a lot of iOS games are going to be completely lost to time, due to how locked down the platform is.

<comment><USER9> Aurora Feint is a good example.†

It was released the same year the App Store launched. My wife was addicted to that game. The game and the author later disappeared. When my wife's phone was stolen in Rome, she couldn't re-download the game because it wasn't available on the App Store anymore.

Shame, too, because it was a really good game. I think it was the first app we ever paid for.

† [https://en.wikipedia.org/wiki/Aurora_Feint](https://en.wikipedia.org/wiki/Aurora_Feint)

<comment><USER10> If you have a backup of her phone from around that time you might be able to get the .ipa off of it, assuming it's on an older version of iOS.

<comment><USER8> But it's likely 32 bit only and won't work anyway on anything newer than iOS 10.

Actually, there's a decent chance it won't even work in iOS 10 or would have major glitches, because legacy compatibility in iOS just isn't great in general.

And it's literally impossible to downgrade to an older OS version after Apple has closed the signing window.</comment></comment></comment></comment></comment></comment>


TCP small queues and WiFi aggregation – a war story - <AUTHOR> https://lwn.net/Articles/757643/ <comment><USER2> I've worked on TCP full time for a couple years and have to say, the more I learn the more WiFi intimidates the heck out of me. I'm barely smart enough to work on wired connections, and think RF DSP is largely beyond my faculties. There's so much going on down there, and the cards are starting to become effectively what we used to call TCP Offload Engines which is unfortunate. The perceived benefit is lower power usage and optimization by RF-aware companies but the negatives are pretty obvious to me. This means that changes like this to mac80211 code (or moral equiv in other OSes) will be increasingly bypassed and done in opaque closed firmware.

</comment><comment><USER3> I wonder what the real-world impact of this regression is as I'm sure there are plenty of IOT devices out there that are running the affected Linux versions. As the issue likely only manifests at higher bandwidths, I guess things like wireless IP cameras or Wifi attached NAS would be the most affected.

<comment> Const-me WiFi cameras don't send that much data, WiFi quality varies based on distance to AP and radio interference. Also WiFi is often slower. A camera that streams 50 mbit/sec or more would be completely broken on any 802.11g 54 mbit/sec network.

NAS-es are better example; they are often bandwidth bound. My guess is, users are typically connecting them with a cable. Most clients are wireless these days (e.g. I happen to type this on a wifi connected laptop), so doing 2 radio hops, NAS-router and router-client, isn't good for performance: both data streams are competing for the same radio frequencies.

<comment><USER4> The afflicted Linux devices will be spoiling the commons, even if they can still get their own data sent without stalling.

Instead of combining frames for more efficient use of the available wireless channel they will be sending an individual frame per packet and degrading the total useful capacity of the channel. Wikipedia asserts in its WiFi frame aggregation article that the overhead of a packet can be greater than the actual data of the packet on high speed WiFi.

<comment><USER5> The afflicted devices definitely make much worse usage of their airtime, but do they actually end up getting much more total airtime/TXOPs? The stations in question are definitely their own worst victim, and the impact they have on competing stations could be far smaller.

</comment></comment></comment></comment><comment><USER6> Looks like OpenWRT snapshot versions since Nov/Dev 2017, and now their 18.06-rc1, should have this incorporated. [https://github.com/openwrt/openwrt/blob/a367645f23d2ed93ea29...](https://github.com/openwrt/openwrt/blob/a367645f23d2ed93ea29c7237fa1b2d6c3ded7e4/package/kernel/mac80211/patches/140-tweak- TSQ-setting.patch)

<comment><USER5> It doesn't help much to deploy this to routers, since they aren't endpoints for much TCP traffic volume. Smartphones, laptops and other Linux-based client devices are what need this fix the most.

</comment></comment><comment><USER7> I feel as though the spirit of this article fits very well with the "hacker" ethos appropriate for HN.

</comment><comment><USER8> How was this only recently addressed? WiFi transmission rates should be a commonly seen problem?

<comment><USER5> It takes some skill to figure out that your throughput is significantly lower than the actual radio transmission rate. There are a lot of factors that can hurt WiFi performance, and ruling out poor signal strength and interference isn't easy for most users.

<comment><USER9> Yup, we had a microwave that will happily take out Wifi in a 200' radius.

Every time I go through a drivethrough there's a 70% probability that my 2-meter radios breaks squelch even though I've only got it tuned to licensed amateur bands.

Long way of saying that RF is hard and amazing it works as well as it does.

</comment></comment></comment><comment><USER10> Anyone know if this was backported to older kernels?

<comment><USER11> No. It requires changes that were added late last year to the BBR scheduler.</comment></comment>


We fired our top talent. Best decision we ever made - <AUTHOR> https://medium.freecodecamp.org/we-fired-our-top-talent-best-decision-we-ever-made-4c0a99728fde <comment><USER2> Discussion from original post in 2017: [https://news.ycombinator.com/item?id=15474893](https://news.ycombinator.com/item?id=15474893)</comment>


Inventor of General Tso's Chicken dies in Taipei at age 98 - <AUTHOR> http://www.taiwannews.com.tw/en/news/3042881 <comment><USER2> I'm going to use the word literally here and actually mean literally. I have literally never ordered any other combo meal at a Chinese restaurant than General Tso's chicken. I had it once when I was a kid and never yearned to try anything else. I love that damn dish and I will eat some tonight in honor of this great, great man.

On a related noted: I once watched a TED talk given by a woman whose name I cannot recall that was about how all Chinese restaurants in the US serve basically the exact same menus. She pointed out that General Tso's chicken is funny because General Tso, a real person, lived in a time where it was highly unlikely that he ever saw broccoli let alone had it cooked in a dish. And now today a dish that prominently features broccoli is named after him.

<comment><USER3> I've never had - nor seen - General Tso Chicken with broccoli in it. The pic in the article doesn't show broccoli either.

<comment><AUTHOR> I live in the Midwest and I've seen it both with broccoli and without. PF Chang's which is one of the higher end nationwide chains has it with broccoli. Their version is called General Chang's.

[http://www.pfchangshomemenu.com/entrees/general-changs- chick...](http://www.pfchangshomemenu.com/entrees/general-changs-chicken)

</comment></comment></comment><comment><USER4> I often wonder about General Tso - someone who was once a great military leader, but is now known for a dish of chicken.

<comment><USER5> Strangely, in Boston they call the dish "General Gau's Chicken". This never made sense to me.

Then again, Bostonians also have a weird taxonomy around milkshakes vs "frappes" (and also "malts"? I'm so confused, and I lived there for two years)

<comment><USER6> We also call those circular things in the roads "rotaries" (as opposed to "roundabouts" or "traffic circles"), and what what most of America calls Italian ice, we call "slush"

<comment><USER7> Rotaries and roundabouts are different, though I wouldn't be surprised that people refer to some of one by the other's name.

[http://www.virginiadot.org/info/resources/round/Differences_...](http://www.virginiadot.org/info/resources/round/Differences_between_Modern_Roundabouts_and_Old_Traffic_Circles.pdf)

<comment><USER6> Interesting! I guess we only call half of the things by the wrong name in Boston instead of all of them then :)

</comment></comment></comment></comment></comment><comment><USER8> Chef Peng Chang-kuei (彭長貴) died at age 98 to pneumonia.

</comment><comment><USER9> Programmers and officeworkers around the US should be mourning this day.

General Tso's has always been one of my favorite "Chinese" dishes (real Chinese - food actually eaten in China - gets its own category). And I strictly prefer it to Kung Pao, the other popular chicken dish on the "Chinese" menu (it even has a nickname in JARGON, added under GLS in the 90s - laser chicken. There was no point to saying that, but if you minded irrelevant tangents, you'd be reading somebody else's comments).

</comment><comment><USER10> As an aside, if you want to cook (primarily Sichuan) chinese food I can highly recommend Fushia Dunlop's Every Grain of Rice - [http://www.fuchsiadunlop.com/books](http://www.fuchsiadunlop.com/books)

Excellent book, and includes a recipe for General Tso's Chicken.

</comment><comment><USER11> Outside of the US, is this really a thing? I live in Hong Kong and wouldn't even know where to get that dish here.

If it's as good as it's made to be, it's a shame it's not more widely available.

<comment><USER12> It's certainly not a thing in the UK.

I first heard of it on a radio programme about the Americanisation of Chinese food a few months ago, and I wouldn't know where to find it here.

I'd love to try it though.

</comment></comment><comment><USER13> Can someone answer me why anybody outside his friends and family would be at all affected by this? He was a chef who created a popular dish. He didn't change lives, he didn't make some grand contribution to the world, why would anyone feel personally affected by his death?

This reeks of distractionist news to me.</comment>


Ask HN: have you used 23andMe? - <AUTHOR>

Were you satisfied? I'm mainly interested in the genealogical results. <comment><USER2> Yeah I got one. I found out I have hemachromatosis which I'm now being treated for.

I also found out I have two copies of apoe4 which sucks (11x greater risk of alzhiemers!) but I've up my exercise and coffee as a result of that.

</comment><comment><USER3> Yep, I got it a year or so ago when they run an A/B test that allowed you to get it for the one time fee of $49.

I bought it mostly out of curiosity- and it was fun to discover the results, and show them to my parents etc.

Since then, I go back on the website maybe every 6 months or so, as they add some new stuff.

I don't regret spending $49, but I definitely wouldn't have spent any more money on it.

That being said, I'm young and healthy, so I wasn't looking for anything in it beyond the novelty aspect.

<comment><USER4> I just submitted my 23andme and was just curious if you enter information about yourself or do you keep your profile private?

</comment></comment><comment><USER5> I got a 23andme kit from work and I thought the results were interesting...it said that I'm 5x higher average risk for Colo-rectal cancer, and 17x higher average risk of developing gallstones...which interestingly enough my Grandpa had Colo-rectal cancer, and my mom had gallbladder surgery (and so did 3 of her sisters)...so my results were actually very interesting

</comment><comment><USER6> Yes, ditto what @GuiA said. The results were interesting but nothing earth shattering. I paid $100, and I feel it was worth it.

</comment><comment><USER7> 23andMe is good, but FamilyTreeDNA is better for purely genealogical results, as they have a bigger database for comparisons and the people you might match are more likely to have researched their backgrounds more thoroughly.</comment>


Ask HN: Self-hosted lightweight wiki engine suggestions? (MoinMoin alternative) - <AUTHOR> I have quite a dilemma:  since 2008 I've been running a personal MoinMoin wiki instance, which I've used (up until 2015-2018) for everything from notes, bookmarks, knowledgebase, publishing, presentations, projects, basically almost everything involving transcribing thoughts into words and research;  however since 2015-2018 I've transitioned away from it to a custom Bash script that just ties together `dmenu` / `rofi` with `howl` / `sublime` and streamlined my workflow further (although dropping any wiki syntax and web integration);  unfortunately by switching to a "local" workflow, none of my snippets and other useful links were "shareable", thus I thought to revisit the wiki engine landscape of 2020 and see what options are out there.
And unfortunately I can't quite find a suitable MoinMoin replacement, so I thought I'll ask the HN community for advice.  [See my comment bellow for what I'm searching for.]
As a sidenote, I was quite disappointed, as it seems that wikis have (except for a few notable cases like GitHub or Wikipedia) have been largely replaced by Wordpress clones...
Thanks for all the feedback! <comment><AUTHOR> [OP: Bellow I'm describing what I'm searching for in a lightweight wiki engine, suitable for replacing MoinMoin.]

Now I know that there are many wiki engines, from dokuwiki and MediaWiki up to Bookstack and Wiki.js, however none of them fulfill the following requirements:

* first and foremost it has to use the file system to store the page content; one file per page (or per page history if it supports revisions); this excludes databases, including embedded ones like SQLite or the like; (basically I want to be able to cobbler together `find`, `grep` and `sed` to extract what I'm searching for if I want;)

* secondly it has to be lightweight enough so I can run it on my laptop; thus fiddling with NGinx and Apache is sub-optimal, as is having another 20-worker-process behemoth (I have enough Electron-ware already)... (for context, in my previous MoinMoin setup, I actually had two instances running, one on a public server and one on my laptop, and I've synchronized the files between them;)

* if possible it should come in a single binary (e.g. Go, Rust or C/C++), or at least be self contained (e.g. virtual environment); also NodeJS is out of the question just because I don't believe I'll be able to deploy it 5 years from now when the project is dead... (and no, I don't want to run a cluster of containers or even a single VM for my wiki... it's a wiki after all, not a web-scale search-engine with NLP built into it...)

* the UI shouldn't be more complex than it needs, thus a large text area for editing the page (without an WYSIWYG editor), lacking syntax highlighting, and not integrating with Jupyter Notebook are actually a plus; :)

* support for ACL's (for keeping sensitive pages private) would be a plus; (MoinMoin had the best ACL solution from all the wiki's I've seen so far;)

* (obviously, it must be open-source;)

So in the end why not just go with MoinMoin? Because I have the feeling the project is dead, and the stable version (1.9) seems to support only Python 2.7, which has just been EOL-ed and I believe it will slowly start to phase out from distributions repositories... Thus I wanted to see if there are alternatives...

<comment><USER2> I can't offer an alternative, but given that you used MoinMoin for years, you could also look into porting MoinMoin to python 3? Most likely you will learn enough about its codebase to add the features you wanted in 2018.

If the upstream project is dying, you might not only do yourself but others a favor by reviving its codebase.

<comment><AUTHOR> Porting MoinMoin 1.x to Python 3.x would be a major hurdle especially since MoinMoin is very complex and has lots of advanced features (from supporting multiple syntaxes to API and even master-master replication). (On the bright side, by default it doesn't seem to have many dependencies, thus at least in that regard it would be easier.)

Therefore if I were to invest development time into a wiki engine, I would definitively go with a simpler Rust / Go based implementation from scratch.

In fact this is another reason why I'm looking for alternatives, namely I want a "simpler" wiki.

</comment></comment></comment><comment> Maha-pudma Zim Wiki[1] is amazing as a personal self-hosted wiki. Loads of good official plugins and unofficial. Everything stored as text and organised in folders I think similar to MoinMoin. Supports code highlighting, pasting images, tasks, journal, links (internal and external), back links, version control, etc. Just an all round brilliant piece of software.

1: [https://zim-wiki.org/](https://zim-wiki.org/)

<comment><AUTHOR> I've just given Zim Wiki a try, and indeed it seems to be closer to MoinMoin than other alternatives (also in terms of syntax, not only file storage).

However there are a couple of rough edges like for example:

* the builtin editor doesn't seem to have an option to edit the "raw" markup; it's always in WYSIWYG mode;

* according to the documentation [[https://zim-wiki.org/manual/Help/Wiki_Syntax.html](https://zim-wiki.org/manual/Help/Wiki_Syntax.html)] the wiki syntax is quite trivial (nothing bad in that), however it seems to be a strange combination between Markdown and a few other wiki syntaxes; thus migrating to and from Zim would be an issue; (I see that there is an Markdown export option, however just like in case of JPEG this is a lossy conversion, and after a few "rounds" the markup could degrade;)

* the builtin web server seems to be quite rudimentary; (perhaps there are plugins out there that solve this;)

<comment> Maha-pudma I just use the text editor I've set to open with the Edit Source menu item to edit the raw markup. When I moved over to Zim I just used pandoc to convert my notes, it worked very well with only minor issues, I don't know if pandoc supports moinmoin. I can't comment on the web server. I don't use it sorry.

</comment></comment></comment><comment><USER3> I'm running DokuWiki now, although as a PHP application it is somewhat irritating to integrate with the rest of my server setup, especially with the nice URLs mode requiring a bunch of rewrite rules. It is backed by plaintext files, has a decent permissions system, is decently lightweight, and has a fairly simple UI.

</comment><comment><USER4> I'm using Atom ([http://atom.io](http://atom.io)) with MaPerWiki extention for this with private personal github repo for storage.

<comment><AUTHOR> That's an interesting direction. For example for VIM users there is [https://github.com/vimwiki/vimwiki](https://github.com/vimwiki/vimwiki)

However this direction has a few important drawbacks:

* lock-in into a specific IDE / editor and syntax; (even if all claim to use "Markdown", in fact they add "extensions" that prevent migration from one wiki to another;)

* its not exportable / editable from a browser;

And the last one is what I miss from my current setup: the ability to export (parts of) my notes on the web, and the ability to edit them when I'm on the go and don't have my laptop.

<comment><USER4> maybe you should check org-mode ([https://orgmode.org/](https://orgmode.org/))?</comment></comment></comment>


A cartoon guide to Flux - <AUTHOR> https://medium.com/code-cartoons/a-cartoon-guide-to-flux-6157355ab207 <comment><USER2> Another commenter mentioned it, but I'm going to +1 using Redux [0] as well. If you need to pick up a framework, Redux is a great choice to consider, it's tiny and very simple. It pushes you towards keeping a lot of your business logic as pure JS, so testing your code tends to be really easy (and it means your code is re-usable, it's not tied super tightly to X or Y framework!). If you use it with React it's also a joy to test.

Something that Redux doesn't solve is data fetching, caching, and mutations. If you have a reasonably sized application, you'll end up having to implement a lot of logic surrounding data fetching and caching by yourself. The suggested solution is to store your resources normalized, indexed by id, and create selectors to get the data in the shape you want. This works out alright, but it's tedious and during your first few iterations on it you'll probably find yourself with a lot of boilerplate code.

Facebook released Relay [1], which gives you _the_ solution for data fetching and caching. If you give it a try, you'll be amazed by how much mental overhead simply disappears. You want data? You get it, that's it! But then your new problem is that you need a GraphQL server, and since it's a new technology that's not very mature (outside of Facebook at least), it means you'll have to do a reasonable amount of exploring. (I should really clarify that this is in no way the fault of the Facebook teams that put out Relay and GraphQL, both tools are amazing! It's simply that the ecosystems needs time to evolve and adapt.)

I'd say that in one or two years from now a formidable amount of frontend app will be using some variation on Relay and GraphQL.

[0] [https://github.com/rackt/redux](https://github.com/rackt/redux)

[1] [https://facebook.github.io/relay/](https://facebook.github.io/relay/)

<comment><USER3> Can anyone compare and contrast flux, reflux and redux?

I have got the hang of writing flux stores - and like the uni-directional dataflow model a lot. I also evaluated relay/graphql - which unfortunately is missing backend support for my relational db for the moment.

It feels like I need some experience with all the patterns/frameworks before it's possible to be confident about choosing and investing time writing code.

<comment><USER4> I have used both Reflux and Redux.

Um I guess they both have their place.

Reflux is simpler to understand and forgoes switch statements and has various ways to connect stores up, even allowing one store to trigger stuff on another. It's more easy to make a mess I think, largely dues to the multiple stores and how they interact with eachother.

Redux is more cleanly uni-drectional, has a larger community, amazing debugger, amazing hot reloading support, and a lovely concept of middlewares that can extend actions as they pass through your system. Most importantly I've found a single store/source of truth makes everything cleaner. It's also simpler code underlying it than Reflux and more of a nice design pattern.

I think Redux is clearer what is going on in my final programs and will tend to use this going forward.

</comment></comment></comment><comment><USER5> If you're willing to wait for JSON to schlep to the server and query updates to schlep back, using the change feed feature on RethinkDB gives you this with essentially no boilerplate.

Your DB becomes the "dispatcher" and "store", write queries are "actions" and read queries (with change feeds) are the updates from the store to views. And your web page just displays the most recent state.

</comment><comment><USER6> On a high-level, I am still struggling to understand the real difference between two-way data flow and unidirectional data flow. Sure, it is actions, and dispatchers, and stores, but if you collapse them into one block, it is still two-way. What is possible with this setup that two-way data flow could not do?

<comment><USER7> Well, for one, you don't have to rely on observers/watchers anymore. You also don't have to pass functions back up scopes/templates/components. It's also really easy to keep your code organized (since data can only go one direction, in a big circle, it's much easer to follow the flow of logic).

</comment></comment><comment><USER8> Redux to me is the most exciting part of patterns like Flux. Specifically the idea of immutable state where to change the state you replace the current state with a new object. This allows to do really cool things such as undo/redo of actions. Check this simple video out to understand the power of Flux + immutable state: [https://www.youtube.com/watch?v=jWq_3EH_mpg&feature=youtu.be](https://www.youtube.com/watch?v=jWq_3EH_mpg&feature=youtu.be)

<comment><USER9> > This allows to do really cool things such as undo/redo of actions.

It makes it easier for sure, but undo/redo isn't dependent on immutability.

<comment><USER4> It's much more complicated to build a system that can do undo without immutability IMO. Redux requires that you never mutate the global state object and things tends to be faster on large numbers of operations/clonings if you use something like Immutable.js.

<comment><USER10> You could store your state in DOM and serialize the entire page. Not very elegant, but it works and is relatively straightforward. Although, the mental leap required to represent your state via attributes is probably higher for most devs than even immutable data structures.

<comment><USER4> Sounds prone to bugs and very slow to me.

</comment></comment></comment></comment></comment><comment><USER11> You kind of had me at

"Models pass data to the view layer."

Those who don't understand MVC are bound to reinvent it...and invent fancy new names for it.

EDIT: just in case it wasn't clear, not pushing data from the model to the view, but instead letting the view pull it from the model as needed is pretty much the core feature of MVC.

<comment><USER12> That's not the issue. Whether its being pushed or pulled isn't relevant at all either.

The issue is when your views start pushing changes to the models and you then jump into a recursive cascade of updates. This is the control-flow equivalent of letting a thousands ping-pong balls loose and trying to predict where each and every one of them will end up.

I don't think its "MVC vs new fancy techs" as you make it sound but rather adding constraints to MVC in order to make it scale.

<comment><USER11> >The issue is when your views start pushing changes to the models and you then jump into a recursive cascade of updates.

No. You can only get into a recursive cascade of updates if your model pushes changes to the views in response to changes occurring on the model. Otherwise the two are decoupled.

In a typical MVC app, there are at least two phases: first you react to events and make updates to the model and send out change-notifications that invalidate those parts of the view(s) that represent the bits that have changed. In a second phase, you update the bits of the view(s) that were invalidated. Repeat.

No update cycles, as long as you only invalidate in the first phase, and only repaint in the second phase.

EDIT: The temptation is _huge_ to "optimize" this process by having the invalidation notification do the actual work of repainting. That's where you get into trouble, you need to keep it decoupled.

</comment></comment></comment><comment><USER13> I really like the philosophy of Redux (app state in a single object, pure components w only props, no state), but still think implementing this idea with observables would lend a couple extra benefits:

1\. no magic or monkeypatching ( like connect does to container's props)

2\. combine/merge make data dependencies much easier to reason about that a single node's state being updated by multiple 'case' statements.

ps: as a poc, I put together a tiny snippet the other night ([http://plnkr.co/edit/JIm88A7k7O0TCgfZ0O9f?p=preview](http://plnkr.co/edit/JIm88A7k7O0TCgfZ0O9f?p=preview)).

</comment><comment><USER14> To those who don't want to be tied to a specialized library, you can architect an app like that way (unidirectional data flow) quite easily if you use KVO properly.

<comment><USER15> Is KVO common in JavaScript? I've only ever used it in the Cocoa realm.

<comment><USER16> IMHO a KVO programming style in JavaScript would be very error prone since there's no typing.

</comment></comment></comment><comment><USER17> I haven't tried using Flux yet as I haven't really felt the need... Does anyone have insight on how to use it with React Native? Do you have a single action creator / dispatcher for your whole app? It feels messy since my screens in the app are usually pretty independent (but maybe I haven't written a complex enough app yet... hard to tell).

<comment><USER18> Go for Redux instead: [http://teropa.info/blog/2015/09/10/full-stack-redux- tutorial...](http://teropa.info/blog/2015/09/10/full-stack-redux- tutorial.html)

</comment></comment><comment><USER19> I still remember the first day when I decided to check out "Flux", I was googling for half a day, before I realise that it's "just an idea" how to manage your application flow.

So far I'm using yahoo fluxible as an implementation and it works pretty well in my new isomorphic app.

</comment><comment><USER20> didn't get to the end, but your writing and graphic style are excellent and very readable</comment>


It's Time to Drop the "www" - <AUTHOR> http://dmiessler.com/archives/1471

<comment><USER2> This seems like an extremely futile attempt to fix something that isn't broken.

You can already access most properly-managed sites without the www.. This "initiative" is just going to confuse people.</comment>


Asynchronous JavaScript at Netflix - <AUTHOR> http://techblog.netflix.com/2014/03/going-reactive-asynchronous-javascript.html

<comment><USER2> This talk has been given a number of times, but keeps getting better, such as at MountainWest JavaScript 2014: [https://www.youtube.com/watch?v=XE692Clb5LU](https://www.youtube.com/watch?v=XE692Clb5LU)

Jafar Husain, and myself (Matthew Podwysocki) will also be giving the talk at QCon NYC in June: [https://qconnewyork.com/presentation/end-end-reactive- progra...](https://qconnewyork.com/presentation/end-end-reactive-programming- netflix) in addition to a great tutorial that we put together: [https://qconnewyork.com/tutorial/functional-programming- js-w...](https://qconnewyork.com/tutorial/functional-programming-js-w-focus- reactive-programming-rx-js-0)

But, if you're interested in playing with it yourself, we have it listed here: [http://reactive-extensions.github.io/learnrx/](http://reactive- extensions.github.io/learnrx/)

<comment><USER3> I saw this at Yow! a couple of years ago. Really cool stuff.

</comment></comment><comment><USER4> Note that Netflix have a Java version here [https://github.com/Netflix/RxJava](https://github.com/Netflix/RxJava)

They certainly have some interesting technology.

<comment><USER5> _> They certainly have some interesting technology._

I would hope so based on the salaries they pay their engineers

<comment><USER6> They pay roughly the same as Google or Facebook, except they put everything into the salary and leave it up to the employee to decide what to do with it. If you want stock options, you can just trade some cash for them (at a reduced rate). So their salaries are higher, but the total compensation is roughly the same.

</comment></comment></comment><comment><USER7> I've been prototyping some bindings to make Firebase work with RxJava / RxJS, since the model seems like a good fit.

If anyone has the time and inclination, I'd love some feedback.

RxJava: [https://gist.github.com/gsoltis/86210e3259dcc6998801](https://gist.github.com/gsoltis/86210e3259dcc6998801) RxJS: [https://gist.github.com/gsoltis/ee20138502a4764650f2](https://gist.github.com/gsoltis/ee20138502a4764650f2)

Also, is ReactiveCocoa what most people would use to do this in ObjC? [https://github.com/Reactive-Extensions/Rx.ObjC](https://github.com/Reactive- Extensions/Rx.ObjC) doesn't seem particularly active.

<comment><USER2> First off, great work! I'm the primary authors of RxJS and made a quick comment on your Firebase interaction. We need to ensure that we minimize the number of handlers created. Comments should be inline! Keep up the great work!

</comment></comment><comment><USER8> Very interesting. By the way if someone is interested in more details about Reactive programming, there is a great coursera course about it ([https://www.coursera.org/course/reactive](https://www.coursera.org/course/reactive))

</comment><comment><USER9> Here's another javascript FRP library: [https://github.com/baconjs/bacon.js](https://github.com/baconjs/bacon.js) (it was inspired by Rx)

I've been using bacon.js in conjunction with Facebook's React to write more of my application declaratively. React automatically updates the DOM when bacon properties change.

<comment><USER2> A number of people have been using React with RxJS as noted here: [https://github.com/Reactive-Extensions/FutureJS](https://github.com/Reactive- Extensions/FutureJS) . We also have native support in RxJS for jQuery/Zepto, Angular and Ember events natively (if of course they are referenced).

As the primary author of RxJS, I'm curious why you chose bacon.js over RxJS.

Anyhow, these architectures go well together!

<comment><USER9> Thanks for making RxJS!

> I'm curious why you chose bacon.js over RxJS

At the time I made the decision, Bacon had documentation and RxJS didn't (at least, not that I could find). I was new to FRP, so that made my decision for me -- I never went back and reconsidered.

Are you aware of any advantages RxJS has over Bacon? It looks a bit more extensive in general, so now I wonder what I'm missing out on :)

</comment></comment></comment><comment><USER10> The conf talk on youtube by Matt Marenghi [linked in the post] is really awesome. Provides great examples and resources. Really worth 28-min.

Direct Link: [https://www.youtube.com/watch?v=XRYN2xt11Ek](https://www.youtube.com/watch?v=XRYN2xt11Ek)

</comment><comment><USER11> Really glad to see reactive catching on. It really is a significant improvement over raw events, even in trivial cases.

</comment><comment><USER12> Link to slide deck is broken. Mirror: [http://www.slideshare.net/tymekpavel/asynchronous- javascript...](http://www.slideshare.net/tymekpavel/asynchronous-javascript- at-netflix)

</comment><comment><USER13> As opposed to... Synchronous javascript?

</comment><comment><USER14> Opinions on reactive vs promises?

<comment><USER15> Reactive (event) streams are a generalization of promises in a sense, from a single value to a stream of multiple ones. Both are monads.

Streams are to promises what lists are to maybes (options).</comment></comment>


Facebook's "free internet" programme hits a roadblock in India - <AUTHOR> http://www.economist.com/news/business-and-finance/21685292-critics-argue-mark-zuckerbergs-generosity-cover-landgrab-facebooks-free-internet <comment><USER2> Personally, I believe Zuckerberg is sincere in wanting to connect everyone in the world with each other.

However, I believe he is also sincere in thinking that Facebook is the best and perhaps only platform by which this is possible. In this he is sincerely mistaken.

I feel sure he doesn't think of it as a land grab, even privately. But he is looking from the inside out. If he wants to be seen as the Great Connector, he needs to be pouring money into local infrastructure, subsidizing open source routing software, lobbying worldwide against entrenched bureaucracy and corporate obstructionism. They're doing some of that, sure, but Free Basics is heavy handed and no one trusts Facebook to begin with - it's not strange to think of it as a sort of modern digital imperialist.

<comment><USER3> Zuckerberg is the new Bill Gates. In the 90s, Gates was notorious in his ruthlessness to define personal computing as a 100% Microsoft-only experience. Today, as you pointed out, Zuckerberg is pushing equally hard at defining the internet and Facebook to be one and the same. In both cases, it doesn't really matter whether or not the efforts are sincere. The outcome is just as undesirable for the general public either way.

<comment><USER4> Microsoft was in a class by themselves in terms of how their ruthlessness played out. Harsh negotiation demands plus technical bullshit like this: [https://en.wikipedia.org/wiki/AARD_code](https://en.wikipedia.org/wiki/AARD_code)

I haven't heard stories like this about Facebook, but perhaps they're better at covering their tracks.

<comment><USER5> Walmart was in the same class

<comment><USER6> All successful companies are part of the class, visible or not.

</comment></comment></comment></comment></comment><comment><USER7> I like Eben Moglen's and Mishi Choudhary's take on this situation:

        Faced with the dawning public recognition that this
        so-called philanthropy is nothing but an attempt to buy
        the de-anonymised packets of the Indian poor at a bulk
        rate, breaking their security in the process of
        destroying their privacy, Facebook has no alternative
        but to change the subject.

[http://indianexpress.com/article/blogs/mark-zuckerberg- nobly...](http://indianexpress.com/article/blogs/mark-zuckerberg-nobly- carries-white-mans-burden-poor-indians-data-packets/)

<comment><USER8> "Free Basics by Facebook provides free access to basic internet services to a billion people all over the world. Your service can be part of it."

Basic internet service. Ok. One app constitutes basic internet according to Zuckerborg.

<comment><USER9> > Your service can be part of it.

This part is my favorite. I _know_ that my personal website is ineligible because it contains some JavaScript code that handles the navigation, but I submitted it regardlessly just to see how complicated the process is (and to write a blog post about my experience so that others would know what to expect).

That was like 20 days ago. I'm still waiting for someone from Facebook to contact me.

<comment><USER10> You weren't joking. Should be as dumb as getting your webpage crawled by google: [https://www.google.com/webmasters/tools/submit- url?pli=1](https://www.google.com/webmasters/tools/submit-url?pli=1)

Why all the wording:

[https://developers.facebook.com/docs/internet-org/how-to- sub...](https://developers.facebook.com/docs/internet-org/how-to-submit)

</comment></comment></comment></comment><comment><USER11> Few points here:

1\. It's not really internet. It's a set of 100 sites that includes a real estate portal and a personal blog. If you are talking about connecting the unconnected with essential services, why have these on your list? On the other hand, chennairains.org, a website that helped people during extreme floods in chennai was not on that list.

2\. There is no proof that "free basics" actually improves internet connectivity. In fact, Facebook's telecom partner (Reliance Comm) advertises it as a way to save money for surfing on facebook and whatsapp.

3\. None of the traffic must be encrypted

4\. All traffic flows through facebook's servers

5\. It's not an open platform. Facebook and Telcos reserve the right to accept or deny websites on "Free Basics"

The above points make it clear that "free internet" is a facade and it's more of a walled garden that makes facebook the gatekeeper. Another Telco launched something similar a few months ago and was scrapped because it violated net neutrality.

Arguments that "free basics" is required for internet to grow in India are ridiculous. India added _52 Million_ internet users in the first six months of 2015 ([http://articles.economictimes.indiatimes.com/2015-09-03/news...](http://articles.economictimes.indiatimes.com/2015-09-03/news/66178659_1_user- base-iamai-internet-and-mobile-association))

<comment><USER12> Even though it seems a big number, 52 million is nothing compared to the people who still do not have access. I think the growth rate is not fast enough. We should be doubling the installed base every year. 52 million is just about 1/6 of the total number of users. And I'm inclined to believe that this sluggishness is due in part to the cost of access.

<comment><USER11> Once you reach a certain scale of users, percentage growth don't matter because it's hard to hit big absolute numbers. In whichever way you look at it, 52Mn is a freakishly huge number. And this timeline is 6 months, not a year.

Further "Free basics" has been launched in other countries. But there is not proof that it results in more internet connectivity. ([http://www.business- standard.com/article/economy-policy/ther...](http://www.business- standard.com/article/economy-policy/there-is-no-correlation-between-reducing- digital-divide-differential-pricing-r-s-sharma-115123100461_1.html))

<comment><USER12> I do not see any proof that such a correlation does not exist. Your link contains an offhand remark that does not cite any study or data. I think it's common sense that if you offer something for free, more people will use it.

<comment><USER11> It's not common sense. A good example is the vast number of open source projects that are never used. Or free books that are never read. Also, I would like to remind you that, it's not the internet that facebook is giving access to. It's sites that have paid facebook to be on it.

</comment></comment></comment></comment></comment><comment><USER13> There is a remarkable disconnect between the critics and the users here. Note that no users were cited in the article.

I understand not liking Facebook's motives, that's fine. Perhaps we can defer to the preferences of users here, who can choose to accept those motives or not, and to decide if the trade-off is an acceptable one. If we believe that they are unqualified to make this choice, one should explain that position.

Instead, the critics are imposing their preference on the users here, who are poor and (in this article) unheard. Can we please see an article where such people are quoted, and perhaps some numbers about usage, revealing their empirical preferences?

<comment><USER14> How is a poor Indian citizen supposed to make a judgment on if having a locked down Internet where they can only use Facebook is better than this Internet they might not have even heard of with millions of websites? They only _see_ one side of this argument if any at all. From their perspective they _do not know alternatives even exist_.

<comment><USER15> It's not that they don't _see_ other alternatives. This is true, but the reality is that other realistic alternatives don't even exist.

Their realistic option set is: (a) free access to an incredibly valuable set of resources, or (b) nothing.

I would take (a) over (b) any day. I would hope that broader alternatives would eventually come along (and history tells us it will), but the crowd that wants the Indian poor to have _nothing_ until that day comes is, in my opinion, despicable. Heck, I might not even mind some gated internet in the US if I was free to opt-in/out of it and it reduced my internet costs.

<comment><USER16> It's not an either/or. You're drawing a false dichotomy and then choosing the lesser of two evils. There is a third possibility as others have pointed out which is to actually lobby for improving all the basic infrastructure so that the real internet and not some hobbled version of it is available and accessible to everyone.

<comment><USER17> It's not a false dichotomy. No one is offering to improve the basic infrastructure, nor lobby for it. The _actual_ choices are the ones he outlined above.

Do you ascribe to the Copenhagen Interpretation of Ethics? [http://blog.jaibot.com/the-copenhagen-interpretation-of- ethi...](http://blog.jaibot.com/the-copenhagen-interpretation-of-ethics/)

<comment><USER16> Yes, but false dichotomy does not mean you can't make up a valid third option. I don't know about the Copenhagen Interpretation of Ethics.

</comment></comment></comment></comment></comment></comment><comment><USER18> I'm personally disappointed by the comments in this article and others, specifically from people here in the Western world, that portray the fight by the internet activists as a fight against internet access to the poor. No one would make arguments like that here. Almost everyone rallied behind Net- Neutrality. Why is that it's ok for the poor to give up their liberty because they can get something of value in return? "beggars cannot be choosers"? Come on - no one is begging for internet.

<comment><USER19> what exactly are the poor giving up?

<comment><USER20> >>Why is that it's ok for the poor to give up their liberty because they can get something of value in return?

In this case, choosing how to access the Internet.

<comment><USER17> I don't see how anyone is giving up the choice of how to access the Internet. Opposing Free Basics is opposing that choice. Free Basics is offering a new choice, and more choices is always a rationally better thing.

What is your position on the Copenhagen Interpretation of Ethics? [http://blog.jaibot.com/the-copenhagen-interpretation-of- ethi...](http://blog.jaibot.com/the-copenhagen-interpretation-of-ethics/)

<comment><USER20> Nobody is giving up a choice at the moment, but if Free Basic becomes a thing, there won't be a choice in the future. That is the problem people have with it. Almost everyday I hear people complaining about how Comcast/ATT have monopoly in the US and how they are exploiting the helplessness of people. How is FreeBasic any different? For a lot of people, the only internet they will know will be the version that FB thinks is right for them. This is less a question about choice, more about net neutrality.

About the Copenhagen Interpretation of Ethics, I am not knowledgeable enough to form an opinion yet. I'll get back to you on that.

</comment></comment></comment></comment></comment><comment><USER21> Data infrastructure should be controlled by the government only.

Why? Well, imagine that every transport company had to support their own road network... Alternatively, imagine that one company controlled the roads, creating effectively a controlled market nested inside a free market.

<comment><USER22> Except fiber cables are not at all like roads, in that you can run dozens side by side in less space than a single water pipe.

And for the same reason, the companies vs government dichotomy is invalid here as well. Even if we want to provide a public service to avoid private monopolization, there's absolutely no reason to forbid private companies from competing with it.

After all, if the problem is that private companies are greedy, a public ISP funded only by their customers' fees and without profit-seeking shareholders should solve the problem within a system of fair competition.

<comment><USER14> It is still hugely expensive to have redundant infrastructure, and that has real economic consequence to a country who decides to have private companies lay their own independent wires than at least compelling price controlled renting of those lines.

But there is the other side of the equation that matters too. If you have complete government control there is no more market pressure on innovation at all. Nobody would have a reason to develop faster consumer fiber systems since there is no money to be made.

<comment><USER23> The market has already converged on essentially this reality. We have cable and fiber monopolies controlling the local networks. These used to be more open when DSL was the prevalent technology. This allowed a variety of ISPs to utilize that shared infrastructure. The telcos didn't care about the Internet before. Once there was apparently money to be made they changed their game. They developed faster connections on closed infrastructure and displaced the smaller players. The only way to compete is with new infrastructure. The incumbent monopoly has a massive advantage overcoming this barrier to entry. They have, and need only maintain, dominance. It takes a massive initiative (like Google Fiber) to provide a threat and revive genuine competition. The "free market" isn't optimal here. Google is taking one for the team. We can't always count on this sort of thing. Without public ownership and regulation of monopolies there's no "free" market. There is of course but the entirety of the market is the only object for sale. Once privatized it becomes anything but free. Government ownership mitigates this problem by allowing the public to assert further market freedom via regulation. Like net neutrality. As we are beginning to see, without owning the infrastructure, we can't make this regulation stick.

When a monopoly is the optimal solution, it ought to be the government. If it isn't then it will be a private company. The former can be shaped by public vote in order to enforce an optimal solution. That is: solve the problems that require a monopoly and give the rest back to the free market. The latter has impunity and seeks to monetize it. That is: to control access to the market.

<comment><USER22> The logic would be funny if it wasn't sad. The government creates a monopoly (AT&T). That company uses that power and money accumulated through decades to extend its reach into the cable system (current "Comcast" is actually the merger of a medium provider with AT&T Broadband, which held dozens of millions of cable subscribers). Then that is used to show that a government monopoly is needed.

Maybe you could actually decide to try a free market before declaring it a failure?

<comment><USER23> I thought it was utterly obvious that a monopoly should provide and service the local infrastructure. Would you also like free market roads? How about the electrical grid? Water? Sewage? Local infrastructure isn't a fungible commodity. If it were then traffic jams and blackouts wouldn't be a thing. Also, local demand isn't scalable. You only need one road outside your house. Several competing roads would be horribly underutilized on the low end of scale. On the high end you're maybe onto something. Private bridges and freeways may be a decent idea. Private airlines certainly are. But then you're right back to what I'm advocating.

My point was actually that when the inherently monopolistic aspect is factored out the free market can flourish. This is how it works in Europe. Governments provide the "last mile" connectivity. ISPs compete to provide access to the outside world. This competition isn't possible if the local infrastructure is owned by an ISP. They are incentivized to shut down the free market and reap their monopolistic rewards. They lock down their infrastructure. This creates a huge barrier to entry. They can then: Overcharge. Inspire competition. Crush them with their accumulated capital. Overcharge... Anyone attempting to compete is necessarily constructing redundant infrastructure. The "zero government involvement" thing actually hinders the free market here. Our road system enables tremendous free market enterprise. If retailers had to pay a road cartel for the right to do business it would be a disaster. Walmart would take over the roads and overpower anything it cared to which depended on them. Basically what Facebook is trying to do in India.

<comment><USER22> As I pointed out in my earlier post, I don't agree that fiber cables are anything like roads (or sewage, for that matter). "Infrastructure" means many things, and it's certainly not obvious that the same solution is the best for all.

 _My point was actually that when the inherently monopolistic aspect is factored out the free market can flourish. This is how it works in Europe._

I live in a Western European country. This is not how it works here. ISPs own their own cables. Yet I have four of them offering me service, four of them over fiber, but also cable, DSL and 4G. Yes, it's expensive. Many private investments are, yet they still get made. Yes, it's redundant. Reliability depends on it.

From what I've read, our situation is hardly atypical, as private installation seems to be the case in Germany, the Netherlands, Switzerland, Moldova, Slovakia and others.

The US case, on the other hand, it's hardly representative of a free market, and your problems can not be attribute to it.

<comment><USER23> _As I pointed out in my earlier post, I don 't agree that fiber cables are anything like roads_

The earlier post:

 _Except fiber cables are not at all like roads, in that you can run dozens side by side in less space than a single water pipe._

Ah. That's a great point actually. Maybe the solution is just to have the public provide and support this "fiber pipe". Not the fiber; Just the pipe. This would lower the barriers to competition for last mile connectivity. I still think this ought to be insulated from the upstream connectivity providers. To continue the analogy: The cables are self-driving uber-like taxies and the pipe is the rode. I want regulation to ensure every taxi is totally interoperable with every private freeway/bridge/airline in a given area. I also want the option to just use the taxi for local services. I don't want a taxi cartel to tell me where to shop.

 _I live in a Western European country. This is not how it works here._

Okay. I'm pretty ignorant about these issues. I'm operating from a cached worldview. I did some searching and I'll concede this point. I'm a sucker for "Europe has this figured out already" narratives. I still like the idea. In general I'm opposed to government protected monopolies. If monopoly is the emergent reality then it should be reduced to the narrowest causal factor and kept under government control. Everything that remains should be returned to the free market.

<comment><USER22> _Ah. That 's a great point actually. Maybe the solution is just to have the public provide and support this "fiber pipe". Not the fiber; Just the pipe._

You're in luck :) that's exactly what the Broadband Conduit Deployment Act is all about.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER20> For the people arguing that rich people are preventing the poor from getting internet access, please read about the Nestlé baby formula scandal. This is exactly the same thing.

[https://en.wikipedia.org/wiki/Nestlé_boycott#Baby_milk_issue](https://en.wikipedia.org/wiki/Nestlé_boycott#Baby_milk_issue)

<comment><USER24> It is somewhat similar because the long-term effects were malicious/not known in the short term. But its not exactly the same because anyone can switch internet carriers at any time (nobody gets medically tied to Free Basics).

'Facebook addiction' isn't as objectively proven as the side effects mentioned in the article. 'Tracking usage data and privacy snooping' isn't as harmful as the side effects mentioned, because poor people probably value their 'usage data' less and access to basic resources like Wikipedia/job posting sites/health and weather reports more. (and its just fear and speculation that facebook will maliciously track all data passing through its servers, but we are treating it like inevitable fact)

<comment><USER20> >But its not exactly the same because anyone can switch internet carriers at any time (nobody gets medically tied to Free Basics)

Given how there is no alternative, it is pretty much facebook or nothing.

</comment></comment></comment><comment><USER25> The content creators need to be separate from the content distributers. This way there is lower incentive for either to perform manipulative actions. With Facebook providing the content and the service at a low price (free in this case) they are setting up a model where the poor are funneled into there definition of applicable content. Sure some people upgrade, it is there argument, but at what cost. If Facebook really is trying to improve the world, they they should invest in a sustainable infrastructure for the poor with full access to the internet. Is it going to piss of people who pay for it, yes, but does it empower the poor to have tools they didn't have before and give everyone an opportunity to improve these regions, yes it does. The cynic in me though thinks its just gonna create a generation of poor people addicted to Facebook and online video. I just spent 4 months living in Shenzhen China and man are the shopkeepers addicted to playing video games and watching soap operas on there computers.Thats all they do.... all day. The internet is really only a tool for businesses and motivated individuals, for the rest its just another way to be manipulated.

<comment><USER26> wow, reading your comment, one would believe we were in the decade prior the iPhone years, where the carriers were trying to take control of all content, giving priority and exclusive access to their own content and services. Another decade later, the same temptation has survived. If history repeats itself: it will fail. Let's wish ourselves good luck!

</comment></comment><comment><USER27> Its important to note that WhatsApp is not part of Internet.org. The telecom providers in India are not happy with messaging apps as they are cutting into their text messaging revenues. And they want to charge people for WhatsApp access (its already happening). With Facebook's help they get to create a tiered internet under the guise of "helping the poor".

<comment><USER28> It seems kind of unlikely that facebook would cooperate on an intentional goal to reduce access to WhatsApp, when Facebook owns WhatsApp. But maybe. Or maybe that was the telecom's motivation, if not facebook's.

</comment></comment><comment><USER29> Free internet is basically a deal that FB did with some carriers to provide some of their resources in exchange for some kick ass promises and possibly funds.

The easy way to do this for ANY government would be to force all wireless carriers to provide 200 MB free internet to all citizens in exchange for license to broadcast.

This happened once in Poland for example when government provided frequencies in exchange of forcing the company to provide unlimited, but slow internet to all citizens through mobiles.

<comment><USER30> completely agree and this will make a good start for lot of people.

</comment></comment><comment><USER31> What humors me most is that no one is up in arms against Reliance. On top of it, no one is suggesting Reliance whose owner is a billionaire long before Zukerberg was, to give free interwebs to his fellow Indians.

India has 80% adults with no access to Interwebs, how are you going to solve this problem in next 5 years?

*Do not tell me INR 20 dataplan, I know its there and I would not wish it on my worst enemy.

<comment><USER32> You could solve this problem if the govt provides more spectrum to the telco companies and in turn ask them to subsidize it to the poor. In this day and age, its not tough to do it. Just because it's tough, you would not want to accept some unfair offering.

<comment><USER31> So why is it not being done? From my previous life spent in India, government subsidies are guaranteed income for politically connected.

</comment></comment></comment><comment><USER33> The fb's attempt to control the internet in third world country brings this quote to mind...

      When deep space exploration ramps up, it'll be the corporations that
      name everything, the IBM Stellar Sphere, the Microsoft Galaxy,
      Planet Starbucks.

In this day and age, Internet should be a utility, with government subsidizing it if required while preventing _walled gardens_.

<comment><USER34> More likely a Microsoft Surface in a Samsung Galaxy :-)

</comment></comment><comment><USER35> It's unbecoming of a large corporation that "wants to work for connecting people" to make statements like these against net neutrality advocates :

"Facebook has been urging users to sign a petition that claims that "a small, vocal group of critics… demand that people pay equally to access all Internet services, even if that means one billion people can't afford to access any services," and that "unless you take action now, India could lose access to free basic Internet services, delaying progress towards digital equality for all Indians."

Facebook has resorted to slander when they can't give transparent answers to the issues raised against Free Basics.

Quote Source : [https://www.accessnow.org/open-letter-to-mark-zuckerberg- on-...](https://www.accessnow.org/open-letter-to-mark-zuckerberg-on-net- neutrality-in-india/)

</comment><comment><USER36> AOL should get in on this. They could put all of those old CDs to good use.

Free internet program from the late 90's: "1000 hours free! Sign on today!" :)

</comment><comment><USER37> It doesn't take a genius to figure that out. Of course it's a land grab. The same way Google Fiber is trying grab North American broadband.

<comment><USER38> It's not in the same way at all.

Google Fiber is _real_ internet; 'free internet basics' are an attempt to turn the internet into a walled garden.

<comment><USER39> > Google Fiber is real internet

Minus the things their ToS forbids. Only recently they started allowing you to host game servers, for Minecraft, for example.

Their Fiber team heavily opposes Net Neutrality, too. Sadly.

<comment><USER40> "Minus the things their ToS forbids. Only recently they started allowing you to host game servers, for Minecraft, for example. "

Basically no residential ISP in the US i'm aware of allows server hosting. Certainly no major ones :)

<comment><USER39> Just because everyone does it doesn't mean it's good.

Now, that IPv6 is becoming more popular, and we might be able to provide globally unique IPs for every end device, and that 24/7 connected internet is standard, it should be a thing of 2 or 3 clicks to host a webserver.

It should be a no-op to set up a raspberry pi to serve websites – and it would definitely provide a lot of kids and students the ability to experiment a lot easier.

Remember, Facebook in its early days was hosted from a dorm room at college. Google from a garage.

</comment></comment></comment></comment></comment><comment><USER41> > Though the programme is promoted by Facebook, its costs are borne by the > mobile-telecoms operators it works with.

How does that even work? Why would the telecoms agree to pay the bill on behalf of Facebook? Surely there must be some money from Facebook back to the telecom, to make it worthwhile for them.

Edit:

[https://en.wikipedia.org/wiki/Facebook_Zero](https://en.wikipedia.org/wiki/Facebook_Zero)

[http://telecoms.com/opinion/0-facebook-com-means-zero- money-...](http://telecoms.com/opinion/0-facebook-com-means-zero-money- changing-hands/)

<comment><USER42> I guess because it leads to "full" internet subscription which generates revenue (assumedly profits) for them.

<comment><USER41> This makes a big difference to me. I was actually for Facebook basics, when I thought Facebook picked up the bill so that poor people could access at least some internet. But if the operators are paying for this ... then what value is Facebook actually providing?

<comment><USER32> They say they provide the platform and guidelines and works with telcos across the world. But it's not a convincing answer to a normal user. Thing is, if FB can do it, certainly Google and other major companies can do it.

</comment></comment></comment></comment><comment><USER43> Too all the oh-India-is-so-poor-needs-charity-for-everything people out there, digest this: India has 1bn live mobile phone connections (live month on month and not just issued). It has been done by cut throat competition between private phone players, such as airtel, vodafone, reliance, tata among others, and supportive government measures such a giving spectrum for cheap. No verizon needed to come here with their charity plate, giving away restricted free phone connections.

</comment><comment><USER44> Free Basics, if legalized, sets a precedent for ISPs to offer zero-rated plans which affects everyone. You don't want a huge market with more than half a billion users (by 2020) where zero-rated plans are commonplace. Everyone loses out in such a situation except the ISPs. Netflix was just launched in India, and Reliance (the carrier that supports Free Basics) has a similar offering called Bigflix, which they can zero-rate to eliminate Netflix. Airtel, another huge operator can zero-rate their messaging application Hike to eliminate WhatsApp/Snapchat. Their music offering can eliminate Spotify (if they do come to India) or any other music streaming startup. Flipkart, an e-commerce player can eliminate every other niche e-commerce startups in India by zero-rating their services, which they tried last year.

Sadly, all the campaigns are focused on Facebook/Zuckerberg and people calling for a ban on Free Basics when they should actually be campaigning against zero-rating.

Free Basics might be a great gateway drug to the internet, but what good is it if the internet as we know today will not exist when the poor decide to get a "complete" internet connection?

</comment><comment><USER45> I don't understand why this is restricted to Facebook. If the telco is providing no-cost data to poor consumers, why does it matter which websites they go to? That's the suspicious thing about this, not the simple fact that Facebook is involved.

</comment><comment><USER46> The Internet only blossomed after it was freed from proprietary access by AOL.

Zuckerberg plans to move the internet back to the dark ages.

</comment><comment><USER47> First of all, this is not "free internet" they are trying to provide. Second point - if they were trying to genuinely provide a free internet service, nothing is stoping them from doing it without all the legalise TOS that surrounds it at the moment. Third point - Free 200MB or 500MB data per month for each person is the best way to do it(no video streaming/big files download), if "helping" was the actual intention. If the only services that is accessible through it will be the ones approved by facebook, stop calling it "free internet".

Also the cost of providing the service is on the ISP/carrier that FB ties up with.

The key factor that is glossed over is:

> Though the programme is promoted by Facebook, its costs are borne by the > mobile-telecoms operators.

I was all for facebook basics when I thought Facebook was paying for poor people to access at least some restricted internet access. But its actually the operators that are paying for this. Giving away free access to some sites in a walled garden, hoping those same users will pay to access other sites at some points.

So Facebook is just a beneficiary in all of this. Getting new users at no cost. Taking the credit for it, while operators are actually paying the bills.

<comment><USER47> The poor also deserve privacy and actual internet instead of being snooped up on and fed by "internet for the poor".

</comment></comment><comment><USER48> The internet is difficult to describe to someone who has no experience with it. It's like "There's this flibity divit called Google that lets you search for hurgfbr and find veruhryhr written by people you like." If someone has no way to conceptually anchor terms like "search engine", "web pages" or "blogs" then it will be difficult for them to understand what's being said, much less know what they're missing out on.

With bare minimum exposure to the ideas via Free Basics, people will be able to imagine what else is out there. It becomes "Google is like when you type words into the search box on facebook, except you get more results and they're more relevant." I would imagine that once exposed to even a limited version of the internet, people will quickly demand unrestricted access from their local government. But they have to know what they don't have before they can ask for it.

If this is all an Evil Plan by Mark Zuckerberg to set up an internet monopoly in India, then it's a very stupid plan. Facebook is a communication platform. People will use it to communicate with people who have normal internet, and will no doubt hear about all the things that they don't have access to. It's only a matter of time before "Free Basics" becomes "Low Cost Government Internet Access For All".

For many people from my generation, AOL was the internet. It was all we knew. But eventually we figured out that there was more out there, and the people of India are capable of doing that as well. There are hackers in every culture, at every social strata. If you give them an inch, they'll turn it into a mile or more. Free Basics isn't perfect, but for many people it's better than nothing.

</comment><comment><USER49> One more reason to stop using facebook.

</comment><comment><USER50> Free basic internet may include Google search, Wikipedia, email of choice, access to all pages that Google suggests in first two pages. But I think Facebook should not be part of basic internet.

</comment><comment><USER51> "And if Free Basics proved popular there would be little to stop India's big media and e-commerce groups from creating rival offerings, to drive first-time surfers towards their web offerings."

And that's _precisely_ the problem. Most advocates for Net Neutrality are afraid of exactly this: the death of the free and open internet for those who can't afford it, replaced by some fragmented collection of services offered in a bundle package like some Cable Television plan.

</comment><comment><USER52> Rich people limiting poor peoples options, again.

It's much better they eat cake, than this "free internet"

<comment><USER53> This is probably the most idiotic argument against the critics of Facebook and it is not even original.

</comment></comment><comment><USER54> People would actually benefit from the free (limited) internet. In fact most people are also ok if Facebook gets something back in return. It would have definitely helped if it was clearly stated as a commercial program and not an altruistic venture.

</comment><comment><USER55> I honestly think Facebook would have done well by providing access to the full internet but making Facebook the start page / captive portal.

<comment><USER56> You will bow down to anything. What about your private data? You want facebook to decide what you want to see on internet? Start a day with friend's like and share!!! I think your internet means facebook.

</comment></comment><comment><USER57> When did facebook become non-profit to give away things for free? fcuk zcuk, stay away from India.

</comment><comment><USER58> Even though it's obviously a land grab... no one other than massive corporations is capable or willing to provide this. I don't like it either, but that's how corporatocracy works. Might as well fight against gravity.

<comment><USER59> Humanity have a long and distinct history of fighting against gravity.

<comment><USER58> And yet gravity is still going strong...

Make an ally out of gravity and you can use its strength for something half- decent instead of all-bad.

I think this land grab by Facebook is half-decent instead of all-bad. Facebook is treating the poor better than the Indian government has, at least. Neither institution really gives a fuck about them.

<comment><USER60> Facebook is treating the farmers better by giving them access to facebook. What has the government done except no interest loans, free seeds and fertilizers, subsidies and free training programs.

Sounds about right

<comment><USER58> You aren't expecting much from the government. Who has more resources and power than the government? If Zuck had that much power I'm sure he would do a lot more than just give free internet.

</comment></comment></comment></comment></comment><comment><USER61> Why are there no other companies offering the same?

<comment><USER62> Exactly, why don't people who oppose this provide unlimited internet to the poor people for free? Put their money where their mouth is.

</comment></comment><comment><USER63> Pretty heavily editorialized headline, not at all in the economists style. Original title:

Facebook's "free internet" programme hits a roadblock in India

<comment><USER64> Doesn't seem that editorialized. The "roadblock" is the feedback from critics, and the Economist's subhead is "Critics argue Mark Zuckerberg's generosity is a cover for a land-grab".

<comment><USER65> It's extraordinarily editorialized, because it implies that the author of the article agrees with one quoted source in the article.

<comment><USER66> One quoted source that they turned into the subheading, in larger dark grey print.

Seems fair game to me.

<comment><USER65> It's _not_ fair game. The site guidelines specifically demand that submitters not do _this exact thing_ ; instead, you're to use the article's original headline, unless it's misleading or linkbait.

People who submit stories don't _own_ the stories on HN; stories are community property. Being the first to submit a URL does not give someone special privileges to reframe the story for everyone else.

In this case, the reframing that was done was overtly dishonest, implying as it does that The Economist endorses this point of view, which it clearly does not.

<comment><USER66> I see what you're saying, I was wrong about using the subheading for the title instead of the title.

Your statement that the OP was "overtly dishonest" is ridiculous, come on.

</comment></comment></comment></comment></comment></comment><comment><USER67> I wonder it it would be feasible to tunnel the "real internet" through Facebook using (for example) their chat client (you'd need something on the other end to make the connection). Like tunneling a VPN over DNS queries. That would be a clever work-around.

<comment><USER68> [https://github.com/matiasinsaurralde/facebook- tunnel](https://github.com/matiasinsaurralde/facebook-tunnel)

I heard about some more, but didn't bookmark them :<

<comment><USER39> Sadly this doesn't work with [http://0.facebook.com/](http://0.facebook.com/), the version of Free Basics available in Germany.

<comment><USER68> Maybe this one [http://code.kryo.se/iodine/](http://code.kryo.se/iodine/) ?

</comment></comment></comment></comment><comment><USER65> Egregiously editorialized title; the actual title is:

 _Facebook 's "free internet" programme hits a roadblock in India_</comment>


If You Want, You May Be Able to Boycott Comcast - <AUTHOR> https://medium.com/@flaqueEau/if-you-want-you-may-be-able-to-boycott-comcast-e173317f0dca <comment><USER2> It's easy to boycott Comcast: just don't watch NBC or other Comcast content.</comment>


Show HN: FileConverter using FFMPEG as WASM to convert files - <AUTHOR> https://fileconverter.digital/ <comment><USER2> This is awesome! Just so I understand, you've compiled ffmpeg into wasm and run it in-browser?

<comment><AUTHOR> yes! This is all in browser. It's literally just ffmpeg compiled into wasm.

The wonder of Javascript right?

<comment><USER2> This is beautiful!!

Do you have a write-up or any details on how you did it? There's quite a few things I'd like to apply said treatment to :D

<comment><AUTHOR> there's a guy's github that did most of the work for me. It's open source, google around for ffmpeg wasm.

what are the things you wanna do?

<comment><USER2> The one I'm trying to do most recently is to compile bitcoin's bx[1] to wasm, so it can be run in the browser. It's not a crypto-related project, I primarily need the mnemonic generation code so I can generate mnemonics from passphrases for more general-purpose reasons.

Two reasons I'm thinking of getting it done in WASM: First is of course, not to roll my own crypto. Second is that if you're asking someone to generate a private key to use themselves, sending ANY information to a server is a big no.

Honestly I'd appreciate any thoughts or advice anyone has, I'm open!

[1] - [https://github.com/libbitcoin/libbitcoin- explorer](https://github.com/libbitcoin/libbitcoin-explorer)

</comment></comment></comment></comment></comment><comment><USER3> Can we get a resolution change option?

<comment><AUTHOR> yes! Can you give an example of what you want? And if you can give me a test case that would be great too!</comment></comment>


Why Louis C.K.'s big payday proves the Internet has ethics - <AUTHOR> http://www.theglobeandmail.com/news/technology/tech-news/why-louis-cks-big-payday-proves-the-internet-has-ethics/article2272517/

<comment><USER2> It proves that people will attempt to prove the Internet has ethics when a famous comic tries an experiment like this. It won't be the same in most cases and over time, it will be back to business as usual.

It's also interesting to note that many people shared it on bittorrent.

<http://thepiratebay.org/search/louis%20ck/0/99/0>

This is just one site. I imagine there are many more people.

So what are the excuses for sharing it? too expensive ($5)...too inconvenient (no DRM)? There are no restrictions, yet it's still shared.

<comment><USER3> Some people wouldn't spend $1 to watch a movie or hear a song, but would spend 3 or 4 clicks to torrent it. (FWIW: I have not downloaded Louie CK's video, from him or a torrent site.)

</comment></comment><comment><USER3> I don't think it proved the internet as a whole has ethics, but it roved you can find good pockets of it.</comment>


How do you learn programming? - <AUTHOR> If you are a beginner, how do you love to learn? - reading a blog post? - youtube videos? - 10+ hours udemy videos ? - or anything else (please comment) <comment><USER2> A project, a project. Almost any project. Build it to throw away when you've completed it.

Any project you begin will turn out to have a stumbling block where you can't move forwards because you are deficient in your knowledge.

Now spend some time on Software manuals, Google, the forums online and learn what is necessary to remove that deficiency in your knowledge.

Fixing that deficiency, and therefore being able to move onwards with the project means you have learned something.

Keep moving past the all of the stumbling blocks and eventually you will complete that project.

"But, throw it away?"

Yes. Now throw it away. And now rewrite it using all those hindsights of all the new knowledge you now have on hand. You will now know many shortcuts, algorithms, methods, etc. that will make better code than you had before.

That is how _I_ learned programming.

</comment><comment><USER3> The key is on ,,love to learn''.

As long as something is interesting for you, it's great!

As they say it's a marathon, not a sprint. You'll do it for a long time, so the most important thing is that you love doing it.

Of course you should focus either on frontend/web or backend/algorithms, and it's good to make that choice beforehand, as they need quite different skillsets (more artistic / more analytic).

</comment><comment><USER4> You'll need a project. It's hard to learn to code without something concrete that you need or want to build -- something like, "I want to make a personal blog", etc. Just doing exercises is a bit disconnected from the full flow of things, IMO.

</comment><comment><USER5> I'll admit, I'm not that great. But throwing yourself into a project is the best way. Books and cookie cutter examples can only take you so far.

It's the "Ah ha!" Moments that are most fulfilling, and the insights there tend to stick the most.</comment>


The Secret History of Haskell - <AUTHOR> http://uncyclopedia.wikia.com/wiki/Haskell

<comment><USER2> let_in =let in'let'in=let in let in" let" in let in let let'in let_ _in = let_>>_in in in'let'in++ let in_let'in=let in " let in let" in let'in in_let'in in'let'in

Made me laugh.

But seriously, what's up with the heterosexist fake quote?

<comment><USER3> It's an Uncyclopedia article - fake Oscar Wilde quotes are an established meme:

[http://uncyclopedia.wikia.com/wiki/Making_up_Oscar_Wilde_quo...](http://uncyclopedia.wikia.com/wiki/Making_up_Oscar_Wilde_quotes)

"Officially listed as the National Sport of England, making up Oscar Wilde quotes is widely regarded as the greatest spectator sport ever invented, with the possible exceptions of Sudden Death Twister and Sockey."</comment></comment>


The Growth Story of Luxola – One of South East Asia's Leading Ecommerce Sites - <AUTHOR> http://growthhackingasia.com/insights-into-the-growth-story-of-luxola-south-east-asias-leading-cosmetics-and-skincare-e-commerce-company/

<comment><USER2> In Singapore customers have timely access (~15 min) to the product. In Indonesia it takes about 3-6 hours to get access to the product.

So in Indonesia they market themselves as "convenient and saving time". How do they translate this to a product placement strategy? Are their distribution channels more common (say gas stations) compared to the malls in Singapore? Is it the size of the containers so Indonesians have to travel less frequently to refill the product?</comment>


Commandments for the Speed of Security - <AUTHOR> http://techcrunch.com/2015/04/24/commandments-for-the-speed-of-security/ <comment><USER2> "Container usage is growing quickly and is carrying more and more of the computing needs, allowing for greater flexibility. We must secure them."

We must do X - any insight into how to do X, or what features X needs to have?</comment>