Happily married to PHP, should I get a divorce? - <AUTHOR>

I have been doing web development work with PHP now for over 5 years and for the last year or so using CodeIgniter (moving to Kohana on the next Project). I have a good background in Computer languages and have programmed average size developments on desktops using most of them. With all the hype with functional languages and developments such as Ruby on Rails, I have been thinking to try something different. I mostly do development work for web applications (mostly my own). One Project that is on the cards now involves a lot of text-analysis. I have been thinking Django and Python for this one. However, I ran some test code for this with PHP and other than the fact that PHP looks less sexy, I can do almost everything I want with PHP.<p>Can anyone make any suggestions? <comment><USER2> >Happily married to PHP, should I get a divorce?

Replace PHP with your real wife's name and the silliness of the question is apparent.

Either you are happy and shouldn't be worrying about the 1500 other development areas that exist, or you aren't really happy.

Figure that out, and you have your answer. More importantly though you should keep in mind that all of these relationships are perfectly open. There's no reason to stop learning.

<comment><AUTHOR> 'Replace PHP with your real wife's name and the silliness of the question is apparent'. You probably right. Maybe a fling on the side though, might not be such a bad idea :). Learning and exploring for me is a lifelong passion, however, I try to separate what I should use professionally with what I explore.

<comment><USER2> There's nothing wrong with that. There's nothing wrong with being one- dimensional in your choice of language either.

The key is to do what makes you feel happy, and not worry about what everyone else is doing, within reason.

</comment></comment></comment><comment><USER3> I'm of two minds on this... I've been doing pretty much what you are doing, about since PHP came out, maybe a bit shorter, but not by much.

I have a love/hate relationship with the platform, I still get bitten every now and then by obscure language 'features' (others would call them bugs).

PHP is a bit of a dog in many ways (including said bugs), but it's a dog that I know and apart from the occasional scratch it's been pretty good to me. It kept me alive for about a decade so I really have no reason to complain.

But still, the grass on the other side of the street is looking greener and greener. Now, I never married my dog, but I'm loyal to it, I wonder though if I shouldn't get one of those other puppies, they're fresh, young and seem to have plenty of potential to grow in to big sturdy and dependable dogs as well.

Mind you, I'm not going to go into the back 50 tomorrow to shoot PHP but django or something like that is really interesting.

<comment><USER4> I empathise with the love/hate relationship w/ php. It is the most deployment friendly option out there (seriously). But as a programming language it can sometimes feel like like you are attempting to knit chainmail from steel wool; if you squint it looks sort of right, but you know it's not as sturdy as the real thing.

My general rule of thumb is that if you find yourself using more than a few classes that aren't directly producing output, you should reconsider your application and move the heavy lifting into some piece of middleware that the php talks to.

<comment><USER3> my biggest issue is the number of projects that I have that are already running PHP and the decade that I invested in to getting to know the environment. That's going to be hard to let go...

Even java starts to look pretty good compared to PHP these days and I can hardly believe that I'm writing this. Not so long ago java was spelled s-l-o-w now it's only drawback seems to be that it takes about 4 times as many lines to do the same job. But at least the end result is somewhat maintainable, which is always a difficult thing to achieve with PHP. It's possible, but it will cost you a lot of extra time.

</comment></comment></comment><comment><USER5> it depends. do you want to push for new skills or are you happy doing what you're doing?

if you want to learn some new stuff and you have the time to devote to the learning process, why not? your timetables will be inflated for whatever you're working on and you'll need to commit fully. but you'll definitely learn new stuff.

if you're happy with what you're doing and are doing well and aren't really interested in learning something new, then why would you?</comment>


[Map] Watch as the US grows over time - <AUTHOR> https://www.washingtonpost.com/blogs/govbeat/wp/2014/03/03/watch-the-united-states-grow-before-your-eyes/ <comment><USER2> I know The Man in the High Castle is relevant right now and a common "what if" scenario, but I'm actually more interested in a North America where the US never purchased Lousiana or went further west. Or if the South won the Civil War.</comment>


SAR Imagery Reveals Presence of Concealed Sub at North Korea's Sinpo Naval Base - <AUTHOR> https://www.38north.org/2020/01/sinpo010320/ <comment><USER2> Are algorithms used for processing these images subject to the recently announced embargo? Cool stuff.

I somehow missed that North Korea has a ballistic missile submarine. Makes a war against them even more difficult.

<comment><USER3> > Makes a war against them even more difficult.

North Korea could be armed with sticks and stones and war against them would be just as difficult since they are backed by china explicitly and russia implicitly. If china and russia said north korea is on their own, we'd bomb them back to the stone age within a few hours. As long as north korea is back by china and russia, they are pretty much off limits.

<comment><USER4> Seoul's proximity to the border and the NK artillery based there complicates things more than you suggest: [https://worldview.stratfor.com/article/how- north-korea-would...](https://worldview.stratfor.com/article/how-north-korea- would-retaliate)

<comment><USER5> I have a hunch that this gives the poorly trained and poorly fed NK troops with poorly maintained equipment a bit too much credit. I have a hunch this underestimates the people of Seoul.

<comment><USER6> Your hunch would be wrong. North Korea has tens of thousands of short range artillery pieces, rockets and self-propelled missiles on the border 35 miles from Seoul. They are low-tech and would very reliably reduce Seoul and millions of people to rubble within minutes of any attack on North Korea with absolutely no way to stop them. This would occur even if North Korea was somehow unable to use any of their dozens of nuclear weapons and if all of their subs, planes and ballistic missiles failed.

</comment></comment></comment></comment></comment><comment><USER7> Off topic :

I cannot access the page, "One more step,Please complete the security check to access www.38north.org" (captcha from cloudflare it seems)

Solving the captcha didn't work for me, more captcha are presented to me.

I'm on LTE network with javascript disabled, and I'm not allowed to access the page.

This is discrimination, CAPTCHA should be illegal

