Timg – Terminal Image Viewer - <AUTHOR> https://github.com/hzeller/timg <comment><USER2> The terminal web browser w3m can display actual images pixel for pixel in the terminal. Ranger, a terminal file browser, leverages this to do image previews in the term. It's quite cool!

More details, including other methods, are described here:

[https://github.com/ranger/ranger/wiki/image- previews](https://github.com/ranger/ranger/wiki/image-previews)

<comment><USER3> Best i understand you need to use a xterm derived terminal for this to work, because the sub-program used by w3m for this draws over the terminal window to make things happen.

One more thing we can kiss bye bye with Wayland i guess.

<comment><USER4> It's curious how we're prepared to replace X (with people writing tiling WMs and the like that support it) but somehow the move away from xtermy things (and backwards-compatibility-all-the-way-back-to-way-back-when) hasn't really caught on much, at least on the Linux side of things yet. Any exciting work in this area? I'm aware of Black Screen and some other work on the Electron/rewrite-everything-in-JS front (Hyper, I think, is another).

I've been using Alacritty myself for a couple of weeks now. It's not too bad: the htop header bar won't render properly and catting random binary files crashes the terminal pretty quickly, but it's smooth and does everything a good "tmux VM" should do well.

I understand iterm2 on macOS is a significantly improved experience?

<comment><USER3> Could be because as of yet the meat of terminal, the tty, happens in the kernel. And the kernel devs, as last as Torvalds remain in charge, is not as magpie about chasing the latest shinies.

Note however that there exist effort towards moving the tty into user space. And one leading figure in that is currently involved with systemd.

So i suspect it will happen, it is just a question of when...

</comment></comment></comment></comment><comment><USER5> Those using iTerm should try out imgcat: [https://www.iterm2.com/documentation- images.html](https://www.iterm2.com/documentation-images.html)

<comment><USER6> Agreed. There is even a matplotlib backend called itermplot[0] that uses iterm's image display capabilities, which, combined with iterm's tmux integration, makes developing scientific code on remote servers a dream.

[0] [https://github.com/daleroberts/itermplot](https://github.com/daleroberts/itermplot)

<comment><USER5> Looks great! Now if only there was one for Mathematica…

</comment></comment></comment><comment><USER7> TV gives even more interesting results as it uses more unicode 9.0 characters:

[http://www.github.com/daleroberts/tv](http://www.github.com/daleroberts/tv)

<comment><USER8> But unfortunately for Debian 8 users, it is not compatible with the python3-gdal provided in Debian 8 and fails to work with a runtime error.

        Traceback (most recent call last):
          File "./tv", line 82, in <module>
            SAMPLING = {'nearest': gdal.GRIORA_NearestNeighbour,
        AttributeError: 'module' object has no attribute 'GRIORA_NearestNeighbour'

* [https://packages.debian.org/jessie/python3-gdal](https://packages.debian.org/jessie/python3-gdal)

timg built and ran as-is on Debian 8 with the libraries that it needs.

<comment><USER7> Thanks for telling me, it looks like Debian is using GDAL v1...

</comment></comment></comment><comment><USER3> Just reminded myself of another option:

[https://github.com/cacalabs/libcaca](https://github.com/cacalabs/libcaca)

<comment><USER8> The downside of libcaca is that it makes several presumptions that aren't necessarily true outwith the world of IBM PC Colour Graphics Adapter compatibility.

For example, it has a tendency to abuse _boldface black on black_ as a way to get a dark grey colour, making it not work so well on terminals where boldface _really is_ a switch to a boldface font rather than brightening the foreground colour. On such terminals, _black on black_ text is invisible, boldfaced or no.

Sadly, it actually works internally in terms of a 4x16x16x16 ARGB colour system, and could work quite well with 88-colour or 256-colour terminals, and very well with terminals that have 256x256x256 RGB, were it not for the fact that most of the information in the internal colour representation is thrown away by the ncurses and CGA-like layers that are built on top of it.

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

Since we are all posting alternatives, here's another:

[https://github.com/withoutboats/notty](https://github.com/withoutboats/notty)

</comment><comment><USER3> [https://github.com/saitoha/libsixel](https://github.com/saitoha/libsixel)

<comment><USER10> Note that most commonly used terminals don't support sixel graphics (The readme for libsixel has a list of some terminals that do have support), while a lot more terminals support 24-bit colours (all terminals that use a new enough libvte in particular, and some others).

<comment><USER3> Same "problem" as the w3m solution mentioned in the top most comment right now...

</comment></comment></comment><comment><USER10> I have written something similar before here: [https://github.com/FreeFull/termimage](https://github.com/FreeFull/termimage) . My program though is just a simple toy, since it doesn't even consider the size on the terminal, and doesn't play animated gifs. On the other hand, the source code for my image viewer almost completely fits on my screen (if you ignore its use of libraries for terminal handling and image reading).

</comment><comment><USER11> What's the difference with tv[0]?

[0] [https://github.com/daleroberts/tv](https://github.com/daleroberts/tv)

<comment><USER7> Tv pushes the rendering further by using more unicode characters. It also uses GDAL as a backend which allows subsampling of massive images and access to many scientific image formats (GeoTiff, NetCDF, JPEG2000, etc)

<comment><USER8> Some other differences are given at [https://news.ycombinator.com/item?id=13906483](https://news.ycombinator.com/item?id=13906483) .

One problem that all of these programs share is something that you cannot really do much about absent user-supplied information, since it is something that isn't exposed in the abstraction of a POSIX General Terminal Device. It is probably more acute for tv than for the others, albeit that as I have mentioned I couldn't get tv to actually run without error to see what the effect is.

This problem is that there is a baked-in assumption about the glyphs of the characters. This is not the usual concern that glyphs are different shapes in different fonts. That's not really much of a concern for box drawing and block graphic characters.

The baked-in assumption is that _glyphs are rectangular, with a 1:2 aspect ratio_. This is the assumption that underpins the idea that U+2580 is two square pixels, one atop the other.

But this is not true even for 9x15 fonts, which yield a slight distortion with all of these programs, let alone for yet squarer fonts. Barack Obama looks _very odd indeed_ when U+2580 is actually a 16x16 or 32x32 square, as it sometimes is. ([http://fileformat.info/info/unicode/char/2580/fontsupport.ht...](http://fileformat.info/info/unicode/char/2580/fontsupport.htm) shows several square appearances, and it is square in one of the fonts that I use here.)

tv, with the way that it already works, is probably best placed to incorporate user-supplied information about the font's character cell aspect ratio. pxl could probably be extended fairly simply, too. The others including timg, I suspect would be harder.

Interestingly, M. Zeller has had an open issue about this for timg since 2016.

* [https://github.com/hzeller/timg/issues/4](https://github.com/hzeller/timg/issues/4)

</comment></comment></comment><comment><USER12> 2 npm modules I've relied on in the past for this: [https://github.com/substack/picture- tube](https://github.com/substack/picture-tube) and [https://github.com/switer/imaging](https://github.com/switer/imaging)

</comment><comment><USER13> Some time ago a Rust version of these kind of programmes was presented here:

[https://github.com/nabijaczleweli/termimage](https://github.com/nabijaczleweli/termimage)

A useful additional script: #!/bin/bash for i in `find $@` ; do termimage --size 150x33 $i ; done

</comment><comment><USER14> Currently using pixterm which works on any ANSI terminal. [https://github.com/eliukblau/pixterm](https://github.com/eliukblau/pixterm)

<comment><USER8> No, it does not. Like timg here, it only works on terminals that have 256x256x256 RGB colour, for which it hardwires the control sequences; and this is explained up-front in its doco.

An "ANSI" terminal need only support ECMA-48, which has 8 colours; as can be seen from the terminfo entry for the "ansi" terminal type. "true colour" is ISO/IEC 8613-6.

* [http://unix.stackexchange.com/a/289871/5132](http://unix.stackexchange.com/a/289871/5132)

</comment></comment><comment><USER15> For emacs users, you can get a similar thing with iimage-mode and eshell. Kind of cool to have "$ cat SomeImage.png" do what I would expect and put it in the terminal.

</comment><comment><USER16> Does this or any of the mentioned alternatives work over ssh ?

<comment><USER8> There is no real reason that any of them would not, SSH not involving decoding and then reëncoding terminal control sequences. The more relevant concerns would be whether they worked with tmux, screen, and mosh, which _do_ involve that; and whether the terminal emulator on the local end of one's SSH connection supports 256x256x256 RGB colour control sequences.

That said, one of the issues on timg's issues list deals in the sheer amount of superfluous data that are generated and that that thus have to be transmitted across an SSH connection or a serial device. There is no optimization of the colour change control sequences at all. pixterm similarly does zero optimization, but no-one has pointed that out yet.

* [https://github.com/hzeller/timg/issues/13](https://github.com/hzeller/timg/issues/13)

pxl, mentioned elsewhere on this page, _does_ optimize colour control sequences and indeed uses an ncurses-style double-buffer mechanism to optimize re-drawing.

</comment></comment><comment><USER17> FYI: "catimg" is available as a Fedora rpm.

</comment><comment><USER18> pxl is another nice option

[https://github.com/ichinaski/pxl](https://github.com/ichinaski/pxl)

<comment><USER8> It makes an interesting comparison to the others mentioned here. timg and pixterm both hard-wire the ISO/IEC 8613-6 control sequences for 256x256x256 RGB colour. Neither of them, as I have already mentioned elsewhere, optimize their output at all.

pxl employs a far more complete third party library for its terminal rendering, named termbox. This has ncurses-style double-buffering for no-op redraw suppression and redundant colour control sequence optimization. It does not optimize as far as BSD SCREEN did in the 1980s, which made use of several more tricks to reduce the need for emitting lengthy cursor motion control sequences (such as carriage return, line feed, and the various relative-motion control sequences; and _not_ optimizing away writing a character if it is shorter to just re-output the next cell position than to move the cursor).

The downside of termbox is that whilst it supports 8-colour and 256-colour terminal types, and reads the TERM environment variable and terminfo entry to determine colour capability, it does not support 256x256x256 RGB colour and hardwires the 8-colour and 256-colour control sequences to ECMA-48 and ISO 8613-6 indexed colour control sequences rather than employing the appropriate terminfo fields, even though it reads the terminfo database.

timg, pxl, and pixterm also only display 2 pixels per character cell, because they all use the same single Unicode character for rendering (making termbox, with all of its worrying about character widths and replacement characters, overkill to an extent). As mentioned by its author on this page, tv uses a whole bunch of the box drawing and block graphic Unicode characters for increasing the number of pixels per character cell.

But whilst tv does both 256-colour and 256x256x256 RGB colour, it does not do 8-colour or greyscale like pxl does, and it completely ignores the terminfo database and the TERM environment variable.

</comment></comment><comment><USER19> gpicview anyone?</comment>


BI's Next Frontier: Marketing - <AUTHOR> http://www.dataversity.net/bis-next-frontier-marketing/

<comment><USER2> It could also be BI's First Frontier. Check out this (dated) history. [http://www.scholarosity.net/documents/dw_family_tree.pdf](http://www.scholarosity.net/documents/dw_family_tree.pdf) P&G and Unilever were very early adopters of Data Analytics. For a long time P&G and Wal-mart were the largest customers of Teradata. Life and business are circles.</comment>


KDE 2 Screenshots (2000-2002) - <AUTHOR> http://www.digibarn.com/collections/screenshots/KDE%202-x/ <comment><USER2> Is it wrong that I really like the look of some of these? Some are garish, sure, but others like [http://www.digibarn.com/collections/screenshots/KDE%202-x/kd...](http://www.digibarn.com/collections/screenshots/KDE%202-x/kde2b3_6.jpg) and [http://www.digibarn.com/collections/screenshots/KDE%202-x/kd...](http://www.digibarn.com/collections/screenshots/KDE%202-x/kde2final_4.jpg) have a professional feel that is missing in modern desktop environments. Even [http://www.digibarn.com/collections/screenshots/KDE%202-x/kd...](http://www.digibarn.com/collections/screenshots/KDE%202-x/kde_jp_3.jpg) has a certain appeal to it. I miss the days when UI toolkits drew everything as grey boxes with a 3D edge. I miss Windows 9x/2000 and Mac OS 8/9 too.

I think one of the best things about early 2000-era desktop environments was that it was hard for programs to look out-of-place. In a modern desktop environment, you can easily tell the difference between programs written with different toolkits, like GTK+ and Qt. Even though each toolkit can imitate the other (there's a Adwaita theme for Qt and a Breeze theme for GTK3,) due to the complexity of modern UI themes, it's impossible to get things right and the lack of drop-shadows or animations or hover effects will leave some programs looking sub-standard. On the other hand, every developer can draw a 3D-bevelled grey box. Both GTK+ and Qt apps were made of grey boxes and they both represented each kind of widget in a pretty similar way.

<comment><USER3> People cared about consistent look and feel back then, everyone was hating on java because it got it wrong. Now everything seems to have it's own style and behavior.

<comment><USER2> True that. Of the three programs I can see on my desktop right now (Chrome, WebStorm and Outlook,) none of them are even remotely trying to look consistent with the rest of the operating system. On the other hand, Office 2000 looks right at home on Windows 2000. Even though some controls were technically non-native, they still fit in because the 3D bevel was universal.

<comment><USER4> I secretly enjoy the ridicule I get from other web developers for refusing to use Chrome (except for late stage cross browser testing) because it does not even try to fit in.

</comment></comment></comment></comment><comment><USER5> Ah back in the early 2000s life was exciting on the Linux desktop with weird and unconventional artistic window decorators that would make plants twine around your borders or have short beOS-style tabs or put the close buttons bottom right and so on! Customizing the desktop was a major time-sink for the students at my collage. :D

In fact, by comparison with how I recall Linux desktops in 2000, these KDE 2 screenshots seem to be ushering in a new era of boring conforming window decorators :(

Where have all the crazy interesting rebelling different decorators gone? I did a quick flick through gnome-look.org and found nothing very different.. :(

<comment><USER6> Gnome and KDE have both embraced flat designs but the Enlightenment community seems to still do some rather "original" decorations [1]. They do look rather retro these days though.

[https://exchange.enlightenment.org/themeGroup/show/24](https://exchange.enlightenment.org/themeGroup/show/24)

<comment><USER3> Is enlightenment still active and still the most hackable?

<comment><USER7> It's under active development, yes. It has seen a major rewrite of a lot of foundation libraries after 0.16.

The artwork is not of the same quality, I guess, probably because a lot of artists have moved on, but it's a very solid environment, and the libraries that have been developed as part of the project are great. They're used in Tizen: [https://www.tizen.org/events/presentations/tizen-native- disp...](https://www.tizen.org/events/presentations/tizen-native-display- layer-efl-architecture-and-usage) ; Carsten Haitzler (rasterman) has been working at Samsung for a few years now.

(Or at least he had been working for a few years when I read the presentation; I think he still does, but I'm not sure)

<comment><USER8> For a guy that has in the past railed against the Red Hat/Gnome people, Rasterman seems to have become very corporate in recent years...

</comment></comment></comment></comment></comment><comment><USER9> Forget glossy - fuzzy is the next big thing! [http://1.bp.blogspot.com/_UqUwVPikChs/SebDLPegtvI/AAAAAAAAI0...](http://1.bp.blogspot.com/_UqUwVPikChs/SebDLPegtvI/AAAAAAAAI0Y/lkjpL- jpQbs/s1600-h/fluppy-bunny.jpg)

</comment><comment><USER10> What a nightmare that world was. Totally customizable everything, unreasonable defaults, window managers swapped out with widget sets and competing graphics libraries.

I cant remember a better reason to have gotten super good at the command line.

<comment><USER11> > Totally customizable everything, unreasonable defaults

Well, if you remove the latter the former actually becomes a positive thing.

<comment><USER12> Or you could go the GNOME route and do the reverse.

</comment></comment></comment><comment><USER13> I really liked KDE up to version 3. KDE 4 seemed like a big departure from version 3 and focused too much on the shell and libraries and not a lot on the applications themselves.

I think the legacy of KDE is the open sourcing of Qt and the creation of the KHTML that then was forked to create WebKit.

<comment><USER14> have you try KDE 4 recently? There is a lot of hate around KDE 4 thanks to the initial versions, but actually is the best DE for GNU/Linux

<comment><USER15> At some point (after years!) it became OK and I went back to it, but it was never as good as KDE 3.5 was for me. I realized it was not just nostalgia, when a friend showed me a laptop with KDE 3.5 and used it for some minutes.

While the whole DE got worse, there's two pieces that got better and better, Kate and KWin.

<comment><USER3> And desktop applets. KDE 4 is the only environment I ever used where these were stable and reliable.

<comment><USER15> > stable and reliable

They were not, for a few years.

<comment><USER3> They were for me, even on 4.0. Nothing else worked, but the plasma widgets did.

</comment></comment></comment></comment></comment></comment><comment><USER16> I still think KDE 3.5 was awesome and we really didn't need KDE 4.

<comment><USER17> This. I switched to Gnome 2 as soon as Mandriva switched to KDE4, and then ran the last version of Ubuntu with Gnome 2 until I had to upgrade.

Those were the days.

<comment><USER18> I remember doing the same thing. I loved KDE until KDE 4. Then I used Ubuntu with Gnome 2 for a while and really liked it, but then Ubuntu decided to switch to Unity which I found to be pure rubbish. About that time, Gnome decided to go against all reason and foisted Gnome 3 abomination on us ... so I checked out KDE 4 again and they'd fixed most of the bugs and made it reasonable again :-)

And through all the migrations, I still liked KDE 3.5 the best.

</comment></comment></comment><comment><USER19> Not much different from my current Xfce desktop. We now have antialiased fonts and window shadows provided by compositing WMs though.

</comment><comment><USER20> I look at these screenshots and think to myself, this desktop is feature complete, or awfully close to it. What have we been doing since then? That's a little facetious of course, and we've made desktops more usable in countless ways since then. But still, back in 2000, KDE2 was a perfectly usable desktop that would have enabled me to do my work.

Maybe it's nostalgia though: I first came to Linux in 2001 (SuSE Linux 7.1) on KDE2, Gnome1, Windowmaker, and Blackbox, and I've had fun ever since then. Yes you could make it garish or ungainly, but the very fact that you could customize it any way you want was an instantaneous appeal for me. Sadly, in chasing mainstream users we've gone the route of homogeneity. So now we've got gorgeous, modern desktops like Mint Cinnamon, which is in my opinion every bit as gorgeous as Mac OSX - maybe even more so! But it was Linux's ability to change its GUI interface totally that instantly drew me in. That appeal drives me away from some GUIs to this day, as should be obvious.

</comment><comment><USER21> Nice to see this. Some of these, including this one[1] are from my desktop. I miss KDE now I'm on Windows all the time.

[1] [http://www.digibarn.com/collections/screenshots/KDE%202-x/kd...](http://www.digibarn.com/collections/screenshots/KDE%202-x/kde2b3_5.jpg)

<comment><USER21> I've realised what I really miss: Being able to change my own desktop, including its entire behaviour, was incredible. I first found this enjoyment when running TkDesk[1]

[1] [http://tkdesk.sourceforge.net/](http://tkdesk.sourceforge.net/)

</comment></comment><comment><USER22> This is what I imagine it feels like looking at photos of yourself with a perm or a leisure suit. The washed out colors. The complete obliviousness to how embarrassing it was. The sheer joy of experiencing it at the time. The quiet nostalgia.

Edit: the pride, because it was so much better than what came before. At least you felt like it was.

Edit 2: seriously, the nostalgia. I miss jamming whatever nonsense together on that poor Debian install I had on whatever weird box of discarded parts where I kind of started learning to loonix. And I miss the infinite configurability of KDE, even though everything I came up with felt like hammer pants.

</comment><comment><USER3> How long do we think until colorful and glossy icons are in again?

<comment><USER9> at least until after all the designers who remember from a decade ago it have retired or died

</comment></comment><comment><USER23> I remember it well. I was a heavy KDE user through most of the aughts until I got an iBook. It was awesome. Very tweakable. Thoughtful apps, if a little instable in a few places.

It's still bewilders me how KDE turned into... this Plasma thing. Did the entire team behind KDE just walk out at some point?

<comment><USER24> For what it's worth, I think the current KDE Plasma is quite evenly competing for the nicest desktop environment around (including the proprietary ones in functionality and looks -- polish is behind due to obvious mismatch in development manpower).

<comment><USER25> The whole "desktop widget / workspace" thing in KDE4 was a complete waste of time, like the "tabletization" that followed. It felt like they were chasing fashion, cranking out slow and half-broken me-too implementations of very debatable concepts. That's when they lost any hope of ever challenging in the mainstream market.

They're also cursed by the typical open-source churn, where they replace battle-tested programs with unstable "new shiny" just because nobody wants to maintain old code.

</comment></comment></comment><comment><USER26> Great times! I remember Red Hat Linux 7.2 (Not RHEL-7.2) with KDE installed circa 2001.

</comment><comment><USER27> Brings me back to my days of studying. I remember KDE as making a huge impression on me, it struck me as having such high quality and feature rich applications. Coming from Windows and things like Notepad, seeing KWrite and stuff. Jaw dropping.

Coming to think of it, it wasn't just that. It was also that the application devs seemed to _intentionally_ seek a balance between features and remaining straightforward and simple. That gave off an aura of quality in my opinion.

</comment><comment><USER28> Oh man. I remember trolling Linux forums back then about how shitty the Linux desktop was compared to BeOS. Surprisingly still true.

</comment><comment><USER29> I feel so old. I remember KDE beta, before 1.0. At the time, a graphical file manager under Linux was revolutionary. [https://en.m.wikipedia.org/wiki/K_Desktop_Environment_1](https://en.m.wikipedia.org/wiki/K_Desktop_Environment_1)

</comment><comment><USER30> I've been happy with i3wm for quite a while now, a good balance of power user features and ease of use.

</comment><comment><USER31> I never was a big user of KDE, because it was considered non-free back then and it wasn't included in Debian, but I have to admit it looked good — better than Gnome. GTK version 1 was so awful looking!

</comment><comment><USER32> I prefer KDE 2.0 style.</comment>


A Primer on Hybrid Apps for iOS - <AUTHOR> http://www.cocoacontrols.com/posts/a-primer-on-hybrid-apps-for-ios <comment><USER3> The problem with people complaining that hybrid iOS apps don't "feel right" is that the defining characteristic of a well-made hybrid app is that you don't notice it's a hybrid app, meaning the only apps people tend to consciously associate with being 'hybrid apps' are the mediocre ones.

For every web-based iOS app that's clunky and slow like Facebook, there's another one like Quora or OKCupid or even the iOS App Store that is almost indistinguishable from a native app, save for a few minor telltale giveaways (one of the most common ones is showing a loading icon while you load in an entire view instead of rendering a view's components piecemeal as they're ready).

The problem is that many developers who go with a hybrid app solution do so because they think it'll be easier or quicker than an all-native app, especially if they need multiplatform support. Doing a hybrid app correctly can in many cases require much more work than simply doing a native app, both technically (there are a lot of very tricky caching issues, since UIWebViews don't properly handle cache manifests) and design-wise in terms of nailing the behavior and feel of a native app. Hybrid apps are neither a complete usability disaster nor a silver bullet that gives you a 'write once, run anywhere' utopia.

<comment><USER4> I don't know about Quora and OKCupid, but the iOS App Store is a terrible app ! Scrolling sometimes hides the whole table view, the sign out button are not responsive, and don't even try to open past purchases if you have a lot.

I agree with you on the last part though. I'd recommend native app with a good design that makes it flexible via server changes. For big changes, the app store updates is usually just a one week process anyway

<comment><USER5> For those of us who code in web-land, a delay of one hour would be appalling, let alone an entire week. (And of course even then, it relies on user action, and so will never be 100%.)

<comment><USER6> One hour is appalling? Are your users that dependent on running the latest version of your app, or is it a concern about fixing show-stopping bugs in reasonable time?

<comment><USER7> I'm sure he just means that on the web, the turnaround from bug to bugfix to patched instance is near instantaneous.

Step 1, Notice bug

Step 2, Fix bug

Step 3, Deploy bugfix

The steps between 1 and 2 could obviously take a variable amount of time, but Step 3 is 'near instantaneous' on the web. The thought of having to relinquish deployment to somebody else, and that somebody else possibly taking a week to just _alert_ users that there IS a bug fix, much less the time it takes for those users to see and apply the fix, that's a relative eternity.

<comment><USER6> True, but surely you can retain the ability to alert or otherwise communicate these things to your users without putting any of the main GUI in a web view? Minor bugs require only a little communication and major show-stoppers can be avoided with care.

Maybe I'm a little biased on this, but I hate that a web app I might be relying on can change completely (both in GUI and functionality) without my consent or involvement; at least with app updates I can get some warning and release notes -- a chance to extract my data before taking the plunge... but I guess I'm getting a bit off-topic.

<comment><USER7> As an 'app owner', it perhaps benefits you to possess the ability to preserve what you've paid for. In some cases, I'm sure this actually is a benefit, as in the times updates are negative, or take away functionality or change the way they do things. In most cases though, it just means that you aren't up to date with what is current, which may or may not be a bad thing.

It _is_ offtopic, but still interesting. One supposes that is the reason why apps cost a set amount of money (usually) while web apps are usually a subscription model. That is of course questionable when the app uses web views to your server, as those customers always cost you money so long as they're using the app vs. standalone apps (like games and the like) where you truly are making a one-time purchase.

<comment><USER5> Strictly speaking, none of us "own" the majority of the software we pay for. We license it, and we are entirely at the mercy at the vendor's terms, with the only recourse being not buying it in the first place.

It's yet another area where the nature of software and the networked world breaks our object-oriented intuitions in ways we're still trying to resolve in the social contract.

<comment><USER7> I get the implication, and while that wasn't the point I was making, the purchase of a self-contained app from the app store is _essentially_ the same thing as owning the app.

You've exchanged money for a good, and as the app owner there aren't any readily available means of getting the good back from the owner should you disapprove of how they're using it, just like it would be with a tangible good. Obviously copyright still stays in effect so their ability to copy, resell, yadda yadda are still restricted, but otherwise it's theirs.

That said, in this day and age, fewer and fewer apps are completely self- contained, and/or work without being plugged in to something, so it's effectively a moot point.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> I'm of the view that in general, it's better to code directly to the iOS APIs rather than trying to implement everything in a UIWebView. Having said that, I've just spent a substantial amount of time developing a word processing application (UX Write), which uses a UIWebView for all document layout, and a large amount of "backend" code in javascript for performing editing operations. All the UI code however is written in Objective C and the Cocoa Touch APIs.

The advantage of using native controls it it provides a much greater integration with the rest of the operating system, and makes it easier to make your app work in the same manner as other apps. For example, there are many features of iOS that are not exposed through javascript APIs, and for that you have no option but to use native code. Nonetheless, I like what Microsoft is doing with providing javascript APIs for metro development, and though I haven't tried it myself, it looks like a good approach.

There are a number of serious problems with the current UIWebView which are also holding it back as development tool:

\- You have very limited control over touch events. In my case, I completely disabled all default event handling on the web view, and implemented my own touch event handlers in Objective C, which pass the events through to javascript.

\- Selection is broken. You can access the selection, but not modify it. I spent several weeks completely reimplementing the selection & cursor mechanism because of this. One positive outcome though was it gives me much more fine- grained control over user interaction issues.

\- contentEditable is also broken. I spent probably 3-4 months reimplementing this functionality myself in javascript to make it usable

\- Interfacing between Objective C and Javascript is tricky. Going from ObjC -> JS is fast, but going in the other direction using the technique from the article is painfully slow. There a ways to work around this but it's inelegant and doesn't allow return values from callback functions.

\- Lack of Nitro support, as discussed elsewhere. It turns out that for my particular needs performance is quite acceptable, but for more compute- intensive apps like games it's a must. I can understand Apple's desire to prevent W+X permission on memory, but this could be solved by running JS code in a separate process and communicating with the host process via shared memory.

Apple have done some amazing things with WebKit, but the iOS port leaves a lot to be desired. I would really like to see them improve these apps so people can better integrate web content & backend functionality. But I still think you should be using Cocoa Touch for your UI.

<comment><USER9> I Think the only good reason to do a hybrid app is crossplatform portability, if you don't have the resources to do multiple native apps.

<comment><USER5> There is also the advantage of instant deployment, and always being up-to- date. I don't think hybrid is the best fit for all apps, or even most, but it can work well and create a good experience for certains types of apps.

But as other commenters have noted, it should never be seen as a "time-saver" for anything beyond trivial functionality; the little quirks of each browser runtime must be paid their due, with the user experience and performance in mind.

</comment></comment></comment><comment><USER10> This the best article or post on Hybrid apps I have seen in a long while.

My one complaint is that he doesn't seem to acknowledge the possibility of a "minimal Objective-C" app (i.e. mostly HTML-based) that is tailored to iOS _and_ uses in-app storage for most of the UI elements. We need more discussion on methods to make the mostly-HTML approach to work better. The post is a great start.

</comment><comment><USER11> Whenever hybrid apps comes up, I never hear mention of Instagram. I can't find any specific details on their app stack, but as this screenshot (<http://i.imgur.com/p00E2.png>) shows, they are definitely using web views for parts of their UI (timeline view).

<comment><USER12> The timeline/feed is not a WebView from what I can see. The news part/tab is though (which is displayed in the screenshot).

</comment></comment><comment><USER13> Why do they link to a javascript benchmark that only features differences between ios safari versions? Javascript had terribly performance in ios 4 - <USER2> they did basically anything it would be much faster. Android's chrome has a much faster javascript engine.

<comment><AUTHOR> Hit me up with a link to a better benchmark and I'll happily include it.

</comment></comment><comment><USER14> Another example of a hybrid app is the iOS (and Mac) App Store. A significant amount of the views are basically HTML.

By far, the biggest improvement one can do is to get rid of the 300ms or so delay on a UIWebView

<comment><USER8> Incidentally, the 300ms delay is not to prevent accidental touches, it's so the system can detect the difference between a double tap and a single tap. If you don't make a second tap within 300ms, it goes and fires the single tap event. But it can't do that until it knows for certain that it's not simply the first tap in a double-tap sequence.

The solution to this, if you're not using double-taps, is to respond to the event when it enters the initial phase (then the finger is pressed), rather than when it's released. I'm not sure if you can do this through javascript, but I know it's possible in Objective C by either overriding – touchesBegan:withEvent:, or implementing your own gesture recogniser.

<comment><USER15> What you need to do is use a 'touchUpInside' event, there are a couple wwdc preso's that cover it. Basically you compare coords of a touchend event to the coords of the target. Touchend events fire instantly so you dont have to worry about the 300ms click delay. Dug this out of some old code, wont work out of the box but you get the gist. <https://gist.github.com/3067704></comment></comment></comment>


The sheer stupidity of artificial intelligence - <AUTHOR> http://www.spectator.co.uk/features/9252311/the-sheer-stupidity-of-artificial-intelligence/?utm_source=Adestra&utm_medium=email&utm_campaign=WEDNESDAY%20PREVIEW%20NEWSLETTER

<comment><USER3> So the argument is, machine intelligence isn't going to happen, but its bad that we're trying?

But this idea: "In short, we can make the Singularity more likely by stupefying ourselves into becoming machines instead of simply seeing machines for what they are — useful tools." is interesting. PBS Idea Channel just released a video that I think is related: [https://www.youtube.com/watch?v=FLieeAUQWMs](https://www.youtube.com/watch?v=FLieeAUQWMs)

What I think both the author of this post and the Idea channel video have in common is that they both are thinking of humans (or animals for that matter) as something different from a computer - but what are we but the excitation and suppression of electrical signals? Does the fact that we were grown instead of constructed make a difference?

In reality, we are just a very complicated machine - once you learn enough about how we work you could build your own. And the singularity, specifically the melding of mind and machine is a logical path along that road. Are there real concerns that we need to be thinking about? Sure. Will the 2045 timeframe be accurate? Who knows. But I think we are going to start seeing the lines blurred more and more as we approach that timeframe.

</comment><comment><USER4> Let's replace "believe in machine" in 2014 with "believe in flying to the Moon" in 1961. Imagine how ridiculous flying to the Moon was to some individuals then. Imagine how they could write quite similar articles. Now, after men landed and returned and dust settled decades ago - how we're looking to those possible articles?

May be they had some merit - may be, because it's hard to forecast what's going to happen. Who knows - may be we have a chance to cure cancer in three years, if we only look to the right place today, but we won't and the progress will takes much longer. Who knows - it may very well be possible that Kurzwell predictions won't come true. But that's besides the point. We don't know - <USER2> the article is written with suggestion that we actually won't, so the author does know that it won't happen. Just because the matter is so strange to him.

That's an unreliable ground to build forecasts on.

</comment><comment><USER5> A lot of name-calling and false equivalencies with nothing to support claims aside from a conversation with Andrew Blake.</comment>


Crash JavaScript and more - <AUTHOR> http://boards.4chan.org/g/thread/64371898 <comment><USER2> You're just adding an element to an array infinitely. Of course it'll crash because you'll run out of memory to support the array.

How is this a bug? What's the expected behavior?

<comment><USER3> Personally I'd want something more graceful like halting JS execution on the page and some sort of message...

When I was a teen I rudely tricked a friend to load an infinite alert() page, forcing them to kill their browser and lose some state. These days browsers don't let alerts block switching tabs or closing the offending tab, and with too frequent alerts you can check a box to block any more. It's better.

<comment><USER4> Chrome doesn't crash, it gives you an error page with the message "Google chrome ran out of memory while trying to display this web page"

IE11 just gives an OOM error in the console.

</comment></comment></comment><comment><USER5> The code in question (had to wget from the github referenced below - I'd rather not visit the domain OP posted at work):

<!DOCTYPE html><meta charset="utf-8">

</comment><comment><AUTHOR> Some details and screenshots: [https://github.com/dailyprog/dailyprog.github.io/blob/master...](https://github.com/dailyprog/dailyprog.github.io/blob/master/readme.md)

</comment><comment><USER6> This link will be a 404 at any given time in the future...

<comment><USER7> Yeah much like the Apple ones. I have a copy of the code though. But seriously do not play with it....</comment></comment>


Extreme regex foo: what you need to know to become a regular expression pro - <AUTHOR> http://immike.net/blog/2007/06/21/extreme-regex-foo-what-you-need-to-know-to-become-a-regular-expression-pro/ <comment><USER2> _you should be able to construct basic regular expressions to match things like email addresses_

Actually, writing a _correct_ (per RFC) regex to recognize email addresses is far from simple.

<comment><USER3> You can say that again. Here's a Perl Regex to validate according to RFC 822: <http://ex-parrot.com/~pdw/Mail-RFC822-Address.html>. It's well over a page long.

The problem is that email validation is really better suited to being done by a push-down automata (rather than a finite state machine, which is what true regexes are). For better or for worse, perl regular expressions aren't strictly finite state machines though - so you can kind of extend them beyond what is sane.

P.S. Here's a ridiculously cool regex that can be used to determine if a number is prime: /^1?$|^(11+?)\1+$/

If you've got a few hours (a few seconds for cperciva ;-)) to waste, try and figure it out :-D

<comment><AUTHOR> I'm not sure how this ( /^1?$|^(11+?)\1+$/ ) would match 3, 5, 7, etc... I'm no regex expert, maybe I'm missing something?

<comment><USER3> well, you're right - there are some more details. it needs a bit of wrapper code around it.

It actually tests if n is composite, when presented with a pattern of n ones. E.g., '111' doesn't match so it is prime, and '1111' does match so it's composite.

<comment><USER4> Wow, this is really amazing (to me at least because I had not seen or thought of this before).

[ Warning: Spoiler! :) ]

It's in base 1 (tally system).

The first part up to the "|" matches the case where number 1 is the whole string, covering the fact of 1 not being considered prime. It also matches no string, I guess to mean 0.

Next part matches a captured string consisting of 2 or more ones, and the captured string must be repeated at least one time. That is, 2+ repetitions of chunks of 2+ ones.

This much is obvious, but it wasn't until I wrote it out that I realized what it is doing:

multiples of 2

11+11 or 11+11+11 or 11+11+11+11 or ... = 4, 6, 8, 10, 12, ...

multiples of 3

111+111 or 111+111+111 or 111+111+111+111 or ... = 6, 9, 12, ...

multiples of 4

1111+1111 or 1111+1111+1111 or ... = 8, 12, 16, 20, ...

multiples of 5

11111+11111 or 11111+11111+11111 or ... = 10, 15, 20, 25, ...

multiples of n

which leaves only primes remaining.

Side note: In Perl, executing it this way:

$nstr = 1 x $ARGV[0]; print ($nstr =~ m/^1?$|^(11+?)\1+$/ ? "composite\n" : "prime\n");

The largest prime I can find without a seg fault is 37397

And the largest composite I can find without a seg fault is 37399

</comment></comment></comment></comment></comment><comment><USER5> He means "regex fu": "fu" as in "kung fu", not "foo bar". In other words, the construction is "[arbitrary thing] fu". Since hackers often use "foo" for an arbitrary thing, perhaps this is better rendered as "foo fu". In Ruby we might write it as follows:

      class String
        def foo_fu?
          foo = ".*"
          self =~ /#{foo} fu/
        end
      end

</comment><comment><USER6> His regex for adding commas to numbers is a little obtuse. I would just write:

       scalar reverse join ',', split /\d{3}\K/, reverse $number;

The reason why people hate regexes are because people use them as a general purpose programming language instead of a concise way of matching strings. Note that the regex I use just says to "split the string every third digit" and the rest of the logic is actual code.

</comment><comment><USER7> If you have any interest in regex, visit

txt2re.com

It is extremely helpful.

</comment><comment><USER8> and really, i think the chap meant "Fu" anyways...</comment>


Steve Jobs told Obama, "You're headed for a one-term presidency." - <AUTHOR> http://www.edibleapple.com/2011/10/20/steve-jobs-told-obama-youre-headed-for-a-one-term-presidency/

<comment><USER2> As much as I admire Jobs business acumen, it's astonishing how obnoxiously arrogant he could be.

<comment> Anti-Ratfish Agreed. Although it would be a brave person who thought they could get a better advertising campaign together than Jobs.</comment></comment>


Need to make a rockstar animated demo video for your startup - pls try PowToon - ilya-powtoon http://www.powtoon.com

<comment> ilya-powtoon Hi Ilya here - CEO of PowToon - if you need any help in creating your presentoon (presentation - cartoon mashup) please let me know in this thread and we'll do our best to help. Also any advice and suggestions are much appreciated.</comment>


Why does MySQL insert a NULL when a column is declared Not NULL? - <AUTHOR> http://krow.livejournal.com/692692.html

<comment><USER2> tldr; those who value their data use postgres.</comment>


Further Bingification of Google: Add a background image to your Google homepage - <AUTHOR> http://www.google.com/support/websearch/bin/answer.py?answer=180720&hl=en

<comment><USER2> "Embrace, extend, extinguish" - sound business advice no matter who you are.</comment>


Quora Co-Founder Charlie Cheever Is Back in the Startup Game - <AUTHOR> http://fortune.com/2016/08/23/charlie-cheever-y-combinator/ <comment><USER2> What I'm working on -- along with a couple other people -- is Exponent, a way to make native iOS and Android apps by writing them just once in just JavaScript. It's based on React Native. [https://getexponent.com/](https://getexponent.com/)

We made a 2 minute video overview about what we're doing here: [https://www.youtube.com/watch?v=IQI9aUlouMI](https://www.youtube.com/watch?v=IQI9aUlouMI)

</comment><comment><USER3> Never understood the love for Quora, just seemed to spam Google search results acting like it would provide an answer then forcing you to sign up to actually get what it promised.

<comment><USER4> I think it's because if you do sign up you get access to the best answers to common tech, higher edu, and startup questions by predominantly people with relevant public credentials.

<comment><USER5> It's no better or worse than asking questions on HN or Reddit or any other forum, despite what their marketing says.

Or did I miss the sarcasm?

</comment></comment></comment><comment><USER6> how much does a fluff article like this cost? might need it when i enter the startup game.

<comment><USER7> With such cynicism who knows, they might charge more for different people.

This guy has credentials from a previous startup, hence why an article like this might create excitement for some.

<comment><USER8> For a project that is like pre packaging modules, I think that an article like that is a bit too much. We are in a bubble, why add more hot air?

</comment></comment></comment><comment><USER8> They are pre packaging some React Native modules. I guess there is space for that, but I don't how large it is. For RN developers, I guess that github/npm already has similar modules. Is it free software?

</comment><comment><USER9> In a related matter: Has anyone built a production app with Exponent JS and lived to tell about the experience?

<comment><USER2> the biggest and best example right now is the Android version of Li.st. [https://play.google.com/store/apps/details?id=st.li.listapp&...](https://play.google.com/store/apps/details?id=st.li.listapp&hl=en)

In general, people have been really happy using Exponent so far. It doesn't work for all use cases yet since we are still beefing up the roster of native modules that are included, but you can do most of the stuff that most apps need already, and we're adding more every day.

<comment><USER10> As a native android/ios engineer, that's great to see cross-platform tools like this create an app that's got decent traction. My biggest gripe though is there hasn't been a x-platform tool to get the native feel completely right. Obviously your SDK is going through its iterations to refine this, but actions such as the pull-to-refresh widget flicker twice on some screens. There'll be some screens w/ the ListView/RecyclerView where when you scroll to the bottom there'll be inconsistencies w/ the pull-effect (sometimes it will show, sometimes it won't). The alert-popups feel kind of awkward.

I'm super picky when it comes to UI/UX which is why I still prefer native on both platforms. But keep up the good work!

</comment></comment></comment><comment><USER11> I think there have been quite a few attempts now at a cross-platform mobile framework which compiles to native while allowing you to work in some higher language. Am I wrong? If not, what sets Exponent apart?</comment>


Dropbox Smart Sync - <AUTHOR> https://www.dropbox.com/business/smartsync <comment><AUTHOR> For those who remember, it was initially called Project Infinite. Honestly it seemed really promising at the time and it still does, just hoping they'll bring it to Pro users as well.

P.S.: Funny how this launched after their $1BN Rev Run Rate.</comment>


Philg: Universities and Economic Growth - <AUTHOR> http://philip.greenspun.com/teaching/universities-and-economic-growth <comment><USER2> "Why isn't all of an CS undergrad's education done via open-ended projects? Consider the requirement to take Physics 1 (freshman mechanics). This could easily be replaced by the professor saying 'I would like you to build me a simulator for my home pool table.' The professor doesn't say what the interface should be or how detailed the simulation must be. It is up to the students, who will organize themselves into groups of 2 or 3, to figure out what is practical to accomplish in a portion of the semester. It will also be up to those students to work through exercises in a standard Physics textbook as a subtask."

This is an interesting suggestion for changing the undergraduate curriculum. See a famous video series

<http://www.learner.org/resources/series26.html>

for a startling problem with the old way of education: "Why is it that students can graduate from MIT and Harvard, yet not know how to solve a simple third-grade problem in science: lighting a light bulb with a battery and wire?"</comment>


Poorly chosen Ruby gem names - <AUTHOR> http://unethicalblogger.com/2011/11/13/ten-poorly-chosen-gem-names.html <comment><USER2> I'll defend analdiffist on the grounds of it being a pretty clear Arrested Development reference, while remaining accurate (A professional twice over: an analyst and a diffist.)

</comment><comment><USER3> This is likely a side effect of the fact that there is no "peer-review" process in the form of a pull request or maintainers etc. to publish a gem to rubygems.org. Can such names can also be observed with PyPI etc. which have a similar low-barrier publishing mechanism? This is different from other package distribution channels like your operating system's default package/portage manager. Homebrew I believe accepts pull requests, Ubuntu solves this problem by introducing an additional step where the end user has to manually add the ppa repository to apt before being able to install packages.

<comment><USER4> I didn't check for profanities, but I quite like "Aaaaaaaaaaaaaaaaaaa- aaaaaaaaa-aaaaaaasa-aaaaaaasa-aaaaasaa-aaaaaaasa-bbbbbbbbbbb".

[https://pypi.python.org/simple](https://pypi.python.org/simple)

</comment></comment><comment> yo-mf The guy has an issue with the name Nokogiri?

Anyway, not to be "that guy", but this same article was posted over a year ago [https://news.ycombinator.com/item?id=3577590](https://news.ycombinator.com/item?id=3577590) and the post itself is over two years old. Would it be too much to ask folks to search before posting?

</comment><comment><USER5> What's the deal with Japanese names for gems, considering Ruby was created by a Japanese programmer, and for most of its existence was most popular in Japan? And considering what Nokogiri does, 'Saw' or a tool name is pretty appropriate.

</comment><comment><AUTHOR> To be fair, the Trollop gem is probably my favorite CLI library.

Somewhat creepy example linked off of article:

[https://github.com/icebreaker/girlfriend](https://github.com/icebreaker/girlfriend)

</comment><comment><USER6> Always a little suspicious of 'crack' and 'chronic'. I understand the clean use of the name but the vernacular use of each...

</comment><comment><USER7> dont you talk about nokogiri like that</comment>


San Francisco consulate is harboring Chinese military researcher wanted by FBI - <AUTHOR> https://www.axios.com/san-francisco-consulate-harboring-chinese-military-researcher-fbi-17325706-7983-4b17-aa6f-f19a450b646b.html <comment><USER2> Is it really so unusual to use a diplomatic post to shelter someone from the law? The article makes it sound like its unheard of, but its a super common plot in movies.i know movies aren't real life, but still it doesn't seem that unprecedented. After all, S̶n̶o̶w̶d̶e̶n̶ Assange sheltered in the ecudorian embassy for about a decade.

Edit: ugh, that is a really embarassing mistake

<comment><USER3> > After all, Snowden sheltered in the ecudorian embassy for about a decade.

I think you mean Assange?

But yes, I don't think anyone should be especially surprised by this; although if this were a country with strong diplomatic ties to the US and an extradition treaty then admittedly it would be a different matter.</comment></comment>


Ask HN: Did you try Brave browser, What are your thoughts? - <AUTHOR> <comment><USER2> I use it on mobile. Almost the same experience as chrome but with ad-blocking and anti-tracking enabled. However, i still use Firefox on PC.</comment>


Ask HN: What are some successful startups from really isolated cities/countries? - <AUTHOR>

What startups do you know that have achieved some success (not only in its country) and came from non-traditional startup cities/countries, specially the most isolated ones.<p>By "some success"I mean one of these: a)Generates revenue in more than 1 country b)Has a lot of users c)raised a lot of money .... <comment><USER2> I work for a company called Cinergix. We make a product called creately. Sri Lanka has an IT industry largely based around offshore and services. So to have a product used globally definitely falls into the isolated criteria.

Apart from us though, from Sri Lanka:

Kadira by meteorhacks. Already profitable. Great team. Used globally.

Hiveage (previously curdbee). Also used globally. Very inspiring crew behind the product.

I think that's it for products in sri Lanka that have gained a global presence. This is obviously software only. Unaware of other industries' startup status

</comment><comment><USER3> Woothemes?

GoMockingbird?

There could be hundreds, because what you may not see as a 'hub', is actually a hub that acts as a gateway to other countries in the region.

</comment><comment><USER4> What's an example of a country you would define as 'isolated'?

<comment><AUTHOR> Isolated/far from really effective startup hubs... I would say many countries in Africa and Asia, many cities in Russia, Brazil, China, Australia, etc...</comment></comment>


Microsoft search to be powered by open source - <AUTHOR> http://news.cnet.com/8301-13505_3-10235400-16.html?part=rss&subj=news&tag=2547-1_3-0-20 <comment><USER2> I am an employee of Powerset and I can say with authority that this article is _not_ fact checked at all. It contains some egregious errors and a geyser of wishful thinking and baseless guesses.

As for the culture issue they're addressing, I cannot talk about what specifically is going on with Live internals and upcoming releases, but I can say that we actually have been surprised by how willing the MS engineers have been to check out our infrastructure and assess it fairly. If you come into the office you still see most of the NL research we do is still done on macs using a lot of open source tools targeting linux, and our management is cool with that. We've had some friction maintaining our ties to open source, but only because these issues are complicated by an acquisition and getting used to new rules and procedures.

In general, the vibe I get when I talk to veteran Microsofties is one of cautious optimism about non-gpl'd open source code. And even people very high up the MS chain have told us that open sourcing code can make financial sense, and if it makes sense then that's what should happen.

<comment><USER3> _It contains some egregious errors and a geyser of wishful thinking and baseless guesses._

Which parts? The important parts of the article (Powerset using open source, jquery inclusion in VS, MS's earlier negative stance on open source) are all well documented.

Only MS's "keenness on consuming open-source software and embedding it into its proprietary products" is probably exaggerated.

</comment></comment><comment><USER4> Protip: Reusing open source web browsers would be a logical next move. :)

      </wishfulthinking>

<comment><USER5> I'd prefer they just open source theirs, actually. I like having more browser choices, but it'd be nice to see them open up more..

</comment></comment><comment><USER6> At a minimum, even if it is a trick, this is good strategic thinking going on in that team. I like anything that spreads the use of distributed databases and having another BigTable implementation is great.

As mentioned, it would be great if they started using Webkit or open source browser rendering engines.

</comment><comment><USER7> Well, if the technology makes sense, why not? There's no point in being awkward.</comment>


Rat Park drug experiment cartoon - <AUTHOR> http://www.stuartmcmillen.com/comics_en/rat-park/#page-1 <comment><USER2> Other researches have tried and failed to reproduce Rat Park's results:

[http://www.ncbi.nlm.nih.gov/pubmed/9148292?dopt=Abstract](http://www.ncbi.nlm.nih.gov/pubmed/9148292?dopt=Abstract)

"The results of earlier research, indicating rats housed in a quasinatural colony drank significantly less sucrose-morphine than rats isolated in standard laboratory cages, could not be replicated"

<comment><AUTHOR> The research you mentioned specifies in the abstract a probable cause for failing to replicate the same conditions for the experiment: _It is possible that during a colony conversion the supplier inadvertently introduced strain differences making the present rats more resistant to xenobiotic consumption._

In my opinion this tells a lot.

BTW: There are other researchers that replicated similar results on similar experiments too: [http://www.ncbi.nlm.nih.gov/pubmed/11072395?dopt=Abstract](http://www.ncbi.nlm.nih.gov/pubmed/11072395?dopt=Abstract)

So is better to see all the experiments to avoid bias.

<comment><USER2> Why? What they're suggesting is that the genetic markup of the rats made the difference (that's what strain differences mean), not the environment.

And your other linked experiment isn't at all similar and doesn't have similar results. It's not even about opiate addiction.

Btw, Bruce Alexander is still alive and it wouldn't be that hard for him to find the funding to replicate his experiment, with better controls, if he wanted to.

</comment></comment></comment><comment><USER3> The webcomic opens giving an option of three different navigation options -- left/right arrows, mouse, and touch.

With the exception of touch, which I don't have, these were all borked for me. The scroll over-scrolled, and the arrow navigation moved forward _way_ too many frames, both of which behaviors I had a lot of trouble interrupting or escaping out of...

No, this is not another stereotyped HN comment meant to alert the author to a criticism/bug in UX/UI/etc.

Instead, I actually thought that the borked controls were _part_ of the "Rat Park" experiment:

How do users behave when presented with multiple controls and one or more of these controls break (i.e., when they're up against the wall, where do they turn)?

I fully expected to see discussion on this returning to the comment section.

Framing, titles -- they're a funny thing!

<comment><USER4> Worked fine for me on mobile. I'm in the park, cageboy! ;-)

</comment></comment><comment><USER5> Someone is a Led Zeppelin fan; the artwork references many of their album covers.

</comment><comment><USER6> The last line/panel left me stunned (not going to repeat it, read the comic).

So beautifully put.

</comment><comment><USER7> This was posted yesterday: [https://news.ycombinator.com/item?id=7734795](https://news.ycombinator.com/item?id=7734795), and has had a significant discussion within the last year: [https://news.ycombinator.com/item?id=6391701](https://news.ycombinator.com/item?id=6391701).

</comment><comment><USER8> I've come to the realization we owe so much when it comes to medicine and psychology to our muroid rodents.

FWIW, this was posted on HN 8 months ago, and 7 months ago. ([https://hn.algolia.com/?q=rat+park#!/story/forever/0/rat%20p...](https://hn.algolia.com/?q=rat+park#!/story/forever/0/rat%20park))

</comment><comment><USER9> A lot of the more successful drug treatment programs today treat addiction as a symptom, not as the disease in and of itself. I'm glad that this model is gaining popularity, because I think it is the correct one.

I was lucky to have the chance to study with Dr. Carl Hart in college. His _Drugs and Behavior_ class was one of the best I've ever taken - an actually scientific, medical look at drug use instead of haphazard generalizations that we have come accustomed to reading even in otherwise reputable news sources and even some academic settings.

A lot of Dr. Hart's research (at least at the time) involved methamphetamine - he is one of only a handful of people across the country authorized to administer methamphetamine in research settings (ie, for the purposes of a study).

I commonly see methamphetamine ("meth") used as a scapegoat these days, with references to it being a demon-drug, and how there is "no such thing as a casual meth user"[0].

Unfortunately, this caricature of methamphetamine is inaccurate, managing _both_ to overstate and understate its risks. Methamphetamine is certainly habit-forming for a number of reasons, but one interesting fact to note is that, according to the most recent NSDUH report[1], half of all people who used methamphetamine in the last year don't meet DSM criteria for substance abuse (which is an even lower threshold than substance dependence)[2]. (Ironically, I've seen these reports cited to show how "prevalent" meth addiction is, pointing at the higher usage rates, but conveniently ignoring the questions which evaluate actual substance abuse and dependence - why let facts get in the way of a good scary narrative?)

Even if your goal is to reduce methamphetamine use across society, treating all users as "addicts" when, medically speaking, they are not is like sending all underage college students to Alcoholics Anonymous if they are caught with alcohol in dry dorms - it's clearly not going to be successful.

Trying to treat drug use as a problem in and of itself isn't a model that is backed by medical data or even our best understanding of psychology. We don't use this model for alcohol (we distinguish between the drug use and the atypical behaviour which defines pathological use[3]) or caffeine (in which we completely ignore pathological use, even when it is clearly present).

[0] This is, incidentally, almost the exact same rhetoric during the crack cocaine scare in the 80s, which is commonly accepted today as having been exaggerated for political reasons at the time.

[1] The NSDUH is one of the three standard ways that drug usage rates and turned are measured in the US. The raw numbers are usually less meaningful than the relative numbers, for obvious reasons.

[2] The DSM is flawed in many ways, so I am not holding it up as a gold standard by any means. Rather, it's an example of how a relatively strict (but still scientific) definition of substance abuse fails to model actual behavior appropriately.

[3] ie, the definition of "alcoholic" is generally understood to mean more than "someone who drinks alcohol"

</comment><comment><USER10> Anyone know why the artist included at least two Led Zeppelin references? The font and shepherd in the first frame are alluding to Stairway to Heaven, and the sign in the last frame has the 4 symbols from IV.

<comment><USER11> Don't forget "In Through the Out Door" (front and back), "Physical Graffiti", and "Presence". So, at least six panels have references to Led Zeppelin cover art.

</comment></comment><comment><AUTHOR> It would be interesting to replicate the experiment with this in mind: [https://news.ycombinator.com/item?id=7662464](https://news.ycombinator.com/item?id=7662464)

</comment><comment><USER12> >>descended from wild Norway Rats, albino lab rats remain curious, gregarious social creatures

Nope! I have watched well fed lab rats attack and eat each other. In the wild they will often cannibalize their youth.

<comment><USER13> That does make them an excellent model for humans.

<comment><USER14> Every dangerous, crazy, warlike species portrayed in Sci-Fi TV shows and movies has been far outdone by actual historical humans. We're capable of jaw- dropping personal and up close brutality, and until recently, the state depended on the existence of many individuals who were highly capable of it. Now we have tools like guns and bombs, so we can pretend we're civilized.

</comment></comment></comment><comment><USER15> I think there's a lot of value in the conclusion there. We emphasize differences between ourselves (upstanding citizen vs. _drug addict_ ; religious believer vs. "atheist" or "hedonist", normal person vs. "insane") and moralize about that nonsense when, in fact, we're actually very similar. The original, mid-20th-century superstition was that hedonistic/recreational drug use (which _is_ risky) would take over society and that use had to be criminalized. The reality is that, while almost everyone uses illegal drugs at least once in life, most people make the right choices regardless of law (enforcement is minuscule in the upper-middle and upper class) and, for those who don't, compassionate medical treatment works far better than imprisonment. People may be hedonistic in nature, but they're most often smart about it, so what's wrong with that?

I was never addicted to a drug, but I had a long-term trolling habit (hypergraphia) and I will concur with the cage metaphor. The dopamine hits that come with pissing off hundreds of people I'd never met became my own personal drug, and made it difficult to enjoy the rest of life. Addiction eventually _becomes_ the cage, and it gets smaller and tighter over time.

The depressing realization that I come away from this with, however, is that modern life is mostly cages and very few parks. Most corporate jobs are cages with night and weekend release, and so is the way we've designed school systems and institutional life in general. We've even conditioned people into believing in supernatural authoritarianism (which is not to invalidate all of religion; I'm just attacking the politicized, authoritarian strain that exists in the US) because they're so imprisoned that the only solution they can envision is a supernatural person that almost certainly does not exist in that form.

People are so used to living in cages, and have so many weird addictions (whether to drugs including alcohol, to Internet trolling as I discussed, to authoritarian religion, or to the toxic drama of office politics) that de- caging humanity would require massive social change (including, for an obvious line item, basic income).

<comment><USER4> I can relate. Quitting my job has freed me for true personal growth and happiness. That was until I got unjustly charged by corrupt cops and have to do community service. It seems nonstarter where you run in this life, there's a cage waiting for you in one form or another. Sigh</comment></comment>


U.S. Developing 'Internet in a Suitcase' to Outflank Repressive Governments - <AUTHOR> http://www.pcmag.com/article2/0,2817,2386881,00.asp

<comment><USER2> The original article would be better: <http://www.nytimes.com/2011/06/12/world/12internet.html></comment>


Video on the Web - Dive Into HTML5 - <AUTHOR> http://diveintohtml5.org/video.html <comment><USER2> Sadly enough that page consistently causes the "Aw snap" failure to load on Chrome right now. (Mac 4.0.288.1 dev build)

Great book, however.</comment>


This is why I support a SAG-AFTRA strike authorization for video games - <AUTHOR> https://medium.com/@wilw/this-is-why-i-support-a-sag-aftra-strike-authorization-for-video-games-and-it-isn-t-about-money-d9123d7a700d <comment><USER2> I'd say go with it, see how it plays out for you.

Celebrity actors VA in games is a fairly recent development. For much, much longer we had random people doing VA even without getting a credit. Even now, celebrity VA is not very common and only happens in few AAA titles. Very few people will notice if games get back to the old ways, IMHO. The only thing this strike can possibly do is to screw its members from any game VA gigs.

</comment><comment><USER3> It seems to me that if the SAG wants to play hardball with video game studios, they'll quickly find that the studios aren't as beholden to them as the TV and movie studios are.

If studios wound up having to use entirely non-union actors it would lower quality, but it would be survivable. Certainly there's a lot of old-school games done by very amateur actors, tolerably.</comment>


High Frequency Trading Defined - <AUTHOR> http://www.nanex.net/aqck2/4691.html <comment><USER2> They're saying that low latency / lack of fundamentals (versus 'market events') marks HFT.

Unfortunately, at the end of the day, even if you are only about 'fundamentals' (whatever that means) you're obviously going to want to trade FIRST on those fundamentals .. right? Cause whoever does is going to win the day. Ok, so low latency is necessary for normal electronic trading.

Ok, now market events versus fundamentals. Seriously? At what point are 'market events' not fundamentals? The definition is all arbitrary. If there is a change in some correlating index, isn't that a 'market event'? But isn't it also rather fundamental (say, that correlating index is interest rates futures)? At what point does that change in the correlating index no long qualify as a 'fundamental event'? When Nanex says it doesn't?

Nanex simply wants to have its cake and doesn't want to be marked as "HFT". All electronic trading, at its heart, is going to be HFT at some point. The only way to keep that from happening is just come up with really arbitrary definitions marking the line you can't cross. Likely those definitions will be used to help whoever is paying Hillary Clinton/Bush/Trump/etc the most money.

Let's not bother with these shenanigans just put a transactional tax on everything and be done with it. Let's stop spending all our time and our brain power creating software to do trading and start getting back to actually researching /innovating / building things.

<comment><USER3> > you're obviously going to want to trade FIRST on those fundamentals .. > right? Cause whoever does is going to win the day

If you're only trading long term, then sub-second differences are essentially irrelevant.

I think there's a perfectly reasonable point here. Fundamentals as "trading against the future profit of the company". HFT as "trading against the system".

<comment><USER4> But people who trade against fundamentals aren't trading _directly_ against future profits, they are just betting on long term price movements. HFT traders are betting on (very) short term price movements.

According to the theory that stock prices are a martingale (which is well established), there is no qualitative difference between long and short run price movements. In particular, there is no reversion to the mean in stock prices [0].

[0] Of course, there are going to be literally hundreds of papers exhibiting some reversion to the mean effect. But this effect is always tiny.

<comment><USER5> "In particular, there is no reversion to the mean... there are going to be literally hundreds of papers exhibiting some reversion to the mean effect."

Okay.

I also think you don't know what a martingale is. It is impossible to make any expected value betting on martingale movements, by definition. If you believe traders are purely "betting on price movements" of martingales then profit is impossible. So either prices aren't martingales or trading is not purely a process of betting on the movements of market-clearing prices. Actually, both assumptions are false.

<comment><USER4> If _you_ knew anything about academia, or if you even bothered to carefully read my post instead of nitpicking, you would understand that just because something is in general true, doesn't mean that there won't be hundreds of papers showing how this thing fails to be true in special cases, or to a very small extent.

Regarding martingales, a martingale is defined relative to an information set ( _you_ know what a martingale is so you already knew that, right?). Saying that there is no reversion to the mean implies being a martingale with respect to the weakest possible information set (the history of prices). Traders, whether high frequency or others, may have extra information outside this information set.

In short, stop nitpicking and revise your understanding of what a martingale is.

</comment></comment></comment></comment></comment><comment><USER6> This defines market making as HFT, and while many HFTs make markets not all market makers are HFT. You can, using absolutely no knowledge of an underlying stock and the mathematical skills of a bright ten year old, make markets manually.

In 2015, if you do it in a highly-traded U.S. equity, you probably will not have a great risk-adjusted return because your bright ten year old is in all ways worse at this task than a computer is, but it is very doable.

To the extent that HFT is more meaningful than Big Data ("trading that I don't like and data I think is valuable, respectively!"), it had to include some element of Very Frequent, Very Fast. How fast? Like "the speed of light is _literally a logistical challenge_ fast." If you see an order in Chicago and make an order in Tokyo a second later, no matter what your rationale is, you are not doing HFT. That's just T. Got a model of the mind of your counterparty? Oh, welcome to T. Observed a correlation in an ETF and its underlying stocks and using it to trade with 1,000 times a minute? Wow, such impressive T!

<comment><USER7> I don't disagree with you here, but, on the other hand, parasitic trading [1] is a concept that's existed in market microstructure books for ages, since before HFT. It is not clear to me why this happens, but the concepts of parasitic trading and high-frequency trading seem to be mixed up quite often, even though they are strictly speaking orthogonal to each other. It should still be possible to argue against parasitic trading that also happens to be high-frequency.

[1] [https://books.google.ca/books?id=Rd9hDRR1Yx4C&pg=PA195](https://books.google.ca/books?id=Rd9hDRR1Yx4C&pg=PA195)

</comment></comment><comment><USER8> The HFT debate is bound to be misunderstood... It rose to prominence last year with the book by Michael Lewis "Flash boys". A discussion between two exchange operators Bats and the new IEX: [https://www.youtube.com/watch?v=RcpmHyPD_PY](https://www.youtube.com/watch?v=RcpmHyPD_PY)

This issue is not about frequency per se at all. Its about who has access to what information at what price. For instance one thing that happened was that data providers (e.g. Reuters) sold information to a group of traders, before it was available to the public.

The question is not at all whether software should be used to trade (we're not going back to pen & paper / pit trading). Rather the question is how software should be used in financial markets. HFT is not evil, it's a difficult problem to be solved.

<comment><AUTHOR> I think your viewpoint is fair. The aspects with hft that strike me as unfair are generally the result of bad exchange practices, such as lack of transparency in customer segmentation on their platforms. If it was all out in the open with price tags on display, I think the problems would fade away. Instead, the exchanges are running their businesses with about as much integrity as a bucket shop.

<comment><USER6> Can you identify a particular way in which an actual US exchange implements "customer segmentation on their platform" in a way which is tradable? This is not me trolling, this is a sincere question. If that actually exists I want to make a level in a trading simulation where the playing programmer would have to abuse that.

<comment><USER9> One of the things that gets some of the anti-HFT types going is that it's possible to subscribe to direct exchange data feeds.

All exchanges are obliged to contribute to the SIP, which offers a market-wide view of quotes (prices) and historical trades. However, because the SIP must aggregate data feeds from all exchanges and then republish this information, it's possible to "predict the future" if you subscribe to the direct exchanges feeds (which are more-or-less what they send to the SIP) and avoid the added latency of a hop via the SIP's aggregator and redistribution.

These direct exchange feeds are expensive, and getting more so (ie. NYSE UltraBook is $11,000/month for the data, plus port fees, plus connectivity). The argument is that this segments the customers such that unfair advantage is available to those who can afford to subscribe to the direct feeds.

More recently (last two? years) it's been possible to get a microwave transmission of the data, rather than fiber, which is both lower-latency and more expensive again.

<comment><USER10> Direct feeds are available to all market participants. Expensive really sounds like an excuse. It costs what it costs, it's not clear why it should cost any less than it does.

<comment><USER9> Right. If a direct feed is too expensive, then a SIP feed being more than the end-of-day prices in the newspaper could fall foul of the same argument.

</comment></comment></comment></comment></comment></comment><comment><USER11> I still dont get what the issue is with any of this... For a trade there has to be two counterparties with firm instructions on the ELOB to be lifted or filled at a certain level. If you dont want to transact at that price dont have an order in the market...

</comment><comment><USER12> Hmm... so by this definition, all arbitrage, irrespective of its frequency, is defined as HFT?

<comment><USER13> No.

HFT, when it is done at milliseconds of latency between exchanges to trick an order into executing at a 'fair price' because the order was sent to one exchange and HFT 'arbitragers', decide to manipulate the price at other exchanges due to latency for the same stock buy/sell.

It is arbitrage free, riskkless arbitrage that adds no value to a market, as it creates none but destroys it. Arbitrage adds value to a market by offering something cheaper; HFT removes the cheaper for the more expensive.

<comment><USER14> > decide to manipulate the price at other exchanges due to latency for the > same stock buy/sell

Be clear what you are saying. They are "manipulating the price at other exchanges" by changing the prices they themselves set on their own inventory.

It is not arbitrage, it is price discovery and it is not without risk.

<comment><USER13> > Be clear what you are saying. They are "manipulating the price at other > exchanges" by changing the prices they themselves set on their own > inventory.

Which will be sold instantly, as they have 'discovered' the price on the other exchanges were lower than where the initial order went to, bought that, and then instantly, give or take a few milliseconds, resell.

It is not price discovery, it is price manipulation. HFTs have no inventory, they are perfectly lean, they throw hot potatoes across different exchanges.

Not that this is not interesting technology. It is, but it is also manipulative.

I exclude prop trading from the above, obviously, because it is different, and does hold inventory.

</comment></comment></comment></comment><comment><USER15> I have defined HFT to be evil, therefore HFT is evil. Brilliant.

<comment><USER16> I found it a bit odd too. Isn't nanex a highly respected financial research firm of some kind?

<comment><USER17> >highly respected

I'd say "highly alarmist" based on what I've read from them over the years. They're pushing people to use their product, so it makes sense for them to publish alarmist stuff which segues into their product offerings.

<comment><USER18> I concur. Had a brief exchange with one of them last night and he was all too eager to bend the truth to fit his message.

</comment></comment></comment></comment><comment><USER19> So are there systems out there making trades designed to confuse and make HFT systems do the wrong things? Could you make some move then others? Can you run game theory stuff to constantly move the market in certain ways?

Is this really the most efficient way to allocate resources...?

<comment><USER14> Yes, absolutely there are many HFT systems trying to game other HFT systems. Some of them are using perfectly legal means and others are doing things that are less clearly legal.

> Is this really the most efficient way to allocate resources...?

A - Yes as far as we can tell. All the other options haven't worked nearly as well.

B - Be very careful when assuming that the markets are about "allocating resources". That is a by-product of the markets. Their main purpose is about risk management.</comment></comment>


Show HN: Marketplace for Bootstrap themes and templates - <AUTHOR> http://bootstrapbay.com/

<comment><USER2> I wonder why Zurb Foundation does not get as much love from HNers?

I use Foundation and I have really no need for a themes market . SaSS and Foundations' media responsive layout enable me to create new themes easily and painlessly even though I am am a back-end programmer.

<comment><USER3> There's Foundation Made[0], which seems to be operating for about a year now. [0] [https://www.foundationmade.com](https://www.foundationmade.com)

<comment><USER4> 1 year and that is all they have (and not very diverse) says a lot about the Foundation market.

</comment></comment></comment><comment><USER5> Nice work! But why should I use this instead of [https://wrapbootstrap.com](https://wrapbootstrap.com)?

<comment><AUTHOR> Unlike most marketplaces, we're offering high payments for authors who don't sell exclusively with us. We're seeing a lot of high-quality theme shops opening up who want the option to sell on their own platforms but still utilize marketplaces for additional exposure.

While wrap has done a great job building up a user base and getting first mover advantage, we're always reading complaints on social media and forums that their support is lacking and that the site has not been updated. We wanted to give designers a better option and give great support to both buyers and sellers. Once we increase our sales and following, I'm confident that authors will want to switch over. Right now we're on page 3/4 of Google hoping to move up to page 1 very soon.

Our goal is to grow a great community around the marketplace. We've already started doing this with our blog and tutorials. We will be adding more features in the near future.

<comment><USER6> Then don't say you're " _a_ marketplace for Bootstrap themes & templates", but "jump" at your visitors with what makes you unique and/or better.

Btw: I really dig the smaller thumbnails, they make me feel I have a better overview over what's going on.

Edit: wait, that's just on the first page. Sigh. I don't really like large-ish thumbnails á la [0], especially in the retina age.

0: [https://wrapbootstrap.com/](https://wrapbootstrap.com/)

<comment><AUTHOR> That makes a lot of sense. I think there's a few adjustments we can definitely make.

[Edit] Just modified our homepage text. Hopefully this communicates our value proposition a bit better. Thanks again for pointing this out.

<comment><USER5> I'm seeing lots of themes that are also available at other theme stores, what safeguards are in place to stop people from selling themes that aren't theirs to sell?

<comment><AUTHOR> We always do a quick search and cross reference the email, author name, and theme info to make sure everything matches up. It's usually pretty easy to sniff out when someone uploads a theme that isn't theirs.

</comment></comment></comment></comment></comment></comment><comment><USER7> Alexa 94,000. It would seem this site has been around for awhile.

Methinks some people are taking advantage of the Show HN renaissance...

<comment><AUTHOR> The site has been up for about 2 months now. We wanted to polish it up and get a few authors on board before sharing it.

<comment><USER7> Congrats on that much repeat traffic after only two months. Unless your Alexa is way off.

<comment><AUTHOR> We did a blog post listing 12 great sites to get free stock photos and it did VERY well. I suspect this is part of the really good Alexa rank.

</comment></comment></comment></comment><comment><USER8> I note that if you're using this for SaaS (paid subscription site, etc.), you need a premium license, which is 50X more expensive.

[http://bootstrapbay.com/licenses](http://bootstrapbay.com/licenses)

I think that's a consideration for a lot of people here. And this is not the case with wrapbootstrap.com.

(edit) I originally said Themeforest had the same restrictions as BootstrapBay, but it appears they have changed their license description significantly and it only affects you if you're distributing it in a sold product. But don't take my word for it:

[http://themeforest.net/licenses/regular](http://themeforest.net/licenses/regular)

<comment><USER8> Sorry, I was wrong about Themeforest (or originally correct) - if the end user of the site pays to access it, an "extended license" is required, also at 50X the cost. As that's often $2500-3000, I'd rather find a good free theme and pay a designer/UI person (perhaps the one who created it) to customize it for me or my client.

</comment></comment><comment><USER9> Good work. Will surely publish my own theme under construction.

Saw your alexa it is 90K~ great job that too in two months.

Whats your daily traffic count? Reveal only if you don't mind.

<comment><AUTHOR> We wrote a blog post on great places to get free stock photos and shared it on StumbleUpon. We ended up getting 17,000 visits that day and it just went crazy somehow, even though our domain rank was non-existent. We were getting 10,000+ visits for about a week because of that blog post.

After the dust settled a bit on that post we were getting over 1,000 visits a day (still a lot from StumbleUpon) and now we're creeping over over 2,000 a day and slowly climbing.

Obviously, a lot of that traffic was not highly targeted but it still gave us a huge boost and our Google rankings have shot up lately. We're now on Page 3/4 for "Bootstrap themes" and getting more organic traffic which is great.

</comment></comment><comment><USER10> Just a small fix, my work blocks Google fonts, and your fallbacks don't work, so everything goes times new roman. Please add sans-serif as a fallback.

<comment><AUTHOR> Thanks for the heads up, fixed!

</comment></comment><comment><USER11> Awesome work cgimmer! Would be great if you can add some more basic (one pager maybe) free themes. Anyway, you've done a great job already :)

<comment><AUTHOR> We're definitely going to release more free themes along the way so make sure to check back.

</comment></comment><comment><USER12> What's the back end stack? Frontend looks similar to other theme sites. Is it a custom cms, or did you use a framework ect?

<comment><AUTHOR> It's built with PHP and a custom CMS. There's still some dev work to do but we wanted to get it out there.

</comment></comment><comment><USER13> Just a heads up, eBay have been a bit legal-y for ecommerce things ending in Bay previously..

<comment><USER14> this. I came here to post the case between Foodiebay (now Zomato) and ebay [1]. They had to change the name. I really recommend moving away from the *bay name... unless you want to scratch that particular itch.

[1] [http://techcorplegal.com/Blog_Technology_Law_Business_Resear...](http://techcorplegal.com/Blog_Technology_Law_Business_Research/2013/07/02/law- for-startups/)

<comment><AUTHOR> Wow good to know. Hopefully they don't come after the small fries...

</comment></comment></comment><comment><USER15> Clean and simple! How long did it take you to build?

<comment><AUTHOR> It took about 2.5 months but we're not 100% done yet. We still need to implement theme editing.</comment></comment>


The Young Man and the Sea Sponge - <AUTHOR> https://longreads.com/2019/08/13/the-young-man-and-the-sea-sponge/ <comment><USER2> Small focussed teams or individuals make beautiful things happen. I don't like the memes on reddit but I do like the show. The 'Hof getting in on things was good. Also, the schtick of having SpongeBob and Patrick turn into real dried things out of the water.

Shame about the ALS but what a legacy!</comment>