Snakeware – Linux distro with Python userspace inspired by Commodore 64 - <AUTHOR> https://github.com/joshiemoore/snakeware <comment><USER2> This is exceedingly cool. It could be a modern-day Lisp Machine that takes advantage of the Linux kernel's great hardware support. Since Python is such a dynamic language, I'd be interested in how they plan to allow the Python processes to communicate. This would be a great opportunity to avoid the classic Unix mistake of using text files as the lowest common denominator everywhere; a structured data format like S-expressions could be passed around instead.

Edit: Other languages I'm thinking of for this idea:

* Lua or LuaJIT (even more dynamic and really great performance; smaller and somewhat fragmented ecosystem)

* Scheme (potentially also fast and good S-expression support, also very dynamic; small and very fragmented ecosystem)

<comment><USER3> > This would be a great opportunity to avoid the classic Unix mistake of using > text files as the lowest common denominator everywhere

There are a great many who do not consider this to be a mistake. The fact that after half a century, Unix-like operating systems and programming environments are de rigueur is plain enough evidence of this. I can't think of much else in the whole field of computing that has had this kind of staying power over such a long period of time, excepting perhaps the idea of binary digital computers themselves.

Fun history note: Part of the reason the Unix userspace and development chain lean so heavily on text processing is because its inventors were tasked with designing a system for more powerful tools for the writing and production of technical documentation. But they were dyed-in-the-wool systems and programming nerds so stand-alone documentation tools were not very interesting. So their solution was to invent a new OS, borrowing the features they liked from other OSes they had been exposed to, under the guise of delivering a documentation production system. If it turned out that this Unix thing they came up with happened to be an excellent programming environment as well, that was just a nice bonus as far as management was to be informed.

One of the greatest hacks of computing history, if you ask me.

Edit to add: As others have pointed out, you are hardly restricted to piping around text. And if you do, the power of text is that you can impose arbitrary structure on top of it, e.g. tabular data, shell scripts, XML, YAML, JSON, etc. Saying it's too bad Unix abstracts everything as text files is like saying it's too bad microprocessors abstract everything down to either a one or a zero when far more interesting number exist.

<comment><USER4> Piping data from one command to the next is one of those things that I love showing to new users and it gets them all excited, only to then have to disappoint them when they think of a cool idea because they'd need to learn regex, sed and awk first to do anything non-trivial.

It's a shame Powershell is a disaster, because having a structured-by-default pipeline would've really bridged the gap between power users and programmers.

<comment><USER5> > It's a shame Powershell is a disaster

Yeah, lets get back to bash forever :S

<comment><USER4> Bash is a good shell with a fairly unimpressive pipeline. Powershell is bad shell with a good pipeline.

For me, as a programmer, the shell part of a shell is more important, as I can do the rest in a more powerful language. Powershell is too verbose for shell usage (see New-Item), brings nothing new to the table in terms of scripting and is ultimately not worth using just for the better pipeline.

(another commenter pointed me to Nushell, which seems to be a very good middle ground, and I've heard of a few more similar efforts, so we hopefully won't be stuck with just bash for too long)

<comment><USER5> Oh, here we go again with verbosity like aliases are non existent. For realz, New-Item is ni for example or mkdir or whatever...

> as I can do the rest in a more powerful language

Powershell is like repl for dotNet. You can't really get more powerfull.

> brings nothing new to the table in terms of scripting

Are you serious ? I guess somebody has a lot of learning to do.

> (another commenter pointed me to Nushell, which seems to be a very good > middle ground, and I've heard of a few more similar efforts, so we hopefully > won't be stuck with just bash for too long)

We were on that road number of times before...

<comment><USER4> > Oh, here we go again with verbosity like aliases are non existent

Aliases would have to be standardised (and I don't mean the crap they pulled with aliasing wget) and regardless, only provide an illusion of simplicity that breaks down the moment you try to do anything more advanced.

> Powershell is like repl for dotNet.

The only place dotNet actually matters on Windows. Everywhere else it's just unnecessary bloat.

> You can't really get more powerfull.

I mean, yeah, technically anything Turing-complete is as powerful as it gets. But things like generators, coroutines, easy multi{thread,process}ing, good support for object-oriented and functional patterns... are what I'm looking for in a powerful language.

> Are you serious ? I guess somebody has a lot of learning to do.

Besides structured data, which was the entire point of this discussion, I don't know of anything Powershell can do that other scripting languages can't. I am, of course, not counting the many system and application hooks, as those are usually 1) not part of Powershell itself, 2) Windows-only and 3) were already possible on Linux (unlike on Windows, basically everything has CLI support here).

In all of this, btw, I was not considering Python a scripting language, which I easily could have (there are even a few neat shells for it). Once you have Python, it's barely even a contest.

<comment><USER5> > Aliases would have to be standardised (and I don't mean the crap they pulled > with aliasing wget) and regardless, only provide an illusion of simplicity > that breaks down the moment you try to do anything more advanced.

OK, wget/curl was bad idea, but lets not overreact here about one bad judgement. Illusion of simplicity ? That breaks ? Cmon... never had a single problem with aliases until pwsh, and I am using Powershell 24x7 almost exclusivelly in aliased form. Also, powershell does standardize aliases, once they are in, they never change (except when it went x-plat, but everything changed, so that is moot point).

> The only place dotNet actually matters on Windows. Everywhere else it's just > unnecessary bloat.

Let me just say here that entire sentence is crap :) I do not work for MS but life became good when it was x-platformed. MS reputation was bad in linux world but its a social construct that now starts to fade away. I am into technology, not into that social mumbo jubmo bs.

> I mean, yeah, technically anything Turing-complete is as powerful as it > gets.

You cant really compare PowerShell with mainstream langauges, since its made for shell context. Regardless, you can do all those fancy stuff in C# and compile it inline. Native powershell has all the things you mention tho, seems you need to take a good look into it (except coroutines but who cares for that in shell ?)

> I don't know of anything Powershell can do that other scripting languages > can't.

Let me cite another well known person to you - I mean, yeah, technically anything Turing-complete is as powerful as it gets. The point is to do it in easy to understand and concise manner, without reinventing the entire universe in the process.

> In all of this, btw, I was not considering Python a scripting language, > which I easily could have (there are even a few neat shells for it). Once > you have Python, it's barely even a contest.

I was waiting for this: lets get python (or ruby or <insert-non-shell- language-here>. Lets be serious about this.

<comment><USER4> > aliases, etc.

Aliases only hide verbosity in base commands. If the parameters and switches are overly verbose too, they can't help you there.

> dotNet

I'm not saying it's not good and certainly not just because it's from Microsoft. I've done Windows and Linux development and while it's the way to go on Windows, I've never missed it on Linux.

> You cant really compare PowerShell with mainstream langauges

I never intended to, but you called it as powerful as it gets, which really isn't true. I was just giving you examples of why it isn't.

> reinventing the universe

See, to me, the reason I can't switch to powershell is because it seems to reinvent too much - both from a shell and a scripting perspective.

> Python

The whole reason why I brought it up was to continue my original point of "unimpressive for scripting". While I appreciate the convenience of using the same language for shell and scripting, I have no problem using a non-shell language to do more complex things.

Either way, you have successfully convinced me to give Powershell a try one more time once I get some free time to experiment.

<comment><USER5> > If the parameters and switches are overly verbose too, they can't help you > there.

There are parameter aliases too, proxy vars and you can shorten their name to unique subset which gets you as far as you can get anywhere

> Either way, you have successfully convinced me to give Powershell a try one > more time once I get some free time to experiment.

Thats good to know :) Do it right, and you wont regret it, I can promise that.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> When I was a kid other kids either had ZX Spectrum, Commodore 64 or BBC Micros. (yeah - I knew one kid with a Dragon 32 poor sod. And someone with an Atari 400 or 800 where I was jealous of the hardware palette tricks and game cartridges)

Anyway - The Commodore seemed the worst option in terms of habitability. Any graphics or sound programming largely consisted of poking random locations in memory. The included BASIC had no direct support for any of the interesting stuff.

The quality of the BASIC was also poor. The Beeb probably had the best implementation at the time with the Spectrum coming second.

So - I guess what I'm saying is the C64 is a strange role model.

<comment><USER7> The C64's BASIC was indeed very poor compared to the competition, but the hardware (and games) were pretty cool. People wrote games with assembler in all those early home computers.

<comment><USER8> The BASIC v2 was horrible, but still there were plenty of great games written in BASIC (Sid Meier's Pirates was _mostly_ BASIC, for example).

<comment><USER7> Really!? Wow. I don't see how, will read about it. Do you have any link to read? (any excuse to read about Sid Meier's Pirates! and the C64 is good).

In any case, C64's BASIC "programming" meant that for graphics and audio you were mostly POKEing and PEEKing, since its instruction set was very limited. And when you're mostly peeking and pooking directly at memory, you're barely writing BASIC, are you? ;)

edit: I tracked down a 2014 comment from HN saying the same as you: that Pirates! was mostly written in BASIC. I'm amazed. Now I really want to see the source code and/or read a "making of".

<comment><USER8> I don't remember if it was compiled BASIC or if you could actually freeze the game and print the listing. I do remember that it was _mostly_ BASIC as I mentioned though, meaning that it resorted to ML routines when needed.

Just found out that it wasn't even compiled BASIC: [https://www.c64-wiki.com/wiki/Pirates!#Miscellaneous](https://www.c64-wiki.com/wiki/Pirates!#Miscellaneous)

It is debatable if using PEEKs and POKEs for audio and video functions changes the fact that it is actually BASIC. You are only imitating LDA and STA opcodes, the rest is still BASIC.