EDIT : for people with same issue, this works : [https://web.archive.org/web/20200104181552/https://www.38nor...](https://web.archive.org/web/20200104181552/https://www.38north.org/2020/01/sinpo010320/)

<comment><USER8> Are you VPNed or using TOR? I'm blocking JS and am not having this problem.

<comment><USER7> No ! I use data from mobile phone (so the local mobile network provider, france)

</comment></comment></comment><comment><USER9> Well, may be. I'm not sure if I should trust USA after their lies about Iraq in early 00s.</comment>


Show HN: Fast and Extensible Parser for Markdown in PHP - <AUTHOR> http://parsedown.org/ <comment><USER2> I don't need another Markdown Parser. I need another Markdown.

Markdown has outgrown its original spec, yet Gruber both clings on to it and is unwilling to update it. Meanwhile, different websites and different parsers proliferate, each adding new extensions with varying degrees of usefulness and compatibility, all under the name "Markdown" or some variation.

I wish GitHub would drop the name "GitHub flavored Markdown", give it a clever new name, a cleverly branded website and use their bully pulpit to cast off Gruber's shackles and effect change.

<comment><USER3> Agreed. Most new Markdown parsers for higher speed have different edge cases, including the famous _marked_.

If you don't mind the frustrating syntax tree, you can try Strictdown (not Markdown), and get some insights to make a better one. (I'm now lazy to update it.) [https://github.com/jakwings/strictdown](https://github.com/jakwings/strictdown)

<comment><USER4> Strictdown looks thorough: well-done! Added to the inventory of Markdown parsers and resources.¹

SkrivML² is another thoughtful take on lightweight markup, next generation.

¹ [https://github.com/rhythmus/markdown- resources/](https://github.com/rhythmus/markdown-resources/) ² [http://markup.skriv.org/](http://markup.skriv.org/)

<comment><USER3> Thank you! Wonderful collections!

</comment></comment></comment></comment><comment><USER5> It's important to remember that most markdown implementations (including his one) cannot be used to provide a safe mechanism for authoring user generated content without opening a site up to XSS vulnerabilities, since markdown allows arbritrary HTML markup.

<comment><USER6> Easily solved by proper use of HTMLPurifier on the output.

<comment><USER7> Thus negating any speed improvements in the markdown parser....

<comment><USER8> Considering you have to run any markdown parser through a sanitizer, the speed improvements still matter.

<comment><USER7> The markdown parser should be able to do it in an ideal world. Htmlpurifier is very slow.

edit:

To whoever downvoted me, I'm sorry, was I wrong? The markdown parser has to look at every input byte, obviously it's better to do the HTML sanitation at this level because the HTML parser must also look at every input byte, so, combine them into one pass...

Running HTMLPurifier on the output of the markdown parser is inefficient - it's sanitizing known good elements not just the potentially bad ones, so you're giving it more work to do.

</comment></comment></comment></comment></comment><comment><USER9> Different markdown editors seem to be in disagreement how to parse the following: [https://gist.github.com/anonymous/810ae1f7d52bcfffa1ef](https://gist.github.com/anonymous/810ae1f7d52bcfffa1ef)

If the second empty line marks the end of the list block, the indented html (code block) should preserve tags

<comment><USER10> Yeah it looks like my site fails at this - [http://markdownshare.com/view/96996ce5-63bc-45ca- af49-ba18cb...](http://markdownshare.com/view/96996ce5-63bc-45ca- af49-ba18cb53ace1)

</comment></comment><comment><USER8> I remember seeing this on /r/PHP, and one of the top comments there was about it using Regex instead of parsing it like a language.

However, I also recall that it's thanks to using regex that it works so quickly. So I figured I'd get this argument out of the way before someone else brought it up.

<comment><USER11> I think semantics parsing with lexer/tokens is better for a lot of things but it sometimes overkill when the patterns are predictable and simple.

That said, has there ever really been an issue with _speed_ as it pertains to markdown translation? I can't imagine it's an everyday, practical concern.

<comment><USER12> As with most tech, if there such a leap in speed (about 10 times) then a lot of other applications become possible. You could remove a layer of caching because its not needed anymore, thus reducing your app complexity. But apart from that, imagine how many places use markdown? If people all move to a 10 times faster implementation, that an incredible reduction in wasted cpu cycles.

<comment><USER11> My point was not that we shouldn't work to produce even small efficiencies (which, yes, cascade into larger aggregate ones).

It was more wondering whether speed in markdown parsing is such a concern that this would merit a marquee 'selling' point.

</comment></comment></comment></comment><comment><USER13> We started with a server side Markdown parser, but switch to a JavaScript parser ([https://github.com/chjj/marked](https://github.com/chjj/marked)). Really there is no reason to do this work on the server.

</comment><comment><USER14> I've worked with several markdown implementations and parsedown is my current choice due to my main constraint - speed. Great work and thanks for sharing.

<comment><USER15> If speed is your top priority you may also want to look at Sundown, which can be installed as a PHP extension and is likely faster since it's just C.

[https://github.com/chobie/php-sundown](https://github.com/chobie/php-sundown)

</comment></comment><comment><USER16> Looks great, happy to see the Markdown Extra extension. With regard to performance, I've always gotten around the slowness of the original Markdown parser by making liberal use of caching, but warming the cache is still painful for a CMS. Will look to migrate to this.

</comment><comment><USER7> Parsedown is certainly very fast, but I wouldn't call it "extensible". CeBe's markdown parser is nearly as fast, but focusses on being very easy to extend, so it's trivial to add custom syntax elements, see [https://github.com/cebe/markdown](https://github.com/cebe/markdown)

(CeBe's library is inspired by parsedown)

<comment><USER12> > Parsedown is certainly very fast, but I wouldn't call it "extensible".

Parsedown is extensible and it already has been extended. There's a well working extension of Parsedown that adds support for Markdown Extra. It's called Parsedown Extra. It can be found at [https://github.com/erusev/parsedown- extra](https://github.com/erusev/parsedown-extra)

<comment><USER17> It is possible to extend, but extensible requires more. In this case, ParsedownExtra looks to directly extend the Parsedown class. This is fine for a single extension, but it discourages utilization of multiple independent extensions.

</comment></comment></comment><comment><USER18> Perhaps I am looking at this wrong, but I don't see why you would use a Markdown parser written in PHP if you're looking for speed. Case in point the parsedown system is fast because it has heavy use of regular expressions, which parse faster and run faster than the host language-- it already relies on a language other than PHP to essentially emulate parts of a well-written lexer.

As debaserab2 says[1], if you are looking for speed, consider PHP extensions.

In my opinion, writing a system like this is a misappropriation of PHP, which evolved from and works best as a hybrid templating/scripting language. It becomes a powerful development platform when its extensive library of C functions is used to do most heavy lifting.

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

<comment><USER3> If someone has done it well without compiling C library, why don't you try it (on a shared server, maybe)?

<comment><USER18> I don't understand what you mean. Could you also explain the negativity around this comment? I didn't think it was a badly voiced opinion, and karma is not meant to be used to show how much you agree or disagree with someone.

<comment><USER3> I had no right to downvote your reply. (even now) ;) Please take it easy. I just want to say that using C library is not always preferred.

<comment><USER18> I agree, but I did not mean to make any sweeping statement in that regard, but in the case of a standardised markup like markdown, there are already suites of field-tested C libraries that provide much better speed than this library would; for markdown content, this provides a better experience for your users.

<comment><USER3> Agree, too. Well, plain text sucks. So I like to use smiley symbols now. ;-)

<comment><USER18> :¬)</comment></comment></comment></comment></comment></comment></comment>


Neovim public release 0.1.0 - <AUTHOR> https://github.com/neovim/neovim/releases/tag/v0.1.0 <comment><USER3> I've been using nvim exclusively for four months now. Perfectly stable (I think even more so than my vim was, I use lots of crashy plugins) and a perfect drop in, basically nothing changed for me when I renamed nvim to vim on my systems.

I wonder what their roadmap is for a 1.0 release. Is it a specific feature set, or stability in their MessagePack APIs? Is it years off, or just pending some big bugs/refactorings?

<comment><USER4> So essentially there is little difference for end-users (yet)?

<comment><USER5> I think :terminal has changed the way I develop at least a little bit. I haven't checked out the async linters yet.

</comment></comment></comment><comment><USER6> Good to see this project making progress, but I don't see a changelog. What's new?

<comment><USER7> There will be a post commenting on the release later this week, but the main things are:

\- neovim now follows the XDG spec: ~/.vimrc is now ~/.config/nvim/init.vim, etc.

\- the viminfo files were replaced by a new system, "shada" (for shared data)

\- lots of default settings have changed so it is more sensible[^1] by default

The rest is all the new features (when compared with vim):

\- async execution (`jobstart()` et al),

\- the extensions to the plugin system, so plugins can run truly asynchronously,

\- the rpc api, that allows for extended clients.

I might be fogetting some things, but these are imho the most outstanding things.

[^1]: [https://github.com/tpope/vim-sensible](https://github.com/tpope/vim- sensible)

<comment><USER8> There's also the "Smart UI protocol" [http://tarruda.github.io/articles/neovim-smart-ui- protocol/](http://tarruda.github.io/articles/neovim-smart-ui-protocol/)

<comment><USER7> Yes, but that is not yet implemented. I'm really waiting for that, though!

</comment></comment></comment></comment><comment><USER9> When I think about switching to Neovim, I feel disloyal and ungrateful to Bram Moolenaar. He has done so much for so many, and if Neovim takes off he won't walk away with much of a reward. How much code has been written in Vim - <USER2> almost every line for free.

<comment><USER10> That seems like a strange way to view things. What is he getting out of it now that he won't be getting out of it if neovim would take off? The only thing he has asked is that people donates to a few charities of his choice. Neovim has kept those recommendations front and center, and if it does take off it might end up extending the user base causing even more people to donate. That's not a bad legacy, is it?

</comment></comment><comment><USER11> For anyone "switching" from vim, I recommend looking at vim plugins with neovim-specific support/enhancements: [https://github.com/neovim/neovim/wiki/Related- projects#plugi...](https://github.com/neovim/neovim/wiki/Related- projects#plugins)

<comment><USER4> Neovim-hackernews? Coming soon, an email client in your editor...

<comment><USER12> I figure you've never used emacs ;)

<comment><USER4> This was a poke at emacs.

</comment></comment></comment></comment><comment> r-s I have been using neovim for months now with no issues I can attribute to neovim. The terminal mode can be useful, although I still prefer my current tmux setup. I have been using it with linux and osx, building from source.

I suspect most users could download neovim, symlink their .vimrc/.nvimrc, alias vim=nvim and not be able to tell the difference.

<comment><USER13> If that's the case why use it? I'm still holding out for Neovim's killer feature; I'm not switching just because they use more modern APIs or removed Amiga support; I don't care about those things as an end user.

<comment><USER14> Proper async plugins are the killer feature. For example, if you're using neovim then Syntastic doesn't block the UI when it runs checks. Also off the top of my head, built in terminal emulator and 24 bit color support and far easier integration with external programs. Eventually my hope is that we will have real vi-mode plugins for IDEs that actually load up (neo)vim, though those sort of things are still in their infancy.

I'm a very heavy vim user and have been using neovim for a while now. It causes me zero issues even following git master, but I can definitely notice improvements.

<comment><USER13> > Proper async plugins are the killer feature.

I hope there's more that than. I personally don't use any plugins for which this is a problem. Not doubting those plugins exist, but apparently you can get by as a Vim user without them.

I see potential for the embedding api. If I could run Vim on a server and connect to it from a web app I would find that to be very compelling. Maybe there are other features that will set it over the top, but I'm still waiting.

<comment><USER14> If you're using vanilla vim I don't think there's a whole lot neovim will offer you at present. I think there will eventually be some performance improvements in the core areas, but they haven't really started on that yet.

Async support is a big deal for a lot of people though (and it's neovims original raison d'etre). For example, not having :make (well, :Neomake) block on compile is pretty significant by itself. Under the hood getting real async tasks required/requires a ton of rewriting because of how Vim was architected. Those changes were made deliberately and weren't _just_ so that they could use all these fancy new libraries.

So I guess I'd liken it to Windows when it went from the 98 days to WinNT/2000 - keeping things working about the same while laying the foundation for bigger improvements later.

On the other hand, I don't see much downside to moving to neovim either. It is interchangeable (in my experience) with vanilla.

<comment><USER13> > If you're using vanilla vim I don't think there's a whole lot neovim will > offer you at present.

My vimrc is 80 lines, I don't feel it's vanilla at all, but I don't use :make or probably any other commands that launch subtasks so I guess this is what sets me apart.

<comment><USER14> I meant more with the plugins, but in any case regular vim isn't going anywhere either. I think there's eventually supposed to be hooks for building better GUIs and external integration, which will probably be the turning point when a lot more people switch over.

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> I'm usually using gvim for performance. Peeked into neovim before but the only GUI I found was Neovim.app which performed horrible.

Anything new in that field?

<comment><USER16> I am in the same boat, I hope that having a working GUI is in the roadmap for 0.2.

</comment></comment><comment><USER17> So does anyone know what kind of magic happened in August? They're scanning the code using coverity and the graphs don't seem to make sense: ([https://scan.coverity.com/projects/2227](https://scan.coverity.com/projects/2227))

        1 Jul:  fixed 217, outstanding 91
        1 Aug:  fixed 220, outstanding 94
        1 Sept: fixed 216, outstanding 0
        1 Oct:  fixed 218, outstanding 0

How is that possible? Bug in coverity? "Creative counting"?

<comment><USER18> Fixed is the lifetime total. It can go down if something is reclassified as not a bug after it's marked as fixed.

<comment><USER17> Does that mean ~90 items were marked "this is fine" in August?

<comment><USER18> Probably. Just based on the graph, I'd guess that in June someone started a push to get them to zero outstanding issues in Coverity, starting with the ones that were clearly bugs, and then in August they were down to just the ones that they thought were false positives.

</comment></comment></comment></comment><comment><USER19> I've been using neovim for over 6 months and can't go back to vim, mainly due to asynchronous linter.

In the last week neovim changed their config file location from `~/.nvimrc` to `~/.config/nvim/init.vim`, though config file AFAIK is fully backwards compatible to vim, as I use the same vimrc for neovim and vim.

<comment><USER20> Are you using neomake by any chance? I might switch from syntastic as neomake seems to support the linters I need (mainly eslint and hlint).

<comment><USER19> Yes - neomake replaces syntastic for me and it's no. 1 reason I am neovim user.

EDIT: and yeah, neomake would not be effective with classical vim.

</comment></comment></comment><comment><USER21> Just switched and it might be a placebo effect, but everything from scrolling to switching files seems a bit...snappier. Is this due to the async improvements? Do plugins have to opt-in to be async or does the core re- implement previously synchronous functionality to be asynchronous?

<comment><USER22> Plugins must opt-in to asynchronous job-control.

There have been drastic changes to the event loop and redraw logic, which makes some operations feel "different" (some slower, some faster). We have not intentionally made any general performance improvements, because the performance bottlenecks of Vim/Neovim hinge on the regex engine (which is primarily maintained by Bram) and vimscript interpretation--nothing else.

Job control is implemented in Neovim for co-process (not in-process) coordination. This means that potentially long-running vimscript calculations can be offloaded to a child nvim process. But Neovim 0.1 does not have a faster vimscript engine per se.

</comment></comment><comment><USER23> Can I use my old vim configuration in NeoVim or do I need to rewrite my vimrc? Do my old vim plugins work in NeoVim or do I need to find new versions?

<comment><USER24> I did a `ls -s .vimrc .nvimrc` along with very few changes (like replacing Command-T with Command-P). Everything ran just fine. I still don't use nvim daily, mainly due to my old habits. Perhaps I should alias nvim as vim.

<comment><USER25> That changed recently to follow XDG specifications. Simuink locations should be changed accordingly. See [https://github.com/neovim/neovim/wiki/Following- HEAD](https://github.com/neovim/neovim/wiki/Following-HEAD)

</comment></comment></comment><comment><USER26> I didn't really considered Neovim until recently, as a serious vim user, I didn't really feel I want anything but original. I started using it because plugin for pairing was only working on it. I can say I was completely surprised and impressed with performance. I still use Vim, but I have Neovim handy and I could probably replace it and not even notice difference. Very impressive effort.

<comment><USER11> What pairing plugin are you using?

<comment><USER27> Probably Floobits: [https://github.com/Floobits/floobits- neovim](https://github.com/Floobits/floobits-neovim)

</comment></comment></comment><comment><USER28> Great news, long overdue. Neovim has been quite stable for many months now. Most people I know use the nightly builds, which was fine until they introduced some BC breaking stuff this week, which threw everyone off.

Bunch of snobs on gitter criticizing users for installing nightlies and expecting stability... But that's what happens when you don't tag a release after almost two years of development

</comment><comment><USER29> Play Music "Turn Me On" (feat. Nicki Minaj)

[Nicki Minaj:] Doctor, doctor, need you back home in bed Doctor, doctor, where you at? Give me something I need your love I need your love I need your loving You got that kind of medicine that keeps me comin'

My body needs a hero Come and save me Something tells me you know how to save me I've been feeling real low. Oh, I need you to come and rescue me

Oh!

[Chorus:] Make me come alive Come on and turn me on Touch me, save my life Come on and turn me on I'm too young to die Come on and turn me on Turn me on Turn me on Turn me on Turn me on

Make me come alive Come on and turn me on Touch me, save my life Come on and turn me on I'm too young to die Come on and turn me on Turn me on Turn me on Turn me on Turn me on

[Nicki Minaj:] Oh, you make it, make it right My temperature is super high If I scream, if I cry It's only 'cause I feel alive

My body needs a hero Come and save me Something tells me you know how to save me I've been feeling real low, Oh, I need you to come and rescue me

Oh!

[Chorus:] Make me come alive Come on and turn me on Touch me, save my life Come on and turn me on I'm too young to die Come on and turn me on Turn me on Turn me on Turn me on Turn me on

Make me come alive Come on and turn me on Touch me, save my life Come on and turn me on I'm too young to die Come on and turn me on Turn me on Turn me on Turn me on Turn me on

[Bridge:] You've got my life in the palm of your hands (palm of your hands) Come and save me now I know you can, I know you can

D-d-d-d-don't let me die young, I just want you to father my young I just want you to be my doctor, we can get it crackin' chiropractor, I, I, I, I

I, I, I, I know you can save me And make me feel alive

[Chorus:] Make me come alive Come on and turn me on Touch me, save my life Come on and turn me on I'm too young to die Come on and turn me on Turn me on Turn me on Turn me on Turn me on

</comment><comment><USER9> Neovim articles seem to be accompanied by a bunch of top-level comments saying how unreservedly wonderful it is and offering nothing constructive. It looks like shills (but I of course don't know the intent of any particular commenter).

<comment><USER30> Well, the first comment I see is someone worried about the open source vim project being used in an open source manner and the original vim author losing money or something, in addition to people saying they're happy about the new asnync plugins and properly managed, open to everyone development model, so there's really something for everyone here!

</comment></comment><comment><USER31> Good, now with proper XDG base directory specification support. Less clutter in $HOME at last.

I started using nvim primarily for 24 bit color themes support in the terminal. Some mild themes are way easier for the eyes.

Is anyone going to package it for Debian?

<comment><USER28> Already packaged for Debian nightly - check the installation instructions. I'm sure the releases will be too.

<comment><USER31> I mean in official Debian repos. I don't see neovim or nvim there yet:

* [https://tracker.debian.org/search?package_name=nvim](https://tracker.debian.org/search?package_name=nvim)

* [https://tracker.debian.org/search?package_name=neovim](https://tracker.debian.org/search?package_name=neovim)

<comment><USER32> There's a tracking bug here: [https://bugs.debian.org/cgi- bin/bugreport.cgi?bug=752264](https://bugs.debian.org/cgi- bin/bugreport.cgi?bug=752264)

Current status seems to be working on packaging of dependencies first, since some of neovim's dependencies are either missing or out of date in Debian. A few of them have since been done (unibilium and libtermkey are now in Debian, libuv is updated), but a few are still in progress.

<comment><USER31> I see, thanks.

</comment></comment></comment></comment></comment><comment><USER33> I've been using `nvim` on OS X and Arch Linux for the last few months. I am very pleased with it. Excellent stuff, and the newsletters were a great way of keeping the indiegogo backers informed.

</comment><comment><USER34> Congrats to the team, I'm dying to switch myself but closely watching Windows support since it's unfortunately my primary work platform.

</comment><comment><USER35> Release notes?

<comment><USER30> Check.

</comment></comment><comment><USER36> Neovim doesn't have a desktop version on OSX like Macvim or did I missed something?

<comment><USER37> check out [https://github.com/neovim/neovim/wiki/Related- projects#gui-p...](https://github.com/neovim/neovim/wiki/Related-projects#gui- projects)

<comment><USER36> Thanks, Checked them out. neovim.app is the most starred project but it's a shame they don't release binaries.

</comment></comment></comment><comment><USER38> I tried to install it on Mac, but it fails on building phase.

<comment><USER39> If you use brew, its straightforward. Check this link [https://github.com/neovim/homebrew- neovim/blob/master/README...](https://github.com/neovim/homebrew- neovim/blob/master/README.md)

</comment></comment><comment><USER40> Is vimscript translated to lua or is that still WIP?

<comment><USER22> Still WIP.

</comment></comment><comment><USER29> what is this is this a bad web for

</comment><comment><USER29> 0.1</comment>


350-page Internet market research report from JP Morgan - <AUTHOR> http://www.scribd.com/doc/11482768/JPMorgan-Nothing-but-Net-1509

<comment><USER2> It gets better - here is their forecast for 2008.

[http://www.techcrunch.com/2008/01/02/jpmorgan- predicts-2008-...](http://www.techcrunch.com/2008/01/02/jpmorgan- predicts-2008-will-be-nothing-but-net/)

<comment><USER3> They are so wrong it's not even funny.

They predicted 8% S&P growth and 34% Internet stocks growth for 2008.

<comment><USER4> That's par for the course. See this: <http://www.youtube.com/watch?v=mzJmTCYmo9g>

</comment></comment></comment><comment><USER5> Has anyone here read it? Is it worth the space on my disc if I download it?

<comment><USER6> Yes, I've read until the individual countries analysis.

It's good. Very, very good. It's not always right, of course, and if you refresh multiple times a day hn, reddit and techcrunch you'll know 90% of the text.

And except for a few odd acronyms, it's a light read, with colorful commentary (specially MS attempts to lure users to MSN and the whole cloud section).

I recommend. You may find lots of part that you disagree with, but damn it'll be hard to make your point against this report because it's very, very complete.

A++ Would read it again :)

</comment></comment><comment><USER7> The download button appears to be broken for 32 bit Ubuntu 8.1 systems running Firefox 3.0 with Flash 9.

</comment><comment><USER8> worth a read, i say. good post.</comment>


Social Skydiving with a Code Monkey Day 15: Half Way There - <AUTHOR> http://socialskydivingwithjustin.posterous.com/social-skydiving-day-15-half-way-there

<comment><USER2> Congratulations. Most people wouldn't make it to day 1. And I mean that.

Your 30-day quest has sucked me in with your honesty and commitment...in process of reading from day 1...might take some time.

I really like your statement of how you are comfortable with introversion yet you would like to "add to who I am rather than to try and be someone I'm not"

> Do I think introverted is equivalent to being defective? God no. Knowing how > to be an introvert brings with it a unique set of skills. Being able to be > alone for extended periods and not needing external approval as much as the > next person can be extremely freeing. However, not being sure how to relate > to and talk with people can also be proportionately debilitating. So my > ambition here is really formed of the desire to have more skills and add to > who I am rather than to try and be someone I'm not.

</comment><comment><USER3> I feel really strongly for this guy - clearly he has an awkward social problem (many people do to different degrees).

But I cant help feeling this is completely the wrong way to focus on improving things :( random social interactions is _very_ infrequent to _everyone_. The kind of conversations he has forced in the last 15 days are very artifical. THe people he is talking too probably share all of the awkwardness he is feeling - which he then attributes to himself.

Humans dont interact like that - we build connections through familiarity etc. Where are the real friendships? That is what he needs to look at - they will be MUCH more beneficial IMO.

<comment><AUTHOR> Thanks for your comment... You have a very good point that I'd like to make sure gets addressed. I'm gonna mark this comment so I can circle back around to it by the end of my 30 days.

Just so I can understand the context, are you coming from a similar POV as me or have you been fairly social most of your life? This isn't an attempt to invalidate your comment in any way but just so I can get a feel for what your perspective is based on.

<comment><USER3> Yes from a similar perspective, sort of.

I had few friends at school and when I was dropped into university it was like shell shock! Nothing to talk about.

I was lucky enough to make a couple of good mates and later made a really good friend on my course (at first I was really rude to him - he was being friendly and I had no idea how to respond). Beyond that group of 8 or so people I struggle to interact socially (or used to).

I get the thinking behind this exercise is great: Im just worried your setting a lot by it. I've spent time studying social interaction becuase i find it interesting. Take talking to people on buses - your unlikely to make headway of any sort _all the time_ because people just dont respond to that. The social consensus tells people that if someone talks to them in that situation out of the blue they are either mad or bad! I mentioned familiartiy before: generally people will accept nods, a shared joke or very very minor small talk in the situations your putting yourself in. If they see you in that context a few times in a row they will be happier to open up more because of familiarity (he talkjed to me before, the world didnt end, safe).

I think your 30days thing will be of value as long as your take away is that people are very introvert people generally and your social difficulties are perhaps exacerbated but not unique (aka everyone feels a _bit_ like that). I do feel the most _important_ thing is to make longer term friendships. They will be a lot more beneficial (in my experience)

EDIT: where do you live? Im guessing the US which is the shame otherwise I would happily pop by and say hi in person (meeting someone I had "broken ice" with online really helped me once).

EDIT: to add a bit more - you've done amazingly well to get this far in. congrats! The secret is, Im guessing, that most "normal" (as in socially comfortable) wouldnt have made it this far.

<comment><USER4> "The social consensus tells people that if someone talks to them in that situation out of the blue they are either mad or bad!"

This is what some would call "a limiting belief" and I used to feel this way. Every interaction is between the two people in it and it is a mix of what both people bring to it. There is a lot of communication happening with body language and tonality. I find when I feel clear, confident, and good--others feel this in my presence. By bringing this energy into the interaction (even in a normally non-social situation), comfort/safety is easy to establish, and going further isn't difficult.

Here is another way of thinking about new meetings: "I'm a great person, who wouldn't want to know me?" now when you're meeting people instead of fearing that they'll think you're "mad" or "bad" you can think "I'm doing this person a favor by meeting them". And if you really are a great person then this statement is absolutely true.

Here is why I care enough to write a long comment--when I was doing what the OP is doing, I felt awkward about it and felt like it was a secret, primarily because I was tired of hearing things like what you're saying. I'm glad I managed to avoid these kinds of messages and just push forward.

<comment><USER3> Well Im more talking about situations like, say, at a bus stop.

My comments aren't from personal experience but observation of such conversations. Often the initiator _is_ very charismatic - and usually fails to notice the discomfort of the other person. A bus stop (sticking with this example) is not somewhere you expect to be talked to - so it comes as a surprise; and the majority of people don't recover quick enough from surprise to their "head" to overrule and "gut" reaction (I find this sort of thing fascinating btw).

It's a sub-concious "gut" reaction with it's roots in the "don't talk to strangers" thing we are ingrained with as children.

You make a great point about how one should approach a meeting though (and I wholly agree with it) - in my point I never made a distinction between that and what I was trying to analyse :)

<comment><USER4> Great! We're on the same page now, different sides of experience. It's unfortunate that we were ingrained with that "don't talk to strangers" mentality--I understand the reason for it, but it does hurt us as adults.

The surprise thing is not what causes someone to overrule their gut reaction. Someone once described it to me like this: When two people meet, an invisible exchange of information is initiated. Each person quickly learns about the other person's emotional state before a word is said. Each person then acts in accordance with how they perceive the other person.

Fortunately for us, tweaking this stuff and avoiding negative transmissions is possible. If I cross my arms, I'm communicating that I'm closed off. If I lean in, I'm communicating that I'm more interested than you are, etc.

If you have neutral body language, make sure the person can hear you (i.e. get their attention and do it with authority), and don't look down--you're halfway there.

Learning these body language things and some basic social skills are what it takes to become very charismatic and these are things that can be taught.

A bus stop, subway, bookstore, hostel, and even the grocery store are all places where people can be met. Sure some situations are more comfortable than others and there is no need to try to stack the deck against yourself by meeting people in situations that you're less than comfortable with. But when "learning" it is a big confidence booster to make some of these harder things work and it can work. It really is the social equivalent of sky diving. :)

<comment><USER5> I have found from my experiences trying to force myself out of my comfort zone, that the experience of being approached and spoken to a stranger is MILDLY disorienting and raises certain alarms.

 _However_... it is not nearly as awkward for the receiver as most people think it will be. It is mostly stressful for the initiator.

The main concern from the receiver's side is, what does this person want from me. The golden phrase for me when someone doesn't open smoothly is,

>>"I just saw you sitting there, and you seemed like a really interesting, stylish person."

Or some other statement of interest. That seems to set their minds at ease, because you've "shown your cards" as it were, and aren't about to spring some sales pitch on them.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> _To sum it up, we all speak our own language and every person I talk to I try to treat as though I am trying to figure out how to translate my language into theirs._

It's this realization that's the "line in the sand" for me. If the other person doesn't realize this, this indicates a certain paucity of imagination and lack of curiosity on their part. It is a prerequisite for many forms of intelligent conversation -- namely the forms of intelligent conversation I am the _least_ conversant in. In other words, it's how I can access what is _most_ deserving of my curiosity.</comment>


Paleotronic's 12 Years of Retro-Christmas Year One: 1980 - <AUTHOR> https://paleotronic.com/2018/12/02/paleotronics-12-years-of-christmas-year-one-1980/ <comment><USER2> Me: That's a Sony Fricken Walkman and intellivision!

Son (9 years old): Blank stare wondering how long this 'conversation' will last and he can resume watching game videos on YouTube.

<comment><USER3> I've had more luck with the shock-effect of starting conversations like that with "you know, we didn't have Youtube back then" or similar.

The first time I did, my sons retort was to ask if we had electricity.

</comment></comment><comment><USER4> re: Big Trak: They compare it to a Logo turtle but it was never really as interesting as that. You could program Big Trak, but only with a straight series of commands. No loops or anything interesting like that. Also the damn thing wouldn't turn very accurately, e.g. you ask for 90 degrees, you might well get 120. So good luck getting it to actually go where you want. It did look really cool though.

<comment><USER5> There was a repeat RPT command/button

<comment><USER4> Yep but it could only repeat the previous step, rather than a group of steps, iirc. So difficult to do anything interesting with it.

edit: I stand corrected. The repeat command could be told how many of the previous steps to loop. But it only looped once. I guess 8-year-old me should have read the manual.

[http://www.theoldrobots.com/book30/Bigtrak_Operators.pdf](http://www.theoldrobots.com/book30/Bigtrak_Operators.pdf)

</comment></comment></comment><comment><USER6> I loved my Coleco Electronic Quarterback. It was amazing how just a few moving LEDs could be filled in by the imagination to be a full football game. I had more fun with that than I do with my son's Madden on PS4.

<comment><USER3> Modern football and soccer video games have gotten to the point where to me (as someone not interested in _watching_ either) they feel more like interactive TV than games.

The simple game mechanics of those old games meant you didn't need to care about the subject matter of the game all that much. I even used to play some text based game about managing a football team quite a bit even though I had no interest in football and no interest in the teams back then, because it was a decent resource optimisation game, and the setting was secondary.

I can see how people who _do_ care about the game and the teams can enjoy the modern ones, though, but they're just entirely different categories of games.

</comment></comment><comment><USER7> Wow! I'm drooling. Brings back memories, as at 9, I was the prime age for this stuff.

I bought the Big Track re-issue a few years ago. It is quite nice, but they did not make the trailer option. Also bought the re-issue Mattel football.

I also had an Armatron, and took it apart. All the gears dumped out, learned allot putting it back together.

I did have the Intellivision, and later decked it out with accessories when they were dirt cheap.

Had a Little Professor, but it was yellow. I don't remember the Little Genius.

<comment><USER8> Off topic but in another thread I saw you did some work with SDR. I'm interested in getting started in that area. Can you point to some useful resources to get started in that, and antenna design?

<comment><USER9> Not them but since it's offtopic anyway, here's what I used: [https://www.rtl- sdr.com/](https://www.rtl-sdr.com/) bought the kit off Amazon and was able to set it up on Windows and Linux after following a few instructions.

There's tons of software and projects out there to expand it, and that website has links to a lot of them.

<comment><USER8> Thanks!

</comment></comment></comment></comment><comment><USER10> Heh, I've got an Armatron in its original box in a closet somewhere. It is the second of a pair as I attempted to convert one to computer control. The mechanical artistry inside is pretty amazing, there was no way to directly convert it as far as I could find, you would have to replace all the mechanics. So the second one sat untouched...

<comment><USER11> Yeah, they have only one motor, and a whole transmission system which the joysticks engage. The 8-bit guy has a video, I believe.

</comment></comment><comment><USER12> There's a chart where they compare "videogame systems", but "activision" is on the list. activision was software only, but it's compared to atari vcs, intellivision, odyssey 2 and the fairchild.

</comment><comment><USER13> Bill Cosby on the cover, ah, the good times..</comment>


The Duct Tape Architect - <AUTHOR> http://www.cubeia.com/index.php/blog/archives/140

<comment><USER2> I would choose the SSD every time over a method that requires doing a lot of consulting and engineering of the current system like Sharding.

Why spend a lot of time and work when a simple hardware upgrade will work ?

And you are deluding yourself if you think that the sharding model you are going to implement is not "only buying you time" and you will have to do additional engineering over time if you keep growing.

<comment><USER3> It depends how many SSDs you need. If you have _one_ hard disk that needs to be upgraded to an SSD, do that instead of spending developer time on it. However, if you have _thousands_ of disks that would all need to be upgraded to SSDs to save your 20%, it might be worth looking into software optimization.

Same for manual cleanups and stuff. If you need to fix half a dozen source files, just wince and do it manually. If you need to fix thousands of source files, it's probably time to write a parser & refactoring browser and then use that.

<comment><USER4> > However, if you have thousands of disks that would all

> need to be upgraded to SSDs to save your 20%, it might be

> worth looking into software optimization.

However the margin is still quite high. I've replaced twice big EMC SAN arrays with 8 SSDs, and the performance gain was 300 to 400% (different customers, different applications).

SSDs envelope is usually quite narrow, but if you hit the sweet spot it's such a game changer than it beats everything else.

</comment></comment></comment><comment><USER5> I'm a little disconcerted that in each case it was other people that had to convince the author of the alternative approaches given that the he has been "doing software architectural work for a long time now".

Kudos for acknowledging the benefits of their approaches, but I feel like it's the architect's responsibility to reconize the most cost effective solution for the context at hand. How many problems aren't we hearing about that could have been solved with a new network switch instead received an application rewrite with an SOA architecture?

<comment><USER6> This initially struck me as well. However, it's important to note that this is intentionally a 100% biased sample. By nature it only includes _two_ times he got it wrong. For all we know, the other 998 times he got it right. Drawing any meaningful conclusions is therefore impossible.

</comment></comment><comment><USER7> _"Besides, do you want to be the guy who calls them up and tell them and their families that they are losing their jobs? And for what? Saving a buck after 7 years? We have a choke-full backlog to work on anyway."_

Not saying what they did was wrong but there's still the option of automating those guys' tedious tasks and finding them something more useful to do.

<comment><USER8> I'd laugh if those Indonesian guys had found a way of automating it themselves and spent their time doing something more useful!

<comment><USER9> They automated it by creating a script that pushed job requests to Amazon Mechanical Turk, which were then carried out by other "developers" in China, etc.

<comment><USER10> It would be amusing if the original developers got bored one evening, and decided to spend some time on MT... and saw the very tasks they'd been assigning their off-shore team there.

And then did them.

</comment></comment></comment></comment><comment><USER11> Please, Fredrik Johansson, can you add some more "Duct Tape Architect" stories? It is a brilliant format, of the sensible, logical _everyman_ developer with whom we can all identify, being shown up by those familiar with the intimate details of a specific situation. Love it, it is the universal monomyth of the hero-developer.

</comment><comment><USER12> I don't really understand how adding a scheduler was that much of an effort. Couldn't something based on cron work, the code from the Start button the indonesians use is probably similar to what is necessary for that job. There are certainly a few gotchas I have not thought of. Anyone has an idea?

<comment><AUTHOR> You have not seen their code base my friend. It was vile and nasty ;)

</comment></comment><comment><USER13> Our company has clients that have different scalability needs. Whenever we were faced with a bottleneck on one of our servers, my boss had a saying: "Hardware is always cheaper than software."

I thought he was insane. But It's funny, it was almost always the case. Throwing another server at the problem turned out to be way more cost- effective than having to go back to engineering, spend 40 hours optimizing and another 40 doing regression testing.

<comment><USER14> That works great if your application was designed to scale horizontally, or if there is always a bigger server available.

</comment></comment><comment><USER15> This is a classic effectiveness (as Larry the Cable guy says, Git-R-Done) vs efficiency (Git-R-Done faster/better!) discussion.

Ideally, you want effectiveness and efficiency. If you can't have both, you need to be effective before you are efficient, as both of the author's analogies make clear.

<comment><USER16> I always understood that as:

1\. Make it work

2\. Make it right

3\. Make it fast

Sometimes only getting to 1. is "good enough"

<comment><USER9> yep. because 1A might yield "FU money!". If not, you have to do 2 because it might not come til 2A. Or 3A.

</comment></comment></comment><comment><USER17> Good reminder to line up decisions against hard dollars.

</comment><comment><USER18> This article needs to be refactored.</comment>


The future of payments is here - Dwolla - <AUTHOR> http://www.dwolla.org/blog/dwolla-spots-the-future-of-payments-is-here/ <comment><USER2> Dwolla's founder Ben Milne had an interesting interview on Mixergy yesterday.

<http://mixergy.com/ben-milne-dwolla-interview/></comment>


China Houston consulate: Docs burning after US told it to shut down - <AUTHOR> https://www.businessinsider.com/china-houston-consulate-document-burning-us-told-quickly-close-2020-7 <comment><USER2> While I'm pretty sure China is up to some seriously shady stuff with regards to academic/corporate espionage and such. (What country isn't? Although China seem especially good at it.) This seems kind of normal to destroy documents before vacating an office to prevent breaches of privacy. Our office had a big bin with a lock on it for securely shredding documents.</comment>


North Korea sentences US college student to 15 years' hard labour - <AUTHOR> http://www.theguardian.com/world/2016/mar/16/north-korea-sentences-us-student-to-15-years-hard-labour <comment><USER2> Every action has consequences. You go to someone else's home and mess with their stuff, there are consequences.

15 years hard labor is pretty severe, however.

</comment><comment><USER3> Man, it must really really suck to be the 'idiot' that North Korea uses to try putting pressure on the US.

<comment><USER4> This idiot could turn out to be the Jason Rezaian of the DPRK. That is, the bargaining tool the North will use to join the rest of the world.

I would be amazed if Obama's legacy was restoring diplomatic ties with the last three isolationist states.</comment></comment>


Care about H1B quotas? Call your congressman - <AUTHOR> http://www.contactingthecongress.org/

<comment><AUTHOR> The grass roots tech community has had success in the past shaping legislation. Whatever your thoughts are on H1B quotas, let your elected representatives know.</comment>


Choice Hotels Suffers Data Breach, Exposing 700k Customer Records - <AUTHOR> https://www.securitymagazine.com/articles/90733-choice-hotels-suffers-data-breach-exposing-700000-customer-records <comment><USER2> The article by the OP is slightly vague about the details of the breach. This one goes into more detail: [https://www.comparitech.com/blog/vpn- privacy/choice-hotels-d...](https://www.comparitech.com/blog/vpn- privacy/choice-hotels-data-leak/)

But after reading the details, the whole situation looked nothing more than a straight-forward search on SHODAN.io for exposed DBs. A 'ransom' of $4,000 for 700k users is cheap to Choice Hotels compared to the others I've seen demanding $1M+ for the same number of users.

> The MongoDB database was made publicly available with no password or other > authentication required to access it.

> The database was left exposed for four days.

Classic.

<comment><AUTHOR> Thanks - this is a much better article!

</comment></comment><comment><USER3> Anyone know if there is going to be a class action lawsuit started? I am a victim of this breach as I stayed at choice hotels in the past. My personal information was most likely leaked in this compromise. It is unacceptable that retailers collect our driver's license and personal information when staying at their property and then have the never to store it in their database after the reservation has been completed, especially when the room was inspected by house keeping and noted to have no issues. The personal information should be deleted!

<comment><USER4> 700,000 records from a chain with 7,000 hotels, per the article. How do you know you're a victim of this breach? Assuming each hotel on average probably has occupancy of at least 100 rooms, it could account for just a single day of reservations across their organization.

In short, it seems too early to assume if you've ever stayed at a hotel you are a victim.

<comment><AUTHOR> They sent me an email around 7:15 PM EST today. Lucky for me, that this is still active and monitored. But I don't think I used that (particular) email recently, and I can imagine for some, they won't get the same notification.

</comment></comment></comment><comment><USER5> >Security researcher Bob Diachenko uncovered the exposed database and says the hackers left a ransom note, demanding almost $4,000 in Bitcoin.

Seems like a very inexpensive ransom for so much data.

<comment><USER6> Maybe the thieves have been frozen since 1967 and we will have to thaw out a British sex symbol to find them.

</comment></comment><comment><USER7> You would think the hackers would demand more than 4k in Bitcoin

<comment><USER2> I thought they would too after reading the headline, given it is supposed to be a 'ransom'. Either the $4k is a 'typo', or these guys are being generous to Choice Hotels.

If they are calling this a 'ransom' then they might as well get hired by Choice Hotels instead. As this is the most lousy ransom I have ever seen.

</comment></comment><comment><USER8> Not a comment on the article, but it seems like the GDPR compliance overlay for securitymagazine.com isn't GDPR compliant.

To quote the GDPR at (4)(11):

> 'consent' of the data subject means any freely given, specific, informed and > unambiguous indication of the data subject's wishes by which he or she, by a > statement or by a clear affirmative action, signifies agreement to the > processing of personal data relating to him or her;

and (7)(4):

> When assessing whether consent is freely given, utmost account shall be > taken of whether, inter alia, the performance of a contract, including the > provision of a service, is conditional on consent to the processing of > personal data that is not necessary for the performance of that contract.

If there's an alternative link that sits better with EU law on this, I think it might be better to switch to that instead.</comment>


Leaving the iPhone - <AUTHOR> http://www.mattcutts.com/blog/switch-iphone-to-android/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+mattcutts%2FuJBW+%28Matt+Cutts%3A+Gadgets%2C+Google%2C+and+SEO%29&utm_content=Google+Reader

<comment><USER2> Google employee praises new Google product. Film at 11.

Jeff LaMarche, a prominent iPhone developer and author of a couple iPhone programming books, wrote about this from the opposite side: switching from an iPhone to the Nexus One. I think his take is far more interesting: [http://iphonedevelopment.blogspot.com/2010/02/nexus-one- from...](http://iphonedevelopment.blogspot.com/2010/02/nexus-one-from-iphone- developer.html)

<comment><USER3> i'm having a hard time getting through this guy's review since there is so much bias and incorrect information.

 _One real issue I have with all of the Android phones is the four hardware buttons they all have: back, menu, home, and search. Three of the four shouldn't be there. Coming from Google, I can understand the emphasis on search, but it simply doesn't belong in a hardware button. I don't need to search while I'm playing a game, for example. Likewise, the menu button isn't applicable in all situations, nor is the back button. Of the four, only the home button really needs to be a hardware button, and it's not a coincidence that Apple made that exact design choice._

most android software is designed with these 4 buttons in mind, and i use all 4 of them very frequently. the search button is not restricted to searching the web or anything, and many applications have some implementation of searching within them. the back and menu buttons are required in almost every application since there are no on-screen buttons like most iphone applications have (which look different from app to app).

 _When you hit the home button, the previous application keeps running, which means it keeps eating memory, keeps using processor cycles, and keeps eating battery._

oh, you mean just like every mac os application that, when closed by clicking the "x" button, stays running unless you go through its menu and quit?

 _To truly quit most applications requires a multi-step navigation that is neither intuitive nor well-documented._

many have a quit function in their menu, or just hitting the back button at its main screen usually quits it. i can't speak for every 3rd party application.

 _The ability to have more than one GUI application at a time on a device with such a small screen isn't as important as some make it out to be, since you can't actually interact with more than one a time._

on my mac i usually have to command+tab to work with more than one application at a time. it's no different on android. holding down the home button brings up a list of running applications that looks just like command+tab on a mac, and allows you to quickly jump between two applications. on the iphone, doing that (which would require going to the home screen between each jump) would restart each app every time, losing your context.

 _In the early days, I was a big proponent of having Apple add the ability to run multiple apps to the iPhone OS, but I've come to change my mind on that. I think most people don't need it and Android's implementation only confirms it._

ok, then most won't use it. that's no reason not to implement it. what percentage of iphone owners use copy-and-paste of text, or holding down home and power to take a screenshot?

even if users don't want to keep switching between apps, allowing background functionality is essential for using things like pandora to play music, or a location-tracking application to keep updating your status in the background. even if you just have to switch into an app to look at a phone number, or look at a map, not having to quit those other apps is very useful.

 _The day of my flight home from the U.K., I set alarms on both devices (I'm paranoid bout missing flights). It took me quite literally three to four times as long to configure and enable the alarms on the Nexus One as it did on the iPhone. Add that extra time by the number of tasks you do on your phone in a given day, and it can add up to a considerable amount of time._

and this is surprising why? you're used to how it works on an iphone and aren't used to how it works on android. it would be no different if you were used to windows and switched to a mac. once you get used to the new method, you'll do it quicker than the previous one.

<comment><USER4> _When you hit the home button, the previous application keeps running, which means it keeps eating memory, keeps using processor cycles, and keeps eating battery.....To truly quit most applications requires a multi-step navigation that is neither intuitive nor well-documented._

That one is one of the most pernicious bits of misinformation about the Android platform. Applications that are no longer visible to the user are NOT "background" applications like they are on a desktop OS. Applications that are no longer visible to the user are __stopped __. They no longer consume CPU resources, but the OS _does_ hold them in memory in case the user returns to the app. Stopped applications may be killed by the OS, thereby freeing up the memory used by them, at any time by the OS when it determines it needs resources. Think of it like caching. The app state is cached in memory so that if you switch momentarily to another app (to answer a call for example) you can return immediately to the previous app with minimal delay and minimal resource cost (ie, the app doesn't need to be re-loaded, etc). The Android developer docs have more information: [http://developer.android.com/guide/topics/fundamentals.html#...](http://developer.android.com/guide/topics/fundamentals.html#proclife)

The only things that truly run in the background on Android are service process. These are somewhat like worker threads that are created specifically to handle long running background tasks (like playing music, or downloading data over the network, etc).

There is absolutely __no __need to go through any "multistep navigation" to quit apps, nor do non-visible apps continue "using processor cycles and eating battery" (with the exception of course of apps that are __supposed __to be using processor cycles, ie, music players, etc. running in a background service process).

<comment><USER5> Thanks I was hoping someone would say this. There is a general lack of knowledge about how android handles processes. I've seen it all over the place and commonly from android users who try and get "auto-kill" apps to save power.

</comment></comment></comment></comment><comment><USER6> I am leaving iPhone. Reason: I can write code in Java and load it on my phone without paying money to anybody. I can not afford to pay $100 to Apple every year just to load apps on my phone written by me.

<comment><USER7> It's $100 plus the cost of a mac to write iPhone apps.

<comment><USER8> In my mind there's a big difference between costs caused by things that would be hard for you to do (build _and support_ a reliable cross-compiling Obj-C development environment on Windows) and costs caused by things that are easy for you to not do (SDK charges).

The former I'll overlook even if they are two and a half times as much as the latter. ($500 second hand mac mini every two years vs $100/yr.)

</comment></comment></comment><comment><USER9> Little mention of gaming; how's the Android app market on that front? The iPhone is getting popular DS ports. And they're even significantly cheaper than the originals. I'm not the type that cares to bother with more than one portable device, so the iPhone being a gaming device that is popular with big developers is quite the plus.

</comment><comment><USER10> Pretty much like a Nokia employee raving about the N900. Can you say biased?

</comment><comment><USER11>
      and the iPhone is simpler for a non-tech-savvy person to understand.

These remarks are starting to get me. This is like saying that one foot high hurdle is easier for non athlete to jump over than three-feet high. And it is backwards. One foot hurdle is easier _for the most_ to jump over when three- feet high one may have more demanding requirements on your fitness level.

<comment><USER12> It's a backhanded compliment, or spin. The real meaning of that phrase is, "and the iPhone is simpler to understand." But he doesn't want to say it like that, so he marginalizes the statements potential backers by implying that they're non-tech savvy if the find the iPhone easier to use.

</comment></comment><comment><USER13> _"I should be allowed to run the programs I want on my own computer."_

Except wifi tethering? Contrary to popular memes Google imposes a number of restrictions on the Android Market:

<http://www.android.com/us/developer-content-policy.html>

<comment><USER4> I don't know about wifi tethering, but USB and Bluetooth tethering are both supported by PDANet (<http://www.junefabrics.com/android/index.php>). The iPhone version of PdaNet requires a jailbroken iPhone. The Android version is __in the Android Market __and works directly on any stock, unmodified Android phone.

BTW.. Another difference between the iPhone and Android platforms. If an app is __not __in the iPhone apps store, there is literally no way for a user to install it on a non-jailbroken iPhone. With Android, it only requires checking one checkbox in the Android settings to allow you to install non-market apps on an Android phone. No rooting, jail-breaking, etc. required.

</comment></comment><comment><USER14> _I won't be able to get to 0% sugar ..., but I'm trying to stop eating sugar, ..._

I guess we have to be worried if we don't hear from him any more.

</comment><comment><USER15> I see other people here have raised the issue of what source this is coming from. Let me raise another one.

 _Ultimately though, what matters the most to me is control. I have a simple rule of thumb, which is that I don't put data somewhere that I can't get it back. That's the reason that I didn't buy songs in iTunes, purchase ebooks for the Amazon Kindle, or really log into Facebook at all. It's also the reason that I recently switched my computer from Microsoft Windows to Ubuntu Linux._

Not to make this into an OS flamewar, but is he implying that just because Windows is closed source you do not have control over your data on the Windows platform? That Microsoft prevents you or apps from doing things or prevents you from removing things once you are done?

That seems like a long shot.

</comment><comment><USER16> I hear that the Nexus One has a lack of Python support. You would think it would. Anyone know why this is?

<comment><USER17> Don't know about it, but not sure why there would be lack of Python support. I suppose for standard apps they would have to run on a Java VM, so only Jython would be possible. Don't know about the state of Jython...

I assume if you root the phone, you can also run native apps, so why shouldn't Python work?

<comment><USER18> It works fine. Python (outside of the admittedly limited scripting SDK) is not a first-class API for Android. But it was running on the G1 within weeks of release (as was most of debian, FWIW) and there are certainly no barriers to using it.

But the supported API is Java-based, and that legitimately annoys some people even if it pleases others. Google isn't banning python, certainly, but neither are they pushing it. No different than any other phone, I guess.</comment></comment></comment>


Ask HN: What interesting software did you work on in the past? - <AUTHOR> This comment https://news.ycombinator.com/item?id=12037548 by lisper about his time writing a patch for the software running on an instrument on the Galileo spacecraft makes me wonder how many other interesting stories HN members have.
So, What interesting software did you work on in the past?
I don't care if it is famous or if it made a billion $, just interesting. <comment><USER2> Well, let's see.

Beasties was a pond-life simulation on the Mac, circa 1989. It was a Common Lisp program loosely based on a BASIC and assembly-language program I had written earlier that ran Conway's Life with 4 slightly-different sets of rules in the same world. Each ruleset had a different color for its live cells.

Panels was a simple experimental window system, in Lisp again. There's a theme here. Once I learned Common Lisp a lot of my own projects ended up being written in Lisp, and so did some of the things I did in my day jobs. Panels was built around constraints satisfaction and continuous event recording. I started with this vague desire to be able at any time to ask, "What was I doing at exactly X o'clock?" and have the UI system be able to give me an understandable answer. Another idiosyncratic feature it had was a rule that whenever the user started doing something, you should try to figure out something sensible to do with the input, regardless of what was on the screen --even if it was nothing. That idea went with the continuous event recording. The general idea was that if you really couldn't figure out anything reasonable to do, at least you would have a log of all the recent events, so that if the user's actions started to make some sort of sense you could maybe fit the logged events into it somehow.

Yeah, I know how bizarre this sounds now, but it did some kind of cool things. Like, for example, if you just started dragging the mouse around with nothing on the screen, it would go, "oh, mouse-dragging. Well, let's just capture that in a vector and plop a window around it. If nothing else maybe it'll be a drawing." Or, "oh, keystrokes. I know, let's shove them in a buffer and render them as text in a window."

The whole thing was sort of organized around that kind of ad hoc thinking.

GATE, the Generalized Automated Test Environment was a big honking Lisp program written originally by Matt Maclaurin, with later contributions by Chuck Lins and me. It was a big knowledge-based system written in a frame language called MacFrames (invented by Ruben Kleiman; MacFrames later evolved into SK8). MacFrames was of course written in Macintosh Common Lisp. GATE stored a bunch of descriptions of application software in terms of frames called "features". Each feature was something a user could activate in the application in order to cause some particular effect to happen. GATE would traverse the description of an application and use the feature descriptions to transmit synthesized events to a remote program called the Mole which ran as a system extension on a fleet of Macs of various models. Basically, the GATE machine would pretend to be a user who was exhaustively exercising every window, menu item, and dialog box in a whole raft of applications and spying on the remote Mac's screen, recording very time it saw something it didn't expect.

We used GATE to find and report legions of application compatibility bugs in Mac system releases. Later the event-recording code from panels came back to life in a utility called ShowMe that was supposed to make it easier to create the app descriptions in the knowledgebase.

I worked on Bauhaus. Matt Maclaurin was on that, too. It was the second OS written in Lisp for the Apple Newton. We wrote it after John Sculley ordered the Newton group to scrap the first Lisp OS and do a new one in C++. Larry Tesler told a small group of us to see if we could do anything useful or interesting with Lisp on Newton and we took him at his word. Actually, we probably took it too far. But we wrote an OS for a handheld mobile computer in Lisp in 1992. I regret nothing.

I worked on SK8, Apple ATG's "HyperCard on steroids", also written in Lisp. I didn't create it; that was Ruben Kleiman and Dave Vronay, and later Brian Roddy and Sidney Markowitz and Hernan Epelman and Adam Chipkin and Dave Yost and more folks I am not remembering. I came in late and worked on the object system and SK8Script, the first working version of AppleScript (I didn't create that, either, I just worked on maintaining and extending it).

I worked on Reactivity's crazy network security appliance that sat on a network and spied on all the application-layer traffic looking for violations of network policy. Cisco bought it and turned it into the Cisco ACE line of products. It was an example of a product that was all software but that was sold as a hardware box. It was a crazy ambitious product. I worked on various parts of it--a rules engine, auth interface, message-queue support, other stuff I forget, and then when it started to get close to being an actual product I built the whole documentation suite and the toolchain that delivered it. I remember once Franz asked me if I thought we could use their XML parser and I explained that we already had five XML parsers on the box running in parallel, one of them implemented in hardware.

I worked on a diff tool for C++ and Java that diffed AST nodes instead of text. I knocked that out in a few weeks and cleared a tidy sum for it. I did it so quickly and sold it off so thoroughly that I don't have any of the code anymore and don't really remember how it worked.

I built almost all of an embedded control system for a forensic fingerprint livescanner, including its built-in GUI UI, all in about a month. Then I rebuilt it in about another month. It wasn't all me, but Mercurial claimed I wrote 85% of it. I really liked that job. It was in Lisp again. Lisp makes me happy and productive.

I wrote a 2D game framework built on Cocos2D and then used it to write the first three titles in the LearningTouch FirstWords series of products on iOS. LearningTouch was founded by Clozure Associates, the people who maintain Clozure Common Lisp. They're about the best people I know on several different axes.

I worked for a while on the CRASH-SAFE part of the CLEAN-SLATE computing initiative, Peter Neumann's galactic plan to reinvent computing to actually be somewhat reliable and secure. That was super interesting. I maintained and extended Breeze, an interpreter for a programming language with extremely aggressive security and integrity proofs built into it. It was written in Haskell. I like working in Haskell almost as much as working in Lisp.

I wrote another games framework for iOS that was used to develop a set of proof-of-concept games for a DARPA-funded STEM project meant to create games to educate the general public about what various federal agencies do for a living. I wrote most of that in Objective-C, but the rules engine and game- data compiler were written in Bard, a Lisp that I designed.

I wrote a multiplayer networked game called the Fabric, based on my own science fiction stories and written in Scheme, using the Kawa compiler and the JMonkeyEngine game engine. Per Bothner, Kawa's author, presented a paper about that work at the 2015 JavaOne conference.

Right now I'm working on a social network with some novel features invented by a Xerox PARC researcher. It's written in Lisp again.

<comment><USER2> I occurs to me that I reported the things that were most interesting for me to work on, not necessarily most interesting in any other way. Maybe people would think it's interesting that I wrote the first version of the code in MacOS 9 that gave the QuickTime MoviePlayer the brushed metal look. That was during the period that I above described as a bunch of stuff that wasn't very interesting to me, but the brushed metal thing might be interesting to people who have used QuickTime.

I happened to be in the QuickTime group just then, and my boss said, "Steve has said Let there be brushed metal. Make it happen."

So I scratched my head and remembered that I had had a NeXT machine for several years and there was some piece of NeXT UI that had a brushed metal looking thing in it. Surely Steve must approve of the NeXT brushed metal? So I rummaged around and captured an image of that thing (I don't remember what it was; something to do with WebObjects, maybe?) and looked at the image in Photoshop or Studio 8 or something. I copied out a likely looking chunk of that image of brushed metal and fiddled with it in the graphic editor, changing the size and tweaking individual pixels until I got it to tile without obvious visual repetition.

Then I wrote a little piece of code that blitted that pattern into arbitrary areas and checked it in to the MoviePlayer sources and then MoviePlayer windows had brushed metal. Tom Dowdy made it faster. That was his job. He was QuickTime's make-the-C-code-even-faster guy. He was the nicest guy in the universe, but I can be so unintentionally irritating sometimes that I once provoked him to yell at me. Sorry, Tom.

After that, all of Apple's stuff had brushed metal. I suspect that the Apple brushed metal that you see everywhere now may not be my code. I was working on MoviePlayer for MacOS 9, and the code for Mac OS X was mostly separate.

<comment><USER3> > Steve has said Let there be brushed metal. Make it happen

Wow sounds like the Genesis.

</comment></comment></comment><comment><USER4> In the late 80s I worked on (to the best of my knowledge) the first multiplayer/networked AI-based NPC system for DARPA SIMNET [https://en.wikipedia.org/wiki/SIMNET](https://en.wikipedia.org/wiki/SIMNET). So M-A-N-Y stories!

My most personal one was when we were first installing the system on-site at Fort Knox, in a massive building which housed about 90 4-person M1 tank simulators - all networked. 320 soldiers all participating simultaneously. (I also wrote the networking implementation for the simulators, and also helped integrate the custom image generators, which notably contained the first hardware-based texture mapping). The NPC system had Symbolics Lisp machine front-ends hooked up to a multiprocessor system running up to 256 separate CPUs on lightweight OS.

So we installed and booted up the system in the raised-floor machine room (remember them?), which took a long damned time. We were of course concerned about race conditions and memory leaks (the Butterfly was no less tricky to program than any other shared memory box with lots of CPUS). So we dropped down a company of Ivans (Russian tanks), and figured we'd let it run and go get fed (since we were tired and hungry - we might have been there all night - I cannot recall). When we came back into the building after lunch, lots of soldiers were running around, very pissed off, asking "who shot my tank?" and "will you please reset it?" So, I reset the tanks with the magic keyboard sequence, and retreated to the safety of the magnetic swipe-card-protected machine room to check on the Beast.

And lo and behold, there on the digital map display was the Russian tank company, surrounded by the digital corpses of many manned tank simulators.

The Beast was ALIVE. (I had, arguably mistakenly, initialized Ivan to be weapons-free when emplaced. I had also not known the soldiers would joyride through the vast terrain database during lunch break every day, shooting up everything around - none of which would have shot back before the Beast was delivered.)

It was a very Dr. Frankenstein moment.

<comment><USER5> Figure you are John Morrison mentioned on that page then?

It's impressive how far ahead of mainstream computing the system appeared to be in 1980s. Wonder if there's any technology gap of that magnitude anywhere now: things seem to have levelled out.

<comment><USER4> I must confess to having a more cynical view than that. I dimly recall some quotation (I cannot recall enough of it to Google it successfully) about somebody being naked, covered in dirt, surrounded by flies, and thinking it's normal. I concur that it describes our current state of computing, and that opinion is based upon the contrast between the non-mainstream technology I've been privileged to use and mainstream technology that circumstances have (more or less) forced me to use.

It's 15 years beyond 2001 - where is my HAL-9000? There are thousands of times more computing power in my kids' cell phones [insert obligatory reference to cat pictures here] than the computer I shared with 20 other geeks at MIT. The hardware guys have done their jobs - we software guys (for reasons that are probably worth discussing) have not.

My hobby stuff ("it's a hobby until you get paid") is done in Common Lisp wherever possible.

<comment><USER5> Oddly so is mine, although I only caught the tail end of CL popularity in the 90s.

Being underwhelmed by software is quite common in the trade. Sometimes at the day job I contemplate why my embedded Linux system is able to run at 32 megs of memory and in 8Mb of flash footprint, while the "off the shelf" Linux server box to the side of it eats 600Mb RAM just to idle in one console. It almost feels as we are forced for the lack of depth in systems development to push into the width just to keep the machines busy.

</comment></comment></comment></comment><comment><USER6> I worked for ~3 years at a startup that built chemistry and geology software. We were all computer graphics and image processing folks, so we approached problems from those angles. We had three main products:

\- A hardware/software solution for thin-layer chromatography. This was the product that actually got the company started. Basically we built a chamber with a camera and UV lamp that people could put their TLC plates in and have the software take pictures with and without UV an analyze the results.

\- A point-cloud visualization application for LIDAR data, used by geologists to scan large rock outcrops and study them. By far the most challenging of our projects, since LIDAR data consists of gigabytes of 3D point data and we had to figure out how to enable quick interactive manipulation of the data (rotating, zooming, etc.) without requiring hundreds of gigs of memory to hold it all at once.

\- An image processing application for enhancing electron micrographs of ostracod fossils. It required only a few "hints" (in the form of clicks) from the user to know about important areas in the image, then cropped unimportant parts, enhanced contrast, and whatnot. It also had some tools for layering annotations on top of the enhanced image, taking measurements, plus a few other things.

By far the coolest job I've ever had. Sadly, the company failed. It was founded in a rather business-hostile country in South America, where taxes are absurd and one can't hope to start a company that isn't in an already established market where money can be made right away. I'm fairly positive it would have succeeded had it been in the US.

</comment><comment><USER7> Work:

\- In 1996 a government agency wanted to compress their file transfers because X.25 was very slow and it connected hundreds of branches. The critical part was running the compression program in an IBM mainframe because they didn't have a budget for that (e.g. buying THE C compiler or specific hardware). We first tried implementing it with Rexx but finally ended up implementing a file compression program in Cobol! If I remember well the use of Cobol improved the use of resources vs Rexx.

Just for fun:

\- With a friend, in the late 80s, we removed a keyboard from a Commodore 64C and added it to the Commodore Amiga 500, then implemented a program where two people were able to use the Amiga at the same time in different Windows.

\- After the QNX Floppy Disk Demo [2] we ported Squeak from X to SVGAlib to run it from a 1.44 floppy disk [3].

\- 8 years ago I implemented Cookiepie in Firefox [1] where the use can simultaneously-cookie-sandboxed accounts in different tabs. To my knowledge it was the first implementation of this concept and it was "impossible" to achieve in Firefox because there was no API to link a tab with an HTTP connection. I solved this issue trying to find indirect relationships navigating between the object graph.

[1] [https://www.youtube.com/watch?v=1EBkB-Yp- zM](https://www.youtube.com/watch?v=1EBkB-Yp-zM) and [https://www.youtube.com/watch?v=2Pfg- kJ4nAw](https://www.youtube.com/watch?v=2Pfg-kJ4nAw)

[2] [http://toastytech.com/guis/qnxdemo.html](http://toastytech.com/guis/qnxdemo.html)

[3] [http://swain.webframe.org/squeak/floppy/](http://swain.webframe.org/squeak/floppy/)

</comment><comment><USER8> Analyzing email account to try and predict/find signs of brain disease.

~adsense clone, crawl page, find top keywords, and for each advertiser (which has a catalog of up to 5M products) find best product and display as ad in a widget.

~smart ~ai in a complex game of pong (powerups, multiple balls with different speeds, dynamic net size, special abilites). it was a very complex if-else-if tree, but I was in 7th grade learning by myself with no home internet- connection

<comment><USER6> Did you have any success with the first one? Sounds like a fascinating problem.

<comment><USER8> Nah. The team that hired me kinda gave up too early(it was a side project to them and ~me).

</comment></comment></comment><comment><USER9> Not sure if others find it interesting, but I have done lots of iOS modifications (software for jailbroken iOS device) which is quite a niche thing.

Some examples:

\- Re-implemented Apples "Assistive Touch"

\- Made an app launcher

\- Screenshot cropper-keep on top (Hard to explain in a word but see: [http://cydia.online/package/com.jontelang.snapper2](http://cydia.online/package/com.jontelang.snapper2))

Anyway I find this extremely interesting since I can shape iOS to my exact wants and needs.

</comment><comment><USER10> Some of my most unique projects:

\- One of the original programming department heads of 0 A.D., one of the leading open-source RTS engines. I led the switch to a 3D engine.

\- 2D library for the VESA Video BIOS Extensions (paged "hi-res" graphics), written in X86 assembly straight from the lengthy VBE spec.

\- Haptic simulator software. Simulated the bending forces applied to a carbon nanotube attached to the tip of an Atomic Force Microscope. You could literally feel these forces using a special input device ([http://www.geomagic.com/en/products/phantom- premium-6dof/ove...](http://www.geomagic.com/en/products/phantom- premium-6dof/overview/)).

\- Made a working physical eReader. Was similar to the Kindle but with a power-hungry LED display and USB drive support (team-based senior project). We asked eInk for a free sample, but they wanted us to buy one for hundreds of dollars.

\- FPGA-based graphics accelerator (in VHDL) that rendered 2D and some 3D primitives (team-based for school).

</comment><comment><USER11> Been very lucky to work with great teams on a bunch of stuff as dev and prod manager including: \- distributed simulation platforms -3D/VR authoring tools used by likes of Boeing and Airbus(amongst others) \- Search engine for non- proprietary(ie generic) drugs used by intergovernmental, governmental, NGO and pharma companies \- 3D Minimal invasive surgical training platform (used to train 10,000+ surgeons todate) \- Road Traffic simulations \- Real time autonomous mobile robots \- VR data gloves and a variety of sensors for all sorts of things. A lot of fun stuff.

</comment><comment><USER12> I worked on calibration and test software for fiber optic switches with large (100+) numbers of ports. It certainly didn't make a billion dollars, but it made many millions of dollars for sure. :)

</comment><comment><USER13> For a brief time I worked on a DARPA program to develop platforms for the DoD to plan to conduct and assess cyber warfare in a manner similar to kinetic warfare. It was a really interesting project with very difficult problems to solve.</comment>


Show HN: Simple iOS Online/Offline Switch for Development - <AUTHOR> https://github.com/moritzh/FakeReachability

<comment><USER2> If you have wired connection, you can setup wifi sharing and turn it on and off. This way you can simulate slow connection as well. (Using <http://mschrag.github.com/>)

<comment><AUTHOR> this is interesting. haven't thought about that. thanks!!

</comment></comment><comment><USER3> I appreciate the licensing. It agrees with me.

A sneak preview: </comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>=

                DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
                        Version 2, December 2004

     Copyright (C) 2004 Sam Hocevar <firstname.lastname@example.com>

     Everyone is permitted to copy and distribute verbatim or modified
     copies of this license document, and changing it is allowed as long
     as the name is changed.

                DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
       TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

      0. You just DO WHAT THE FUCK YOU WANT TO.

<comment><AUTHOR> well, i'm afraid it's incompatible with the GPL though :-D

</comment></comment><comment><USER4> I can definitely see this come in handy, nice stuff :)

</comment><comment><USER5> Wasn't there something that could simulate a 3G connection? Or was that not for iOS?

<comment><AUTHOR> there are a few tools that can do that, like the Network Conditioner that comes with the developer tools or something like the Charles Proxy, but the special purpose of this little project is to fake the Reachability Information provided by the Device into completely offline, which is a bit different.

</comment></comment><comment><USER6> Is turning on and off wifi really that big of a pain point?

<comment><AUTHOR> In fact yes. At least for stuff I do I consider it necessary to test almost all eventualities when it comes to online/offline behavior. This makes me have to switch between airplane and online a lot of times, and it is simply a matter of time. So I built this to avoid having to toggle on/off airplane mode all the time.

<comment><USER6> I just use the iOS simulator and switch on and off my Mac's wifi.

<comment><AUTHOR> I'm streaming my music mostly, so that's a no-go for me, but of course a perfect solution if it works for you.</comment></comment></comment></comment>


OpenBSD 6.3 on EdgeRouter Lite simple upgrade method - <AUTHOR> https://an.undulating.space/post/180411-erl-openbsd-upgrade/ <comment><USER2>
      Upgrading section does mention:

        The best solution, whenever possible, is to backup your
        data and reinstall from scratch

I've done remote upgrades of OpenBSD for almost every release over the past 18 years. The exceptions were the handful of times I migrated hardware or co- location facilities, taking the opportunity to install from scratch. Though more recently I've been running several machines so I've probably remotely upgraded at least one installation of every OpenBSD release since circa 2012.

I've never had a problem. The risky part is aging hardware that may not survive the power spikes or internal initialization on reboot.

Full disclosure: except for a few years in the 2000s where I ran Alpha and Sparc64, those were all i386 or amd64 architectures.</comment>


Super "Perigee Moon" to Rise Saturday - <AUTHOR> http://science.nasa.gov/science-news/science-at-nasa/2011/16mar_supermoon/

<comment><USER2> Can I say "Super Perigee Moon Double Rainbow Rolling Bomber Special[1]" without repercussion? Because I really want to...

[1]: <http://www.youtube.com/watch?v=W2BBl7_-4JA>

</comment><comment> hippee-lee If you are near the mountains you can get some epic night turns if you ride or ski. Berthoud Pass anyone?

</comment><comment><USER3> For a minute there I read "super perogie moon" and was really curious as to what that would entail.

<comment><USER4> Cheese on the inside!

</comment></comment><comment><USER5> And it almost certainly won't be the harbinger of any huge natural disaster.

<comment><USER6> More regnibrah, I think.</comment></comment>


Show HN: my echo nest + lastfm + spotify hottt artists site - <AUTHOR> http://hotttnesss.com

<comment><USER2> Very very nicely done :)

Please don't get offended, but the color scheme seems rather jarring. Any chance you can change that? Or give an option to?

Great job!

<comment><AUTHOR> No offense at all, I think I probably did take the "hotttnesss" theme a little too far with the colors...

</comment></comment><comment><USER3> wow, this is awesome.

but please track Spoon :) - or is this algorithmically choosing bands?

i find the roll over for last.fm / spotify exceptionally jarring - how about icons to the right of the spark lines or something?

<comment><AUTHOR> It's all done algorithmically, here's a good blog post about the data: <http://musicmachinery.com/2009/12/09/a-rising-star-or/>

</comment></comment><comment><USER4> Welcome to HN, Reid. I'm a pretty big fan of what you guys are doing over there at echo nest. Any plans to beef up the documentation (i.e. tutorials) in the near future?

<comment><USER5> Hi ABrant - yes, indeed we are looking at extending our docs and tutorials in all sorts of ways. Thanks for asking. -- Paul (email@example.com)</comment></comment>


Ask HN: I'm in the Bay Area, now what? - <AUTHOR>

I just came to the Bay Area (Cupertino to be exact), to meet with some potential clients for my startup.  Things have gone great so far. But I need some advice on where I can run into a more startupy crowd, where I can look into maybe getting some working (coworking) space etc.
I'll be commuting between Florida and here, so where should I look for housing (right now it's the Essex Hotel, which is great but I don't feel in the midst of it all).
Look forward to some advice from fellow HNers who have set up shop here! <comment><USER2> Dojo is a good choice but if you like coffee and want to be surrounded by startup people all day, no better place than Red Rock Coffee in Downtown Mountain View. You're near dozens of startups (including ours) and close to 500 startups, Y Combinator and others.

At night, hang out with the cool kids in downtown Palo Alto. Thursday nights at the Rosewood Hotel gets pretty crowded and you mingle with Sandhill VCs and startup folks in a more ritzy environment. Weekends, make it up to San Francisco, and hang out in the Mission and SOMA.

<comment><AUTHOR> Thanks for the advice, hangin' out at the Red Rock Cafe now and feeling very much at home as I see lots of screens with code on them :)

</comment></comment><comment><USER3> Well Cupertino isn't too far from Hacker Dojo, which might be a good place to start. <http://www.hackerdojo.com/>

<comment><AUTHOR> Cool, I'll definitely make the trip to see the Dojo!

</comment></comment><comment><USER4> You can find interesting meetups in the area on <http://www.meetup.com/>

</comment><comment><USER5> I am in Cupertino if you wanna meet up and network.</comment>


Someone Is Trying The Pets.com Idea Again - <AUTHOR> http://www.businessinsider.com/petflow-startup-2011-1

<comment><USER2> With a couple of a key differences. For one: "PetFlow might not offer insanely low prices, but they're making a profit on each order they ship and are projecting to break even by the end of the year." And also, they don't appear to have a sock puppet.</comment>