<comment><USER7> Awesome. Thanks for the info! I'm really surprised by this. I didn't know you could do anything useful with C64's BASIC. I know _I_ didn't. I waited till I had GW-BASIC on a PC XT to really learn how to program.

If Pirates! was mostly high level BASIC, I wish the source code was available somewhere to read. Kind of like Broderbund, which released the assembly language code for some of its old games...

<comment><USER8> It should be pretty straightforward to extract it from the image file using the modern emulator/debuggers. I believe the comments (if any) will be scarce, but still...

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> This is wonderful. I've often fantasised about unifying the command line and the desktop into a single UI paradigm and this project could just give me a realistic shot at trying it out.

Anyone who is interested, much of this classic has yet to be tried properly afaik: [https://en.wikipedia.org/wiki/The_Humane_Interface](https://en.wikipedia.org/wiki/The_Humane_Interface)

Another idea: instead of having Photoshop/Excel etc. clones, have a document centric rather than application centric UI and allow features to be installable when they are needed (micro-apps?). E.g. Gaussian blur or spellchecking could be things you'd add from a microapp directory which would add an extra button to your interface for images and documents respectively.. you'll build up a personalised interface and 'own' it, rather than being presented with a sea of unknown buttons/menu-items.

<comment><USER10> > unifying the command line and the desktop into a single UI

This is how computers used to be. I had an Apple II which was exactly this. if you booted without a disk in, you just got a BASIC prompt.

</comment></comment><comment><USER11> I'm just now falling down this rabbit hole of working with frame buffers as a result of this project and now I'm curious. Did you develop your own window manager? This is really fascinating stuff and makes it really simple to create low-level things with a high-level language. [1] [2]

Also, does OpenGL work?

[1] [http://seenaburns.com/2018/04/04/writing-to-the- framebuffer/](http://seenaburns.com/2018/04/04/writing-to-the-framebuffer/) [2] [https://www.kernel.org/doc/Documentation/fb/framebuffer.txt](https://www.kernel.org/doc/Documentation/fb/framebuffer.txt)

<comment><USER12> > _Also, does OpenGL work?_

There's no reason why it can't; OpenGL doesn't require X11 (or Wayland), and EGL (a library/interface that binds the OGL implementation to a windowing/display system) could certainly be implemented for linuxfb (if it hasn't been already).

Either way, I'd expect the current state of snakeware's graphical environment is that it won't work without some (possibly large) modifications.

<comment><USER13> Fbdev is a legacy interface and is probably not what you want if you're developing something beyond a simple demo. Check kmscube for a modern example of how to use EGL with DRI/KMS/GBM: [https://gitlab.freedesktop.org/mesa/kmscube/](https://gitlab.freedesktop.org/mesa/kmscube/)

</comment></comment></comment><comment><USER14> In this genre, I like: Emacs as PID 1 [http://www.informatimago.com/linux/emacs-on-user-mode- linux....](http://www.informatimago.com/linux/emacs-on-user-mode-linux.html)

<comment><USER15> That's really interesting, and something I've been thinking about lately too. I wonder if it would be any better with Guile Emacs, so that you have the FFI.

Does anyone here run Emacs as their only environment?

</comment></comment><comment><USER16> It reminds me of Perl/Linux.

A Linux distribution where ALL programs are written in perl.

[http://perllinux.sourceforge.net/](http://perllinux.sourceforge.net/)

<comment><USER17> _puke_

<comment><USER18> Imagine the efficiency of having your whole userland written in one line of code!

<comment><USER19> This made me laugh way harder than it should. Just imagine that one line. It'd either be the greatest or most terrifying piece of code I think I'd ever be likely to witness. Probably in all existence really. But then of course, someone would have to come along and port that ultimate one line of Perl code to brainfuck and one up them and then someone else would come along and turn that one liner into an entire lisp dialect and on it'll go.

<comment><USER20> If you think about it, every compiled program is a one-liner.

<comment><USER16> Or perhaps everything is a one-liner:

[https://xkcd.com/224/](https://xkcd.com/224/)

</comment></comment></comment></comment></comment></comment><comment><USER21> As a kid I had a Commodore plus4 as my first computer (it was already severely outdated, but I got it for free). The fact that it booted directly to an scripting language intepreter (commodore basic) brought me to programming. You HAD to learn at leas some basic to do anything useful or fun with a commodore homecomputer. With my young nephews I see that the younger generation sees computers and smartphone more like useful blackboxes that "just work" without even trying to understand how.

</comment><comment><USER22> > Our window manager, snakewm, is based on pygame/pygame_gui. We do not use > X11; snakewm draws directly to /dev/fb0.

Whole _window system_ written in Python, That's hardcore!

<comment><USER23> I didn't know it was possible to obtain a hardware-accelerated OpenGL context without using GLX. How does it work without X11? Can I draw to the screen without any dependencies?

<comment><USER24> Probably the same way Wayland or the original Raspberry Pi drivers do it, using EGL.

</comment></comment></comment><comment><USER25> I would love one of these, but with Lua as the language instead. Its quite possible with something like LOAD81, from antirez[1] - but I guess I'd love to see a full-blown desktop OS with Lua at the core, and not much else. I guess booting directly to a tekui[2] based editor would be nice, too.

Something about having a clean boot to a single-language environment which appeals to me more and more as the decades go by.

[1] [http://github.com/antirez/load81.git](http://github.com/antirez/load81.git)

[2] [http://tekui.neoscientists.org](http://tekui.neoscientists.org)

<comment><USER26> Check out the (sadly inactive) Node9 operating system [0].

> Node9 is a hosted 64-bit operating system based on Bell Lab's Inferno OS, > but using the Lua scripting language instead of Limbo and the LuaJIT high > performance virtual machine instead of the Dis virtual machine. It also uses > the libuv I/O library for maximum portability, efficient event processing > and thread management.

[0]: [https://github.com/jvburnes/node9](https://github.com/jvburnes/node9)

<comment><USER25> Ah yes, that is nice - thanks for the info. So many interesting things using Lua ..

</comment></comment></comment><comment><USER27> Reminds me a little of Squeak Smalltalk: [https://squeak.org/](https://squeak.org/)

It starts up its own environment, and everything that's there can be interacted with either by writing code, or by clicking on things and inspecting/modifying their variables.

<comment><USER28> Another similar environment is Oberon. It allowed you to select any snippet of Oberon code and execute it!

</comment></comment><comment><USER29> This is a very fun-looking project. However, in the GNU/Linux world, "user space" is a very broad term referring to everything running outside of the kernel. In order for this to be a "Python user space", you would need to implement or include a lot python equivalents of standard user space tooling. Python grep, python awk, python top, python vi, python gcc (lolz), and even python CPython (lolololz), etc. In the README, you say you want to get it to boot without Busybox. Busybox is currently the thing filling this void for you now. It is providing your actual user space, including it's systemV-inspired init system.

What you have here is basically a very simple pygame template with an embedded application build tool chain. Which is totally cool, and potentially fun and productive. But it isn't replacing the GNU/Linux user space, which is C heavy, but very language diverse.

I would focus not on replacing the user space, but interfacing with it where reasonable. To that end, you may even want to consider shedding pygame and interfacing with X11/wayland. Identify the surfaces you want to control with python and implement that. It will perform better, and be more true to what makes Linux "Linux".

<comment><USER30> > In order for this to be a "Python user space", you would need to implement > or include a lot python equivalents of standard user space tooling. Python > grep, python awk, python top, python vi, python gcc (lolz), and even python > CPython (lolololz), etc.

Who says you need those particular utilities to make a user space? You could have a user space without a shell, much less gcc, vi or awk.

<comment><USER29> I mean, okay, you don't need vi or awk to call it Linux. But surely you agree that CPython is needed to run Python, yes? Its interpreter is written in C. To build it, you need a shell, make, gcc, and a text editor would be most helpful.

It's all part of the user space. You can hide it within the snakeware application (why?), but don't deny it exists in the Linux user space. And C Python needs C extensions (pygame, for example), so GCC is at the very least a very-very-nice-to-have, is it not?

What is the goal here? You want to run Python without a shell? A huge number of python scripts depend on the shell. You are increasing barriers to using Python to code interesting apps in this system. Should the shell be implemented in Python, too? It could be, but why? Why not just _integrate_ a standard shell, and present some nice-ish way of interfacing with it via Python?

I don't think that this application itself can even work in such an environment (no shell, no init system, etc). Currently this project is depending on a shell provided by Busybox. It uses these underlying tools to initialize and configure the operating system. It's all there in the user space, just hidden beneath this application.

Look, there are no laws about this sort of thing. You can do what you want and call it what you will, and I'm not some tech lingo fascist trying to impose my idea of "user space" on anyone (even though it's really a term with a specific meaning of 'anything outside of the kernel', for which making an all-python version sounds highly difficult). I'm merely pointing out that a great deal of this user space is actually already non-python, and user space carries with it _a lot_ of linux's _essential_ functionality, largely via the GNU core utils and other common utilities which are written in a wide variety of languages. You can choose to hide all of that functionality to make a python-only sandbox... but.... then...

...Couldn't I just use pygame to make standard applications that run on all distros outside of this isolated "window manager" program? All this achieves right now is isolating your apps in this kind of simulated window environment, and preventing the user from ever doing anything meaningful unless they have a specially coded snakeware(tm) python app. It can never run a standard installation of something like Firefox; utilize any standard Linux CLI software; utilize an existing package management system or the packages from it; etc. because it has no shell, and doesn't make use of the standard Linux graphics compositors (X11/Wayland).

So having said all of that, my goal isn't to tear down the project, but to ask the hard question for the benefit of this project: What is the goal? What I see here is mainly a simulated window manager written in pygame which can only ever run specially-created GUI apps, which is booted into directly. This design can never become a viable distro as it stands.

This is a cool project. A fun project. But first and foremost, this is about 1400 lines total of Python and shell script. It's not really all that much yet, and it's not going to get there by pretending this design is sustainable to become some robust user environment where everything is Python. Sometimes, complying with standards and specifications are what make a thing the thing it is. And this is not a Python-only user space Linux distro. It is a simulated window manager written in Python that runs on a Linux kernel in a standard shell using a compact subset of standard tools written in other languages, and conceals the rest of user space on which it itself depends.

But maybe it's just easier to _pretend_ the whole thing isn't a single process running on a single core, non-Posix compliant, incapable of running standard Linux GUI or CLI apps; and that all of that sacrifice in functionality hasn't been specifically engineered to cater to some misguided aesthetic notion that this all makes the system more hackable because it is a written in Python. Maybe it's easier to simply pretend that you can't build a python window manager that works with native linux graphics compositing systems, and that the whole design would be better off targeting certain configuration processes using Python.

<comment><USER31> > . But surely you agree that CPython is needed to run Python, yes?

No, it just happens to be the reference implementation, there are others to chose from.

One can even go crazy and bootstrap a Python environment, basic compiler development stuff.

<comment><USER29> You are mistaken. Pygame depends on CPython, as it is a C extension. Under the hood, even this window manager is mostly C.

<comment><USER31> And? Who says that Pygame is the only way of implementing this?

<comment><USER29> Pygame is all this is. I'm not saying that it's the only way. It's probably one of the worst ways in my humble opinion, though I can't really say that without understanding their vision for the project tbh.

Should I assume they are looking at scratching every single line of code they've written for this and restarted? Why would I make that assumption?

I don't want to quibble with you. My only point here is that an all-python user space is a significant undertaking if you are willing to acknowledge the scope of what the user space actually entails. It's totally doable, but this project isn't even a step in the direction of solving those problems. It's a totally different thing.

Depending on the objective in a "python only" operating system, I _may_ be inclined to strongly advise not trying to reimplement _everything_ in python. The nature of C is such that you can write a C compiler in C, compile it, throw away the source code, and use the compiled binary for the new compiler to start developing a new compiler for C. But you can't like, make a python interpreter for python, in python, delete CPython, and then use the python version. It is dependent on CPython. And so, to build it, it's dependent on GCC, make, a shell, etc.

These are great tools. I think you should keep them, and define a specific surface area that python interfaces with. That's all I'm sayin'.

<comment><USER31> Sure you can, that is the whole goal of PyPy, IronPython, Jython, Python on GraalVM, Python on OpenJ9, CircuitPython and plenty of other attempts.

Anyone that understands compilers knows one can write language X in X.

In fact, "Writing Interpreters and Compilers for the Raspberry Pi Using Python" does exactly that.

We can nuke CPython and there is plenty of Python code that would still run without problems.

<comment><USER29> I'm sorry man, but you sound incoherent to me.

You can write a compiler for python in python--but it still needs the original cpython (or jython, or ironpython, or pypy, etc.) to run, because there is no compiled binary produced by your python code.

You can write a compiler for any language using python, but you need one of the interpreters you mentioned, and you can't throw it away unless it produces a binary. Maybe Cython can do this. But if it needs an interpreter to run, you'll have to keep the interpreter around as a non-python dependency.

But who cares? Unless you rewrite a Pygame from scratch, or replace it with another graphics library, in which case you need to rewrite snakeware from scratch, none of this is relevant here.

It's just insane. You are proposing rewriting entire language runtimes and/or graphics engines to preserve 1400 lines of python code (mostly a menu, a calculator, and a game of snake), with the supposed goal of creating an all python user space, and dismissing it as "Who says you can't do it?". I'm not saying it's impossible, but it makes no sense. You'd be better off starting over and taking this on with a different strategy. If your end goal is an all Python user space linux distro that actually works like linux, this project is a non-starter without being totally reimagined with virtually 0 reuse of the code that's there even at a conceptual level. You wanna rewrite pygame or python's compiler? Be my guest! It has nothing to do with your supposed objective though.

At the very least, you would need to get out of the pygame window simulation, start using a standard graphics compositor, and replacing existing utilities with python alternatives to make this work. But again, even CPython, Jython, PyPy, etc. will need to remain. Maybe Pygame can be made to work with PyPy, in which case you get close to what you want--but it's still a C extension, not python. And that's your graphics renderer. So why not just use Wayland or something then?

I think the quest for language purity at the OS level is a fun dream to pursue, but you need to decide where to cut it off in terms of scope and how to implement the scope you choose.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER23> Interesting. The GUI is implemented on top of PyGame. The terminal is actually a Python REPL.

Do you plan to write replacements for the POSIX utilities? Strict POSIX compliance is not necessary but user space needs the general functionality provided by those packages.

<comment><USER32> Any idea where I can get data on POSIX utilities ranked by use/importance?

<comment><USER33> you could start with the list of what's included in busybox:

[https://busybox.net/downloads/BusyBox.html](https://busybox.net/downloads/BusyBox.html)

the goal of busybox is to provided a stripped down posix userspace for use in embedded devices -- basically, provide enough posix utils to be able to do some useful shell scripting.

</comment></comment></comment><comment><USER32> Heh totally want to install this on a PineBook and give it to elementary school kids as their first personal computer.

<comment><USER34> Agreed. I've been trying to figure out what to give my son as a first computer. This would be a neat option.

If he wants to watch videos on youtube, he is going to have to code himself a browser first.

<comment><USER35> If you can run youtube-dl (hint: written in python), you only need a video decoder and player. If pygame doesn't give you that, though, you're in for trouble big time, because video codecs are hard. :)

<comment><USER36> also, he will need to type the whole program on the keyboard. like we did when we were kids copying tens of pages of basic from magazines.

</comment></comment></comment></comment><comment><USER37> It claims to be "fully Python-based Linux distro" but it seems to be just a buildroot config with an init.d script that runs the python repl in a loop. There's still /bin/sh, C tools, etc.

[https://github.com/joshiemoore/snakeware/blob/master/snakewa...](https://github.com/joshiemoore/snakeware/blob/master/snakeware/overlay/etc/init.d/S30startpy)

<comment><USER38> Same thing with a C64 - you have a simplified BASIC-environment but still can use the underlying Assembler.

</comment></comment><comment><USER39> Nice; I had been thinking of building something similar aimed at the raspberry pi, to make it easier to just get python scripts running, without having to learn about the OS. But never found the time. Was going to be called PyOS (pun on BIOS): [https://github.com/askvictor/pyos](https://github.com/askvictor/pyos)

</comment><comment><USER40> FYI, The audio in the demo video only plays in the left channel.

</comment><comment><USER41> This is funny, the other day when Microsoft released the code to GW-BASIC, I wrote this in response to someone saying their IBM PC booted into a version of BASIC rather than DOS:

I've always thought that using BASIC as the default command line was really weird... Like on an Apple II or TRS-80. You could type in a command to load something from a disk or run a program, or type a line number to start programming. How did that make sense to anyone?? To my 11yo self, it was confusing and I've never changed my mind.

To add to that thought, I think there's some things which are worth emulating from the good ol' days, and some which aren't. I think this is probably one of the latter.

<comment><USER42> But how different is that really than bash? Or even command.com?

<comment><USER43> It isn't, really. The command-line is a beautiful thing!

</comment></comment></comment><comment><USER44> After seeing "operating systems" like JS/UIX here, it's great to see one that actually boots independently. And it looks like it has multitasking, and contributions from multiple developers, awesome!

<comment><USER45> To be fair, I think those features came with the Linux kernel.

<comment><AUTHOR> Yeah. I mean, this is still much more effort than every Ubuntu-derived "OS" out there, but it isn't like Haiku or Redox or anything.

</comment></comment></comment><comment><USER46> This actually is really good idea. While I don't use Python often, I wouldn't see this as a problem. By reducing a barrier, they might actually create something fun to use.

Also, having a Raspberry Pi as first/default platform would be exceedingly welcome and good.

I wouldn't mind Lua as well, Ruby etc. As long as it is something easy to use.

</comment><comment><USER47> Nobody seems to have mentioned it, but I would love to see how this grows and whether or not if they'll eventually adopt Cython, which would bring a lot of performance boosts, but also be good for Cython in general.

Cython: [https://cython.org/](https://cython.org/)

</comment><comment><USER48> Sounds like the One Laptop Per Child environment. That had a Python user space. Can you still run it?

<comment><USER49> I was thinking the same thing. I actually own the original OLPC, and unfortunately, that thing is a pile of garbage. The entire UI and all apps are programmed in Python, which while good for getting children into programming I guess, is bad for actual use. The system is so unimaginably slow that doing really anything at all is unusable. Like every other adult who bought one, I installed Debian on it and a lightweight tiling window manager.

<comment><USER50> I keep my OLPC (running Debian) around for precisely the reason of having a low-spec touchstone to keep me grounded. Heck I even test some programs on an NSLU2! [https://gist.github.com/cellularmitosis/9ab25536b01d903539bd...](https://gist.github.com/cellularmitosis/9ab25536b01d903539bd3d161cb7e3ed)

</comment></comment></comment><comment><USER51> Wasn't Python basically invented as the scripting language for the Amoeba OS?

I often imagine an alternate reality where much of the non-performance- critical Unix/Linux userland such as login is written in Python.

</comment><comment><USER52> This is great.

I think a laptop with this, along with a Python book is one of the greatest gifts for someone to learn about computers and programming.

All exploration and few distractions.

</comment><comment><USER53> I had this exact same idea, just no time to execute it, so very happy to see this. Now, I just have to install it to a Raspberry Pi!

</comment><comment><USER54> I kind of really want to contribute to this now. I've contributed to SerenityOS, too. But do I have time? No.

</comment><comment><USER55> There are a lot "See also" \- so I'd like to shout out to the late Terry Davis' "TempleOS" and his ... strange take on an interactive boot-to-command line system based on C++ and x86_64.

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

[Edit]: See also [http://www.codersnotes.com/notes/a-constructive-look-at- temp...](http://www.codersnotes.com/notes/a-constructive-look-at-templeos/)

</comment><comment><USER56> it's just 'buildroot' (which is a minimalist distro that happens to include python).

I mean the python window manager is interesting but also mostly delegates to pygame.

Calling it a distro is a "bit" over-selling it IMO

</comment><comment><USER57> This needs to be on a Raspberry Pi.

<comment><USER7> Semi-related, I recently installed the BMC64 distro on my unused Raspberry Pi. It boots directly to VICE, no "Linux" to be seen. It's like booting a C64. You turn it off by unplugging, just like the real thing. The only thing that tells you this is not a real C64 (besides lacking the keyboard/case) is that you can bring up a menu with lots of options with F12 (necessary to mount disk images, at the very least).

Wow, does it take me back to my childhood!

<comment><USER43> Semi-semi-related, there was a commercial distro named Amithlon that booted straight into AmigaOS 3.9. Alas, it was discontinued, but it had a really nice AmigaOS feel to it.

<comment><USER7> Cool! I missed the boat back then and never did own an Amiga. It was too expensive for my parents to buy. Later I heard it was an incredible machine and young me would have loved to toy with it.

<comment><USER43> It was a cool machine, and AmigaOS was simply awesome compared to contemporary consumer operating systems, but alas Commodore went belly-up before they managed to modernize the platform.

</comment></comment></comment></comment></comment><comment><USER58> I want this but for v8/js!

<comment><USER59> This may float your boat: [https://github.com/NodeOS/NodeOS](https://github.com/NodeOS/NodeOS)

</comment></comment><comment><USER60> This is so cool.

Congrats!

</comment><comment><USER61> Fun idea!</comment>


Ask HN: Who's right, the VC or the Enterpreneur?  - <AUTHOR>

This topic Ask PG: Is There A Startup You Regret Not Funding? (Like Fred and AirBnB)(https://news.ycombinator.com/item?id=4477867) inspired me to write this.
How often is this gamed played?
The Entrepreneur goes to the VC and ask for money.  The VC tells them what's wrong.  The Entrepreneur "changes" parts of the company to fit the VC advice.  They go back and forth and keep on going until the Entrepreneur is now running a company that has no foundation on what it first started with.
A lot of Entrepreneur have no business experience.  The VC's are guys who are rich and thus the Entrepreneur by "default" listens to them for business advice.  Until of course, the company runs into big trouble.  They all chalk it up to "idea too early for it's time".
This would be interesting if it weren't for the fact there is another company four doors down that managed to succeed with the same exact idea.  The difference?  The idea itself was closer to the foundation before "expert adivce" started changing a good foundational idea into something they couldn't handle except the "expert" says they must go.
So, here's the question.  How does an Entrepreneur with little business knowledge know if the VC is giving them good advice?  How does the VC with little technical knowledge know if they should keep their mouth shut or intervene?  How do you tell who's right? <comment><USER2> Steve Blank would say get out of the building and talk to customers.... let them decide. Pounding the pavement is a lot of work, but you are actually passing the buck to the people who will ultimately decide the fate of your business.</comment>


Google Misses in Q4: Where's That New Revenue Stream? - <AUTHOR> http://www.wired.com/epicenter/2012/01/google-earnings-shares-miss/

<comment><USER2> Which Chrome is he referring to? The browser or the OS? I hope he's doubling down on both.</comment>


Site Deaths - <AUTHOR> http://indiewebcamp.com/site_deaths

<comment><USER2> The site says "you should own your own identity and content." Well, that's great in theory, but where should I put my identity and content? Should I store it on a flash drive? That seems a bit risky. Should I have a bunch of flash drives in security deposit boxes? That seems like a huge pain in the ass. How about a site where I can upload all of it! Well, now we're back to the same problem - but instead of it being on many sites, it's just on one.

I think the real answer is decentralization. Maintaining your data in many different places on the web and trusting that it's very unlikely that all of these sites will go down. Security and privacy, of course, is an entirely different matter.

<comment><USER3> Distributed replication tools exist. Use them.

Rsync will keep basic file archives coordinated. Git is quite useful for content that changes in a structured way.

Maintaining even just 2-3 copies of your data will go a long way to ensuring that it doesn't disappear entirely.

</comment></comment><comment><USER4> Reminds me of [http://archiveteam.org](http://archiveteam.org), who also make efforts to save the content from these closing sites. I contribute occasionally; well worth doing.</comment>


PinBuddy – Google Chrome extension for the Pinboard bookmarking service - <AUTHOR> https://pawelgrzybek.com/i-built-a-thing-pinbuddy/ <comment><USER2> Did you reach out to Maciej to include it on Pinboard as an unofficial extension? I think many users would find it useful (I'm not using Pinboard myself).</comment>


Show HN: Actix web 0.4 – simple and extremely fast web framework for Rust - <AUTHOR> https://github.com/actix/actix-web <comment><AUTHOR> Actix web is a small, pragmatic, extremely fast, web framework for Rust.

* Supported HTTP/1.x and HTTP/2.0 protocols

* Streaming and pipelining

* Keep-alive and slow requests handling

* Client/server WebSockets support

* Transparent content compression/decompression (br, gzip, deflate)

* Configurable request routing

* Graceful server shutdown

* Multipart streams

* Middlewares

</comment><comment><AUTHOR> Actix is number 7 in TechEmpower plaintext benchmark

[https://www.techempower.com/benchmarks/#section=data-r15&hw=...](https://www.techempower.com/benchmarks/#section=data-r15&hw=ph&test=plaintext)</comment>


50% of iPhone Users Don't Sync to iTunes - <AUTHOR> http://onefps.net/post/6496478249/50-percent-of-iphone-owners-dont-backup

<comment><USER2> Misleading headline. 50% of iPhones _taken to a Genius bar_ have never been synced to iTunes after the initial sync and activation.</comment>


Unboxing Our New Desktop Pick and Place Machine - <AUTHOR> https://www.sparkfun.com/sparkx/blog/2586 <comment><USER2> To me, here are the most relevant bits of why they chose the CHMT36VA over others:

        Let me say that the needs or SparkX are slightly odd.
        We need to build 10-50 of a design and see how it
        sells. As it sells we may need to build 100-500pcs.
        If a design needs more than 500 pieces then it
        immediately gets moved over to our proper SMD
        production lines with much more capable machines.
        SparkX needed something small and quick to setup.
        After evaluating all the various vendors we decided
        on the CHMT36VA. It seemed to be the best fit of
        low-cost and most flexible while being able to get
        the job done.

Right before it:

        ... the nail in the coffin for the Neodyn 4 in my eyes
        ... he says the feeders aren't that great, they are
        challenging to load, and machine makes mispicks quite
        often. Why spend ~$10k on a machine when I can have a
        cheaper machine with less hassle? The CHMT36VA is far
        from perfect but I can work around the problems.

It's not that the CHMT36VA (the $2.8k PnP machine in question) is great or competes with "industrial" pick and place machines, it's that it's optimized for small to medium runs. To me, this is very much in line with "fail fast" or "lean startup" philosophy but for electronics. SparkFun can make a small experiment with minimal risk.

<comment><USER3> I am waiting for the emergence of nano factories. Basically vertically integrated businesses like Sparkfun that can design and manufacture a very wide range of products on site, sufficient to capture the value at the exploratory front end of product design and development.

<comment><USER4> Macrofab(macrofab.com) is pretty close to this, as is SeeedStudio (SeeedStudio.io).

<comment><USER5> Seeed is wonderful. I've run over $80k of boards through them and while I have experienced one big error in a build they worked with me to fix it and in general they have wonderful service considering I'm one person working out of my apartment. Bigger shops charge way more or don't work with me, and smaller shops don't do as much as Seeed does.

<comment><USER6> Can you tell me some details on what exactly they do? I've designed and ordered my own PCBs from DirtyPCBs (recommended, I love them) but I've only assembled them myself (I only needed one or two pieces) and I have no idea how I would scale that to larger production.

Can you tell me what the basic steps are? Pricing information would be appreciated!

</comment></comment></comment></comment></comment><comment><USER7> Buying your own pick&place is quite similar to buying an FDM 3D printer. It doesn't make any sense at low scale, unless you want to spend endless time tinkering with the machine proper.

Pick&place, as well as 3D printing, begins to make sense at industrial scale, with huge expensive machines. Sparkfun might be a borderline case, but I suspect even they won't use these cheap pnp machines in the longer term.

If you are a hobbyist or a low-scale manufacturing operation, you are much better off using MacroFab, PCBNG, Small Batch Assembly or AISLER.net for electronics production, and Shapeways for 3D printing (SLS). Alternatively, for quantities of ~10 of electronics devices, it makes sense to order your boards and stencils from OSHpark or AISLER, place components yourself using tweezers, and either use a modified oven or a hot air soldering iron for reflow.

This is speaking from experience (as a hobbyist/maker, electronics design engineer designing proof-of-concept and small-scale production devices, and [https://PartsBox.io/](https://PartsBox.io/) founder).

<comment><USER8> > It doesn't make any sense at low scale, unless you want to spend endless > time tinkering with the machine proper.

For 3D printing this is becoming less true every day. 3D Printers are now extremely cheap, where sub-$300 printers make sense at low scale usage. A typical print from an outsourced printer like Shapeways might cost you about $20, and once you factor in the cost of the material when you print yourself, it only takes about 20 prints for the printer to pay for itself, and you have the added benefit of having your print in an hour rather than a week.

<comment><USER9> Exacly! I have an FDM printer (~$300) and it's great to have it at home. When I design something, I can do a partial print at low quality to check for clearances within an hour. Then I can modify the design and print an optimized version. It makes for a really short feedback loop and if I mess something up, I don't need to pay the base fee again. And I'm a true hobbyist, I don't do anything hardware or CAD related professionally.

Also, it's just lots of fun to work with the printer.

<comment><USER10> That is still, as you say, a hobby though. The future of hardware design is decreasing the difference between prototype and production. Similar to what containers have done for software.

3d printed parts and PCBs can be done in as little as 12 hours. You can then without any modification do small production runs anywhere from ten to a thousand pieces (which isn't unrealistic outside consumer hardware). You could even 3d print moulds and do injection moulding.

I think partly why people say that hardware isn't iterative enough is that they are doing it the wrong way. They spend too much time on prototyping, which means they then have to make everything perfect for a large production runs to average out the costs.

<comment><USER11> I think you may he missing the parent's point, which is he's using the printer to speed up his design loop. This has heen one of the biggest driving forces I've seen in the commercial use of 3d printers. Sure you can outsource your 3d printing to get much better and higher volume printing, but when you're designing you don't need volume, and often don't need quality either. Quick turn around often is key in design work, and having an in house printer can really reduce total turnaround time.

<comment><USER10> I am disagreeing with the parents point (or not really because they were talking about doing it as a hobby, which is great).

Yes, you can do design prototype revision A, B and C, then do production prototype A, B and C, and finally production version A, B and C. But then you have spent a significant amount of time and money refining prototypes and adding features. That forces you to large production runs with huge risk, because you have already made the investment. What I am saying is that you should just make the production prototype with less features and ship that. Because that is how you go to market quickly, which is usually the larger point of such development.

This is also why Shenzhen wins over hackerspaces (which are also great btw) but that is another story.

</comment></comment></comment></comment></comment></comment><comment><USER12> Interesting that for such an inexpensive but specialized hardware device it still has a "phone home on boot" feature.

Given what this device does compared to a 3d printer (xyz axis movement, suction head, part reel incrementer, webcam + identification software), it seems like a sufficiently motivated hobbyist could come up with something passably similar in the same price ballpark.

<comment><USER13> I'm the founder/author of OpenPnP, which exists to do exactly this. I've been working on the project for about 6 years now and I'm happy to say that lots of hobbyists, small companies, maker spaces, etc. have built and are running OpenPnP based pick and place machines.

It's a harder problem than it seems, as I've found out over the past 6 years. While the basics are quite similar to a 3D printer, PnP has some unique challenges. 3D printing can be relatively inaccurate but still produce a good output since you are working with a pretty "oozy" substance to begin with. PnP has to be pretty accurate across it's entire work surface, though. If the machine is 0.1mm off at any point in it's travel that creates a likelihood that a part will be placed incorrectly. Feeders are also, mechanically, a lot more difficult to get right than it seems like they would be.

In any case, we're having good luck and a lot of success, so if you are interested in DIY / Open Source / Hobby pick and place, please come check it out!

[http://openpnp.org](http://openpnp.org)

<comment><USER14> For those interested, here is a video/demo of OpenPnP from LCA2016:

[https://www.youtube.com/watch?v=q9BGVYnaOs8](https://www.youtube.com/watch?v=q9BGVYnaOs8)

(great project by the way!)

<comment><USER15> No way is that the same Aussie chap from SuperHouse? (he used to [?] do excellent video guides on DIY hacking those cheap Sonoff wi-fi enabled electrical relays)

</comment></comment></comment></comment><comment><USER16> There are definitely somewhat mature DIY alternatives such as LitePlacer [1] and there is ongoing effort towards an open-source software stack for PnP machines [2], but for this area to really pick up, sub-$500 kits are probably necessary. One could argue that hobby-level 3D printing would have gone nowhere if 3D printers were at a ~$3,000 level.

[1] [https://www.liteplacer.com/](https://www.liteplacer.com/) [2] [http://openpnp.org/](http://openpnp.org/)

<comment><USER17> Has anyone seen a Liteplacer in action? All the info I can find on it is from the seller.

LitePlacer is designed for one-off jobs. It gets its parts from cut tape, not reels. It uses its vision system to line up on the parts tapes, so the tapes don't have to be precisely positioned. It's quite slow for a pick and place machine, but far faster than doing it by hand.

Doesn't put down solder paste, though.

There are a lot of low-end pick and place machines, but few critical evaluations of them.

<comment><USER18> I've seen it in action - it works but you have to be quite careful when building it. There's a bunch of gotchas and it changes over time so you have to be very very sure you're looking at the instructions for your actual kit. Also it isn't self-contained - you need a computer attached to it the entire time you run it. Still, the price point is amazing and it does what it says on the tin. (I don't own one but I've seen it in use).

</comment></comment></comment><comment><USER19> I'll be interested to see if they are using it a year from now. Everyone I know who got the previous generation of similarly priced machines (like the Neodyn TM220/240A) no longer use them. Mostly due to the accuracy being not good enough for 0603 or similar sizes.

Computer vision really is the answer, but from reading the article it sounds like the CV on the CHMT36VA isn't great for parts that aren't 0603 and it's not open/easily hackable to be better.

</comment><comment><USER20> Do these machines solder the component? Or is it then necessary to put the PCBs in the oven? thnks!

<comment><USER21> The process for industrial assembly is:

Put solder on the pads. This can be done with a solder mask - a thin sheet of metal with holes cut where the pads are. Solder paste is scraped over it and then the mask is lifted off, leaving solder on the pads.

Place components. This can be done manually or with the pick and place machines described here. The solder paste is sticky so there is something to hold the components in place once placed.

Reflow. This is done by putting the now populated board into a special oven. This oven will put the board through a particular temperature curve ('profile') which melts the solder then lets it cool. The surface tension of the solder on the pads helps here - it pulls components that are a fraction off into perfect position (assuming the pick and place got it close enough and that solder is on pads where it is meant to be).

<comment><USER22> Just a note - the solder mask is actually part of the PCB, in the past often green but now all sorts of colours. It covers up the tracks and copper fills etc. that you don't want solder on.

What you're referring to in the first paragraph is just called a stencil.

</comment></comment></comment><comment><USER23> I worry about phoning home if the company goes offline. When phoning home, sniff the packets. I wonder if mother China is sending exactly the same authorization packets back to the device every time? If so it should not be terribly difficult to spoof the DNS on your own network and set up a small server to provide the necessary answer to turn on the machine.

</comment><comment><USER24> Can someone clarify, does this do paste? Or would I still need to cut stencils

<comment><USER25> No, you have to cut a stencil and apply paste before you put it in the pick- and-place.

</comment></comment><comment><USER26> would love to have it but could justify that cost. my birthday is in september if anyone is curious...</comment>


Reddit Has Become a Battleground of Alleged Chinese Trolls - <AUTHOR> https://www.buzzfeednews.com/article/craigsilverman/reddit-coordinated-chinese-propaganda-trolls <comment><USER2> The article rings very true, about the wumao and other trolls infesting reddit.

Go back to about 2016 and note the trends through today. Subreddits r/china, r/sino, and r/worldnews have seen an obvious influx of postings pushing the CCP viewpoint, then using downvotes to suppress opposing views.

I left reddit after growing weary of the never ending predictions of China's gangsters leading the world and the thousands of ways Western civilization is failing.

Those hyppocrite oligarchs are first to quietly buy homes and send their children to Canada, while threatening any Chinese critics overseas.

Reddit trolks as just one finger of the state fist, otherwise threatening: "Delete your anti-Party social media posts and Github code or we'll throw your mother in jail."</comment>


Which one should I learn? Scala or Clojure - <AUTHOR>

In the long run, probably I will learn both. But which will give better ROI? Some parameters are:<p>> ease of learning > tools available > ease of integration with Java > libraries available <comment><USER2> Scala is a big experiment in functional/OOP integration and the jury's still out. If you don't need objects and the JVM, use Haskell instead: you'll learn a lot more.

Clojure has taken the lisp baton from CLisp and Scheme, if you want macros. But even without them, the underlying semantics for concurrency look promising.

If you need to run websites on the JVM, use JRuby on Rails.

</comment><comment><USER3> imo it depends largely on your co-workers / environment. For instance, where I work (bigco) there is no way a large number of OO-java programmers are going to switch to a functional language like clojure. However, there is a chance that OO-java programmers will switch to scala because the mental models can be similar enough when you're first getting started. That is, you technically can program java-like scala because you have objects, strong-types, assignable variables, etc. So while scala has powerful language features available, the barrier-to-entry is lower (for a "regular" OO-java guy).

With clojure, on the other hand, if you haven't done "functional" programming at a large scale you literally have to relearn "how" to program. You don't have state, you can't assign variables, you only sort-of have objects, and there are all these funny parenthesis all over the place.

So first ask yourself the question "who are you going to be programming with" and "what do you want to learn".

I've written and deployed non-trivial production systems in both and I'm fond of saying that scala drove me to clojure. I'm not trying to start a flame-war or anything [1], so let's start with the good stuff:

* you get functional constructs & concise iterators

* ruby-like mixin functionality is awesome (implicits) - this allows you to architect using composition over inheritance which is a huge win over java imo.

But...

* the syntax of scala can get quite perlish at times (my favorite being the "crying-kissy-face-operator" :_* [2]).

* the strong typing can be maddening. For instance, if you're trying to use two different JSON libraries (as in early days of Lift) you have to do all sorts of ugly type conversions. This leads to type boxing and...

* For "nothingness" tests you have: Null, null, Nil, Nothing, None, and Unit. Fun. [3]

* inline-xml (who asked for this?)

It was when slogging through a Lift-based recommendation system that I discovered clojure and I have to say, I love clojure. You can program in a lisp but still use the gobs of java libraries available. The syntax is straightforward, the performance is good/acceptable, and because it's on the jvm you can use it in Hadoop etc.

So while it _does_ take longer for an OOP-minded person to think in more functional terms, I think you'll find that learning a lisp will make you a better OO programmer.

* [1] I have _tons_ of smart friends who love scala. I like scala better than java, but if I had my pick, I'd pick clojure over scala. YMMV

* [2] [http://firstname.lastname@example.com/msg0822...](http://email@example.com/msg08222.html)

* [3] <http://blog.sanaulla.info/2009/07/12/nothingness/>

</comment><comment><USER4> I've learnt and used both. Even after programming in Clojure for a year, I'm more productive in Scala because of its familiarity and because there is less of an "impedance mismatch" between Scala and available Java libraries.

However, I would recommend Clojure as the language to learn. The community is very beginner friendly, the language takes me to interesting places and some of the libraries are so elegant they are an absolute pleasure to use.

I believe learning Clojure is a good investment - as it matures more parts of the Java ecosystem will be covered by Clojure libraries, its a good practical way to learn a Lisp (which is worthwhile in itself) and its a good practical way to appreciate Emacs (which is worthwhile too).

</comment><comment><USER5> My experience with Clojure is that it forces me to think differently and I like it. I come from java /c background and Clojure drags me kicking and screaming out of my comfort zone. The purity is what I appreciate about Clojure. I am nowhere close to being productive in Clojure ( my start-up codebase is Java and javascript+node ) but one day I will get there.

</comment><comment><USER6> If you're coming from Java and using a Java IDE you'll probably feel most natural moving to Scala. I personally came to exploring Scala and Clojure with limited Java experience (and a preference for Vim and the command line) so getting started with Clojure via Leiningen was more natural for me. SBT never clicked for me.

</comment><comment><USER7> Consider <http://twitter.github.com/scala_school/></comment>


Ask PG: Publish story upvotes data to aid voting ring detection - <AUTHOR>

Would it be possible to add one link to every story submitted to HN that goes to a page that lists all the people who upvoted a story that has been submitted?
Gaming the front page of HN (and other sites) has always been an issue, but techniques have gotten good enough where it is harder to detect. With that in mind and the skillset and hobbies of HNers in mind, it would be great to provide transparency so that data-science minded members of community can detect voting rings and provide their proofs to you.
It would be great if this page included: username, karma, timestamp_account_created, timestamp_upvoted and maybe the first three decimal dotted numbers of the IP address (or some other data point to help determine geographical or network proximity without sacrificing privacy) <comment><USER2> I'm not sure I like this idea, it would mean all our votes are no longer anonymous. I think there is something to be said for not having to publish what you are voting for. You could anonymize the data with hashing but to make it useful it would still have to be able you to see what other items were voted on by one account. It would then not be too hard to match people to a hashed account is based on low voted items with only a few comments as you could assume they had also been one of the votes, with enough points of data you can then make a fairly safe judgment on who someone is.

I beleve PG has implimented a fairly sofisticated voting ring detection tool, I think I remember him talking about it before.

<comment><USER3> Comments and submissions are already non-anonymous, what's the advantage of anonymous voting ?

The knowledge that votes/flags are public may well change incentives, but I suspect the overall effect will be positive. That is people will be more thoughtful about what they vote up/down, rather than just voting for something because it's posted by a friend or flagging an article about a competitor.

</comment></comment><comment><USER4> Please no...

Why should this become a place of witch-hunting?

You give no reason why it should be implemented other than that gaming sites has become more sophisticated.

That is not enough justification, especially since

-) i don't see clear signs for HN degrading in Quality

-) i am sure that pg is concerned about HN and has implemented some measurements to guarantee the high quality of this site for the future

No need for such drastic measurement just yet.

<comment><AUTHOR> Maybe because there is witchcraft being practiced? It's not like we suspect voting ring craft is merely a belief like witchcraft was. Voting rings most certainly exist and there is no doubt that they are manipulating the site right now.

If the data is anonymized and there are no details published that can be used to identify the real user involved, it's no harm no foul. This wouldn't be about witch hunting but simply pattern matching.

We wouldn't be identifying witches but the act of witchery. We would never know who the witches were, only pg would. There would be no elements of shaming or individual people called out. This would be entirely ad hominem free.

<comment><USER5> _Voting rings most certainly exist and there is no doubt that they are manipulating the site right now._

Where's the evidence that these rings, if they exist, are having a detrimental enough effect on the frontpage to warrant something like this? Why is it so bad that PG, his fiddly algorithms and his staff of moderators can't deal with it?

<comment><AUTHOR> We know they've existed in the past (such as the voting ring around The Atlantic), so are you asking if we've succeeded in catching them all? I highly doubt it.

<comment><USER5> No, i'm just wondering if their effect beyond whatever efforts pg is putting in, is big enough to matter.

<comment><AUTHOR> Personally my motivation isn't just to improve the front page, but just to do this in the interest of science. We probably have one of the best communities on the internet insofar as percentage of members interested in data science. Providing this data would probably result in several HN worthy write ups on how someone went around detecting voting rings from the data made available.

Science should be a good enough reason to do it ;)

</comment></comment></comment></comment></comment></comment><comment><USER6> In theory, it sounds like a cool idea but I think it will be an overkill and of not much use. Not to mention that now everyone will know who is voting on what. That could start other flame wars besides the point of HN.

From what I have seen being on HN, the front page is usually of good quality and i m sure the voting ring detection mechanism is already decent.

</comment><comment><USER7> The list of upvoters could be anonymized. Assign a random and unique ID to each account, and display that.

It would be pretty neat to let the hackers on Hacker News see what kind of nefariousness can be sniffed out.

</comment><comment><USER8> It seems you could learn a lot about a person by what stories they upvote. Is there some way of anonymizing this data enough to prevent deanonymization, without making it useless?

</comment><comment><USER9> Wouldn't publishing this data enable those who "game" the system to learn more about the system they are trying to beat?</comment>


Classic maths books reset with LaTeX on Project Gutenberg - <AUTHOR> http://aperiodical.com/2012/04/classic-maths-books-reset-with-latex-on-project-gutenberg/ <comment><USER2> The other day while reading about the growing discontent with the price of subscriptions and remembering the similar problem with the price of student text the only thing I could think about was that few of today's texts are better than the classic mathematical texts. I've a small shelf of books published by Chelsea with names on them like Hilbert, Abel, Gauss and others who pretty much established the base line of modern mathematics. That Project Gutenberg is on course to provide the same books and more is some of the best news I've heard as a solution to the problem. The only down side I can think of is that these books have a fairly steep learning curve since they depend on a much better previous education than we do today. That however is a fixable problem as well. This is good news indeed! Here is the link: <http://www.ams.org/bookstore/chelsealist>

EDIT: added URL and expanded name list.

<comment><USER3> I'm like a cat in heat looking through the titles - but I am already too busy!! Grrrg.

Question: What is a good electronic device for reading ~A4/Letter sized format? Cheap and cheerful. No 'brain' required other than to search and switch between documents.

<comment><USER4> Only one I can think of, is the Kindle DX. <http://amzn.to/Io1KxB>

<comment><USER5> If only it had WiFi, not just 3G, I would have bought one as soon as it came out...

</comment></comment></comment></comment><comment><USER6> Wow. Nice. LaTeX typesetting for math just can't be beat.

How can one get involved? Re-typesetting a math book sounds like a good way to learn something...

> The only down side ... steep learning curve since depend previous education > > That however is a fixable problem as well.

@hsmyers I think I have the fix. I am writing a book on basic math. I have had good progress coming up with a //modern// introduction to high school math, calculus and linear algebra, but I was worried whether I will be able to teach the more advanced stuff -- now I can let Gauss take care of that ;)

A very funny / concise calculus book: <http://www.gutenberg.org/ebooks/33283> quote from the intro: "Some calculus-tricks are quite easy. Some are enormously difficult. The fools who write the textbooks of advanced mathematics—and they are mostly clever fools—seldom take the trouble to show you how easy the easy calculations are. On the contrary, they seem to desire to impress you with their tremendous cleverness by going about it in the most difficult way."

</comment><comment><USER7> The server crashed due to HN coverage: <https://twitter.com/#!/aperiodical/status/195557677680689152>

"the server has crashed after having HackerNews pointed at it. Trying to get it rebooted now, and then we'll enable caching! #toosuccessful"

Also, no search engines seem to have cached it.

EDIT: Blog linked to <http://www.gutenberg.org/wiki/Mathematics_%28Bookshelf%29> .

</comment><comment><USER8> This is very exciting. First, Gutenberg gets some basic typography. Second, it's one hell of a showcase for LaTeX. Third, I nearly cried when I saw GH Hardy's book in its new LaTeX form. The diagrams alone.

Oh, and there's LaTeX source for each one! Glorious!

</comment><comment><USER7> I noticed this book: <http://www.gutenberg.org/files/13693/13693-pdf.pdf>, perhaps others, are missing a table of contents but compiling the tex source does give me one; it has probably only been compiled in one pass.

</comment><comment><USER9> Some of this stuff is pretty hard. Allow me to recommend something that HN readers should be able to enjoy: Flatland (<http://www.gutenberg.org/ebooks/201>) is a highly readable introduction to higher-dimensional spaces.

</comment><comment><USER10> Please don't forget to donate a few bucks to this amazing project!

[http://www.gutenberg.org/wiki/Gutenberg:Project_Gutenberg_Ne...](http://www.gutenberg.org/wiki/Gutenberg:Project_Gutenberg_Needs_Your_Donation)

</comment><comment><USER11> MetaLibri is another free site which uses TeX to typeset classical texts, among them _The Wealth of Nations_ by Adam Smith.

<http://metalibri.wikidot.com/titles>

</comment><comment><USER12> I like the fact that PDF margins are (intentionally, or not) eReaders- optimized. PDFs with wide margins are annoying on Kindle, which does not remove unnecessary whitespace from them, thus forcing user to read pages 'on side' or zoom parts of the document.

<comment><USER13> The latest Kindle DX crops margins automatically from PDF files. It works well on LaTeX generated files, though not always on scanned ones.

</comment></comment><comment><USER14> I now a decent amount of TeX but want to learn more, anyone have a nice advanced example TeX file for laying out large books, docs?

<comment><USER15> The Not So Short Guide to LaTeX (<http://tobi.oetiker.ch/lshort/lshort.pdf>) provides 95% of what you'll need to lay out a large, non-trivial document. The last 5% you'll get from the documentation of whatever package you need to dig up for some specific functionality you want; for instance, TikZ ([http://mirror.ctan.org/graphics/pgf/base/doc/generic/pgf/pgf...](http://mirror.ctan.org/graphics/pgf/base/doc/generic/pgf/pgfmanual.pdf)) for fancy diagrams and graphics, pgfplots for graphs and plots, and hyperref and url for nice cross-references and links.

<comment><USER14> That works, thank you.

</comment></comment></comment><comment><USER16> I love resources like this. Publicly available knowledge, especially on a topic like Math is absolutely priceless. I commend whoever took the time to put this together.

</comment><comment><USER17> I'm just incredibly happy with the books they already have on the history of mathematics. When I got my BS in math, the history bits always fascinated me but I never took the time to dig into them with the fervor I'd have liked. Thanks for this!

<comment><USER3> Name some favourites?

</comment></comment><comment><USER18> Often the different notation from older books makes them harder to learn from, but sometimes I've found them useful. (Watson's "A Treatise on the Theory of Bessel Functions" was the only place I could find certain formulas derived.)

<comment><USER19> I just had a flick through the book - the notation looked familiar and I'm pretty bad at math. Is there really that much that has changed since 1921?

I ask mainly because I was thinking of using a book like this to brush up.

<comment><USER18> Not in that case.

I think it's really algebra that looks very different after the 50's.

<comment><USER19> Thanks!

</comment></comment></comment></comment><comment><USER20> Link is down

<comment><USER21> Hello! I'm one of the site's admins. I forgot to turn on caching :(

Anyway, what the post was linking to was this page on Project Gutenberg: <http://www.gutenberg.org/wiki/Mathematics_%28Bookshelf%29>

Many of the textbooks there have been rewritten in LaTeX and now look just as good as the originals.</comment></comment>


Hong Kong Baffled by Snowden's Hideout - <AUTHOR> http://blogs.wsj.com/chinarealtime/2013/06/10/hong-kong-baffled-by-snowdens-hideout/ <comment><USER2> This is contradicted somewhat by a different source. This one says Hong Kong is a very good place to seek asylum right now, because there is a moratorium on deporting asylum-seekers:

 _But there is at least one reason it could be incredibly shrewd: Hong Kong 's asylum system is currently stuck in a state of limbo that could allow Snowden to exploit a loophole and buy some valuable time._

 _Simon Young, director of the Centre for Comparative and Public Law at the University of Hong Kong, told GlobalPost that a decision delivered by Hong Kong 's High Court in March of this year required the government to create a new procedure for reviewing asylum applications._

 _Until the government does this, he said, asylum seekers are allowed to stay in Hong Kong indefinitely._

[http://www.globalpost.com/dispatch/news/regions/asia- pacific...](http://www.globalpost.com/dispatch/news/regions/asia- pacific/china/130610/why-edward-snowden-hong-kong-extradition-asylum)

<comment><USER3> The difference here is that Snowden is going to be wanted for criminal charges, not political ones, so his case for pleading asylum is very, very weak.

It's like someone being accused of murder and trying to seek asylum in another country (I'm not saying that what he did is identical to murder, just pointing out what "criminal" means here).

<comment><USER4> Most oppressive regimes will make sure that dissidents also get criminal charges (fabricated or not), so then you could just as well remove the concept of asylum entirely. Hardly any country has political charges after all.

The concept of murder may not be as obvious as you think. If an American murder fled to Norway, he will likely not get asylum, but Norwegian authorities can't extradict him to the US, because they are not allowed to do that when there is a possibility of capital penalty. The same is the case for many other European nations.

</comment></comment></comment><comment><USER5> Have we seen a news report yet about how Snowden traveled to Hong Kong? His choice of destination may have been dictated by where he could fly on a nonstop airline flight from Hawaii, where he was last based. His travel documents, because he was contracting for the NSA, may already have had restrictions on which destinations he could fly to. (Such restrictions have been routine for NSA employees for more than a generation. Airlines check travel documents before you board a plane on an international flight, because the airline is responsible for returning you at no charge to you if you are denied entry for lack of proper travel documents at the border of your destination.) He may simply have had no better choice when he had opportunity to leave work and leave home.

<comment><USER6> A few years ago I was cutting it close for a flight from New York to Maine. Everyone else had boarded when I got to the gate. When my wrinkled, self- printed boarding pass threw error noises, the agent told me just to go, "and run!" I breathed a sigh of relief when I was on the plane, but puzzled that a French tourist was in my seat. When we saw that both our tickets had the same seat we called over a flight attendant. "Wait, where are you flying?" she asked. "Portland, Maine?" With this comment I now fully understand the terror came to her face as she exclaimed, "This plane is going to Paris! Sir, you have to get off this plane immediately! Run, sir, run!" They shut the door behind me as I left.

So yes, always double check your gate assignments at the airport, as they may have changed.

<comment><USER7> you missed a free trip to paris! what an adventure that would have been. well, not if you can't leave the airport.

</comment></comment></comment><comment><USER8> This guy is not dumb by any stretch of the imagination. He also didn't make this decision overnight. If I had to guess, he planned this all very well with all considerations in mind .

The fact that he noted his location at all is interesting in that he obviously doesn't want to get caught. So why bring it up? He could have just as easily left that detail anonymous. Makes me wonder if there's a tactic in mind that we might not have seen just yet.

<comment><USER9> It's unlikely that he'd be able to hide anywhere in the world at this point without at least _someone_ finding him. At least by saying where he is people will notice if he goes "missing".

<comment><USER10> Also consider, if he hadn't shared his location he might've just disappeared as soon as he made an anonymous statement over the internet. This way he gets to talk to the press and establishes his location clearly.

</comment></comment></comment><comment><USER11> He might have an insurance policy. After all, he had access to other data so if they lock him up, they risk problems bigger than they could ever imagine. He may have written a program that releases the information on a certain date. Or someone else has a backup and knows what to do with it.

Either that or he's no longer in Hong Kong, sort of like what McAfee did, tell everyone where he's at when he's really no longer there. So when Snowden tells the CIA their office is across the street, it's no more than a tactic to mislead the CIA.

Either that, or he hasn't thought this through at all and I find that hard to believe.

<comment><USER12> I find it hard to believe that he can be anywhere so easily. The NSA isn't omniscient, but certainly it keeps close tabs on people that work with/for them?

<comment><USER13> I would suggest that tracking former employees or contractors that had security clearance and did not misbehave while working for the NSA would be a pretty low priority to keep track of - and fairly numerous. Particularly since any information they did have that was sensitive would generally lose value over time. I would expect that most of the NSA's resources directed at specific individuals are directed at individuals that they have reason to believe are up to no good, not just tracking low-risk folks for the sake of tracking them.

<comment><USER14> He wasn't an NSA employee he was a contractor. They don't even know how many contrators they have working for them.

</comment></comment></comment></comment><comment><USER15> > Hong Kong is the worst place in the world for any person to avoid > extradition, with the possible exception of the United Kingdom

I'm British, and this both saddens and angers me. It's time for a change.

<comment><USER16> I wouldn't worry too much about it, it is all politics and all selective. A lot of Russians fled to the UK to elude justice in Russia. Whether they are political refugees or indeed committed crimes back home is another matter, but London is certainly a safe harbour for many of them.

<comment><USER17> For which crime is polonium poisoning a legal sentence? Because if it's not a legal sentence, then it is not a matter of eluding "justice".

<comment><USER16> That is just one example, others are Berezovsky, Chichvarkin, Akhmed Zakayev to name the few. You should know who Berezovsky is, Chichvarkin created a retail chain for mobile electronics who had his business expropriated by some high ranking cops and Zakayev is a former Chechen rebel. This is what I can bring on top of my head, but I'm sure there are a lot more.

<comment><USER18> Berezovsky is also dead

</comment></comment></comment></comment></comment><comment><USER19> This stuff proves to me that these programs have no value in stopping things that have not yet happened. Like the boston bombings and this guy, I sure there was a huge trail of evidence that didn't get identified in time to stop the actual act.

<comment><USER20> Or that the programs are not being abused widely for surveillance outside of their stated purpose?

<comment><USER21> Not worth it. The risk from totalitarian regimes is far greater than the risk from terrorism. Governments have more resources, by far. Even if we assume that PRISM is being used completely above-the-board the potential for abuse is still large enough to warrant reconsideration.

</comment></comment></comment><comment><USER22> China would turn Snowden over to US authorities only in exchange for the return of Chinese protesters given asylum in the US.

The "China is an oppressive regime" meme makes up a lot of US propaganda and is used to justify all kinds of policies. So the US is put in the awkward position of not being able to engage in the usual diplomatic trade.

Hong Kong is useful b/c it represents the future of Chinese society and is a concentration of wealth and influence. By letting Snowden stay in HK, China can appease its own population while also appearing to stand strong against the US government's demands.

The best hope for the USG is that this blows over. Snowden seems fairly savvy about the media's role and if he's able to continue to shape the discussion there might actually be meaningful outcomes.

<comment><USER23> > The "China is an oppressive regime" meme

It's not a meme. It's fact.

<comment><USER24> This brings up the idea that Snowden fled the US to a place that he felt would be more free.

<comment><USER25> HK != China

<comment><USER26> Hong Kong is China and has been since 1997.

<comment><USER27> One country, two systems.

</comment></comment></comment></comment></comment></comment><comment><USER23> > According to an interview with The Guardian, 29-year-old Edward Snowden, > whose revelations have created a political uproar, has stashed himself in an > unidentified luxury hotel in Hong Kong, a city he said he chose as the best > place to hunker down given its "spirited commitment to free speech and the > right of political dissent."

You mean the place that has no political freedom to speak of and exists under the PRC's thumb?

<comment><USER28> HK has more political freedom than the rest of the PRC. I've heard of protests there that would be illegal anywhere else in the PRC. IIRC, you also need special travel papers to go to HK from the rest of the PRC.

</comment></comment><comment><USER29> Isn't a luxury hotel the worst place to hide?

I'm sure there are cameras and one is easily recognized when getting out of the room.

Or is this just a 48h maneuver to clear up the political situation and then if needed move to one of the embassies in HK that is more supportive?

<comment><USER30> >I'm sure there are cameras and one is easily recognized when getting out of the room.

All those cameras and employees become a protection. Remember when Israel assassinated that arms trafficker in a luxury hotel and all the video footage was released to the internet. It blew ~10+ operatives cover and caused a major diplomatic row about the fake passports used.

If the US took action at the hotel the cost in terms of US covert operatives in China blown would be in 10-100s of millions of dollars in training and recruitment. If the US used a third party they would expose that third party to Chinese intelligence. Not including the media firestorm such an action would cause.

All security is about raising the cost to the attacker, he has raised it significantly but the US still act if Obama so choose. From the US perspective the damage is done, why bring more negative PR at such a high cost?

</comment></comment><comment><USER31> Maybe he was ignorant, maybe he was spot on.

Maybe his hypothetical extradition will cause a sort-of diplomatic "mess" between Beijing and Honk Kong, leaving him a limbo where neither HK nor China will grant him total asylum but wont extradite him either

<comment><USER32> There are two areas where SAR have little independence: defense and foreign affairs. Hong Kong will have its own money, postal service, justice, environment ministry, police, ....but it doesn't have a military and its foreign affairs tends to be limited to economic matters.

</comment></comment><comment><USER33> Here's a cynical interpretation: Hong Kong makes zero sense given that they are a) within Chinese sphere of influence and b) frequently extradites to the US. He's go other sensitive documents he may sell to the Chinese in exchange for money and sanctuary. So maybe that was the plan all along. Everyone focuses on the NSA wire-tapping scandal (which, honestly, I think everyone assumed was happening for years), and he gets a payout and some cover.

Too cynical?

<comment><USER34> I don't think it makes sense. Like he said in his interview, he could have just sold the stuff he already leaked. Why then would he bother with the whole trouble of very publicly becoming America's Most Wanted? He sounded pretty sincere about doing this for the good of the American people. He claims he made a concerted effort to not reveal any information that could harm individuals, which appears to hold up.

I would think (hope) he has some cards up his sleeve to protect himself, but at this point I think all the double-agent/working with China talk is wild conjecture.

<comment><USER33> Don't get me wrong, I have nothing to go on. Edward's disclosure was responsible, and certainly served a public good, and so far he should be lauded for it. It was a brave act. I understand him fleeing and seeking asylum in another country given that there is little chance he would get a 'fair' trial here (as has been shown by the way Bradley Manning and Aaron Swartz have been treated)... but of all places ... China??!? He's not an idiot, so he must have thought this through but it makes no sense.

<comment><USER35> HK != China. How many times should we do this?

<comment><USER33> China can veto any extradition.

HK and US have a mutual extradition treaty for actions that are illegal in both countries. Presumably leaking state secrets is illegal in HK. Furthermore, HK is quite willing to extradite to US and does so on regular basis.

So the question of why China (or HK if you prefer), remains.

<comment><USER36> I think it's been answered here: [https://news.ycombinator.com/item?id=5853901](https://news.ycombinator.com/item?id=5853901)

Hong Kong currently has a moratorium on extradition of asylum seekers.

</comment></comment></comment></comment></comment></comment><comment><USER37> I would guess that he's not even in Hong Kong anymore, nor at the time of his interview.

<comment><USER11> I think he was in Hong Kong for the interview. If he wasn't, the government would use it against him in an attempt to make him look like a liar, an enemy of the state.

</comment></comment><comment><USER38> Maybe he knows something we don't? Just a guess.

</comment><comment><USER39> All the press and comments assume his ultimate goal is to avoid extradition, which has not been requested so far. I think he know the consequence of his action very well. He wants to expose the government surveillance program and draw public outrage. If US government do request for extradition, this will go through the court system in Hong Kong. Hopefully it will be a fairly transparent system and give him another chance to raise the awareness of this program. He might end up in jail, but this would fulfill his goal, that is to expose the surveillance program to the greatest extend possible.

</comment><comment><USER40> Maybe because he knows what the NSA capabilities are in Hong Kong?

</comment><comment><USER41> I'm also surprised he chose HK - it seems dicey to me. Off the cuff, there are other places that come to mind as being more promising spots. Having followed the Roman Polanski saga a few years back, for instance, I would have thought France would be a proven destination for anyone seeking to avoid US extradition.

</comment><comment><USER13> I am baffled too, given that Ecuador offered Assange asylum wouldn't that be the most logical choice? I quick "vacation" down to Costa Rica and overland to Ecuador if you want to avoid raising suspicions and travel restrictions.

<comment><USER42> > down to Costa Rica and overland to Ecuador

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

<comment><USER43> Most people cross the Gap by boat. It's 'overland' in the sense that you don't have to get on a plane.

</comment></comment></comment><comment><USER2> Then again, if Snowden were hypothetically spying for the PRC, Hong Kong would be the _most_ logical place to seek protection. In this scenario the PRC would credibly protect him from the US, and European liberal democracies would not.

<comment><USER44> If he was spying, then why Hong Kong, and why not Beijing directly?

<comment><USER45> Protection, balanced with plausible deniability.

<comment><USER46> Once you're protected, there's no more need for denying.

<comment><USER45> I mean deniability for the Chinese : Hong Kong is independent enough that they can claim powerlessness to their American partners, but they are the elephant in the room and can ensure that they keep actual control of the situation.

</comment></comment></comment></comment></comment><comment><USER47> I've been doubting that he actually IN Hong Kong at the moment. He may have been there at some point and did the interview there, but I would have hoped he burned his location and is currently in another country.

</comment><comment><USER48> Note to journalists: Please stop using the Orwellian term "Rendition". The proper term for bringing a suspect back to face a judge is "Extradite"

<comment><USER49> Actually Extradition is subset of Rendition (which involves any transfer between jurisdictions), which is not at all an orwellian term.

It has only taken on its more negative connotations since the use of "Extraordinary Rendition." Had the term used for that behavior been "Extraordinary Extradition" then you would be complaining when journalists use the term "Extradition"

</comment></comment><comment><USER50> Too many batman movies

</comment><comment><USER16> So why didn't he go to Iceland in the first place? And would Hong Kong let him out if he decides to leave right now, before the US issued any warrant?

<comment><USER51> The cover was medical tourism... HK is known for it, Iceland isn't... Also HK is currently in a state of flux in terms of it's asylum process... So he can stay while they even sort out the process of applying/approval etc... it's rather brilliant.

</comment></comment><comment><USER52> A more interesting question is why he made himself public at all.

</comment><comment><USER53> what would really be the best place to hideout? are there any countries where he would be free of us extradition threats given his high profile nature?

<comment><USER54> My guess would be Venezuela or Cuba.

</comment></comment><comment><USER55> Who is funding him?

<comment><USER56> He earned $200,000 a year. Maybe he has some savings.

<comment><USER55> To me, the real story is possibly how the government over pays contractors.

The other real story is not that the government does this, it is that the government did not tell us it did this. THAT makes it underhand.

If the government came out and said, look we are storing who calls whom and asking telecos to store that information and, with judicial oversight, we will access that information, and we had a debate about it, that would be the proper way.

The government is taking the course "It is better to ask forgiveness than permission".

Obama is going to take the rap for this, and I therefore wonder at the timing. I think it is important to realize two things

1\. Obama continued the Bush era policies 2\. Obama continued the Bush era policies

Either that is the ONLY way security can be done, or there is some powerful faction within the bureaucracy which has gotten used to working in the shadows.

I think that there is some bunch of bureaucrats who have gotten too used to having information at hand.

I think we as a community need to keep using the regular methods offered to us via democracy (like posting on this online forum) to express our wish that

a) We be told what the government is doing b) Express our displeasure at the direction the style of governance is going

<comment><USER57> There is so much demand in maryland for IT that has a clearance that it bids up the price of anyone reasonably competetant.

<comment><USER58> He lives in Hawaii....

<comment><USER59> And cost of living there is ridiculous.</comment></comment></comment></comment></comment></comment>