Keyhut POS: Free Point-of-Sale Software for DOS - <AUTHOR> http://keyhut.com/pos.htm <comment><USER2> I love the website. Just last weekend I made a reader for my company's forum with absolutely no CSS. It's just plain text and a total of 38 lines of code written by me, which includes db connection parameters. Some people I showed it to wanted it to be the real forum. It was fast as hell and mobile and tty (lynx) friendly but didn't allow any sort of login, posting, or posts read tracking, so not really usable. Fun though. I love super basic things. Another really basic site I use is called Hacker News. Heard of it? :)

<comment><USER3> I encourage people as much as I can to consider doing sites to use as little resources as needed.

Shameless plug, I recently put up the Leanternet directory of lean internet sites, you might like to see more of these kind of sites and the Leanternet principles at [https://www.leanternet.com](https://www.leanternet.com)

<comment><USER4> The second button, "read the leanternet principles" is broken badly into 2 lines on my iphone

<comment><USER3> Thanks for pointing it out, will get it fixed shortly.

EDIT: Fixed.

</comment></comment></comment></comment><comment><USER5> Ugh, talk about feature creep and planned obsolescence. From version 7.0c you need a 200 MB or larger drive for autobackup and Win95+ or later for mailing/FTPing autoreports.

Now I need to replace my perfectly functional 386DX-40 with one of those fancy 486. Hopefully a Cyrix CX-486DRX2 will do and I can avoid the expense of a new motherboard...

:^)

<comment> yjftsjthsd-h I'm actually surprised at that; I know FTP was around in that era, and SMTP is a simple as throwing a simple text format over TCP.

<comment><USER6> Probably Winsock-related. Sockets required third party support in DOS and required an extension program on Win3.1x, but Win95 standardised them in the OS API. So, if you as a programmer want to do sockets programming without obscure old software that probably lacks documentation, Windows 95 is the way to go.

You can read about the history of winsock here: [https://tangentsoft.net/wskfaq/articles/history.html](https://tangentsoft.net/wskfaq/articles/history.html)

<comment><USER7> Definitely. Networking on DOS was an absolute nightmare for so many reasons.

<comment><USER8> I set that up recently and found it refreshingly simple. Just load a packet driver (finding the right packet driver for your card is the biggest potential hurdle IMO), set up a system wide configuration file (to be fair, one for each network stack you'll be using; in my case mTCP and WATTCP), point to it with some environment variable in AUTOEXEC and run the network software.

It brings a smile though that I occasionally have to renew my DHCP lease manually.

</comment></comment></comment></comment></comment><comment><USER9> One could say the software looks dated, but you would be surprised how many of such applications are still in use today. I see those a lot at furniture shops and large stores. I bought a Mercedes-Benz last week and the dealer's computer was logged into an IBM mainframe running z/OS and COBOL/JPL.

I find it interesting to spot those types of systems in commodity situations.

<comment><USER10> Lots of such "dated" software can be used much more productively than modern GUI or web based software.

Most oldschool DOS-y business software is very keyboard driven, so the learning curve is much steeper than that of your average web app. But once you're there, and really it's just a few hours of learning to hit the right keys while your experienced colleague is training you up, then it's super fast.

There's no web page loading times. Click ... Wait .... Click ... Etc ...

Inputs are properly tab indexed, because that's the only way to navigate between them.

Every keyboard hit has instant feedback

No time wasted mousing around.

Look, mouse/touch driven UIs are great for discoverability, and web based UIs are great for deliverability, but neither of those are super important when all users of the software are expected to use it a lot, and use it from a known amount of places (eg branches of a retail chain).

Of course there's nothing preventing web based UIs from supporting the same speed and productivity, but I know of few examples that actually do this.

I love web based software and I make it for a living, but I wish UX designers for line of business applications would take a few more hints from the nineties. If you can assume that a new user gets a few hours of on-the-job training from a colleague, then that wildly changes the assumptions underlying your UX design.

<comment><USER11> I knew someone working on a system like that who could 'type ahead' a couple of screens worth because the layout had not changed in a decade, it 'just worked' and the system had trouble keeping up with the user because of that. Very impressive.

<comment><USER12> Buffering input is something we are still missing on the web. Concurrency is indispensable, but if the program is modal (and almost all are, to certain extent), processing an input command should wait for the previous one to be processed.

</comment></comment></comment></comment><comment><USER13> The photos of it in use in stores are adorable and must be heartwarming for the developer

[http://keyhut.com/posphoto.htm](http://keyhut.com/posphoto.htm)

<comment><USER5> The one in Indonesia is not only using a CRT, but they have one of those "protectors" on. Blast from the past, I never understood what they were supposed to do in practice.

<comment><USER14> That one appears anti-glare, but there are also privacy oriented ones that prevent reading the screen from the side.

<comment><USER5> But weren't there also ones with a "grounding cable" that was supposed to help with "radiation"? I'm sure it was quackery, but I seem to remember those as well.

<comment><USER15> Not quackery when you had a bad CRT. Think like a TV, where static would make dust cling to screen surface.

<comment><USER16> Yeah I remember those things as mostly being a static electricity mitigation device.

</comment></comment></comment></comment></comment></comment><comment><USER17> "Error #2 was that there are people all over the earth who are writing tax laws, they do not talk to each other, and they are all INSANE."

He has a very valid point here!

</comment><comment><USER18> Along the same lines as a program running on lightweight DOS, is it possible (or common) to build a Linux "distribution" for the sake of running a single TTY program? How fast would it boot, and how reliable would it be? (To avoid being called into work because a brief power outage "bricked" the POS.) Linux would have the advantage of working on modern PCs with modern hardware like touch screens, USB scanners/printers, etc.

Or, say I want to boot directly into a video game console emulator with Linux with 0 additional steps. How would I do that?

<comment><USER19> While you can just make it launch a program instead of /sbin/init, you may be surprised at the results, because it won't mount any of your filesystems, setup the network, etc. So you want systemd/sysvinit (according to taste) to run first, which will take the normal amount of time to boot.

The cleaner way of doing this is through "inittab". Normally this starts a program called "getty" on the console which provides the login prompt etc. That's what you want to override. It will also restart your program every time it quits.

(Less normal options include "put your program in the initrd", which is viable if it's very small and does all the setup itself, or "write something that runs directly from the UEFI loader")

<comment><USER20> Another less normal option would simply be to make /sbin/init a shell script.

Instead of trying to detect hardware, network, and all, you could just hardcode everything. If you're working with a standardized set of hardware, that would most likely be simpler than anything else.

<comment><USER21> This sounds interresting. Do you know any guides on this?

<comment><USER20> I don't know of a guide, off-hand. I saw it done before in postmarketOS [0], which is what made me think of it.

Note that pmOS does it to call an actual init system, but it could be done as an init in and of itself.

0: [https://gitlab.com/postmarketOS/pmaports/tree/master/main/po...](https://gitlab.com/postmarketOS/pmaports/tree/master/main/postmarketos- mkinitfs)

</comment></comment></comment></comment></comment><comment><USER22> This is really cool to come across, but you're not getting the whole experience if you don't read the author's "Why" page: [http://keyhut.com/why.htm](http://keyhut.com/why.htm)

<comment><USER23> love it, also the chat link at the bottom: [http://keyhut.com/chat.htm](http://keyhut.com/chat.htm)

</comment></comment><comment><AUTHOR> After the reddit explosion I emailed the guy and donated $5. He personally replied, seems to be a cool lad. So if you can spare some cash, you'll make him very happy.

<comment><USER24> at prodigy.net? Loving it.

</comment></comment><comment><USER25> Discussion on reddit (3 months ago): [https://www.reddit.com/r/sysadmin/comments/byuw77/so_this_is...](https://www.reddit.com/r/sysadmin/comments/byuw77/so_this_is_a_thing_in_production_its_like_a_blast/)

</comment><comment><USER26> This is incredibly charming and almost makes me want to start a lemonade stand or something.

</comment><comment><USER27> You could probably get this running in a browser via emulation with one of those JavaScript DOS clones.

From there, you could wrap it in an Electron window and write some nodejs glue code to let it interface with hardware and the file system.

That would make it possible to rig up some kind of cloud storage for the database files and maybe start to think about getting it running on phones with React Native.

You could sell the iOS app for a small price like $20, or a subscription model with in app purchases. That would help to fund a redesign of the website to a more modern single page app approach.

<comment><USER28> I'm not sure whether this comment is sarcastic or not, which is sad.

<comment><USER29> Pretty certain parent commenter is fully aware of what they're doing. :) It's a masterpiece

(at least, I hope they're fully aware!)

</comment></comment></comment><comment><USER30> Our six year old is having fun playing with this app right now. Setting up a pretend shop.

<comment><USER31> If you want to introduce them to more DOS stuff. When I was young my daycare had a DOS computer with Space Quest III and Where in the world is carmen san diego. You can probably get freeware versions of those.

<comment><USER30> I'll try those.

He loves Commander Keen. He has dozens of Keen mods installed in DOSBox. He even tries building his own with a level editor (Abiathar)

</comment></comment></comment><comment><USER32> Love the guy's almost anti tech stance. From his fb page:

> _I am apparently no longer fit to live on this planet.

Over the last month or so I have received some disturbing emails. When summarized they say that they love the POS software. It does everything they want and more, they could not be more pleased with it and if it was not free they would have been more than happy to pay for it. However they are going to have to dump it and go find a different POS program that will probably not be as perfect for them as DHPOS and will have to pay for it to boot.

The problem is that their younger employees hate it. Either they cannot figure out how to use it because it requires input from the keyboard or they are appalled because when they swipe the screen nothing happens.

Cry me a river.

Apparently smartphone use makes one useless for any other function which is yet another reason to avoid them like the plague that they are. I am increasingly distressed that this page has become an endless rant about smartphones but it does seem as though they have become ubiquitous with the only exception to my knowledge being my pants. In the last month my only co- conspiracy relative has gone over to the dark side and I am now alone.

Over the last week I built a cart to hold folding tables (photo below) for the 6 Corners Association that did not in any way require the use of a smartphone, no swiping required, no cat videos attached, and my attention was focused on reality as evidenced by the fact that I still have possession of all of my fingers. Plus I had buckets of fun to boot. I am quite proud of it and since it is real I have no worries of someone accidentally deleting it or of it being hacked and remotely being sent to scoot down Milwaukee Avenue as a hazard to the populace.

I find real life to be endlessly fascinating, plus if I leave my flip phone at home or the battery dies or the phone gets crushed by a plummeting cement block, I'm good, not a problem. I know where I am (since I never left reality) and I can get anywhere I need to go since I pretty much know where everything I might need is. If I need to contact someone I have a printed list of phone numbers in my wallet. However when I am with someone else and their smartphone dies the look of panic on their face is alarming. I try to console them.

So please do not even think of holding a tag-day to purchase a smartphone for me because I am more than fine without one and it would only make me wonder why you hate me._

[https://facebook.com/daleharrispos/photos/a.408929929488156/...](https://facebook.com/daleharrispos/photos/a.408929929488156/846538985727246/?type=3&source=54&ref=page_internal)

<comment><USER33> Honestly, He sounds pretty typical for a lot of late 50s early 60 years old programmers I know. Their relationships with machines has been very different, as has their relationship to the world. I find a lot of them, dislike the way the world has changed in regards to computers, and honestly I can see a lot of what they are saying, albeit with less angst and zeal.

<comment><USER34> I haven't even hit fifty yet (31 months to go!) and I already feel that way. My first 'proper' job when I was ~20 was as junior sysadmin on a large DEC VAXCluster[1] which are mainframe-like, and over the past three decades of working with computers, I too am very sad at how commoditised it has all become. Programming is mainly now just a process of bolting existing libraries together with no real idea of how everything works, hardware is now shrunk down to effectively be like magic, and unless you constantly jump aboard the latest fad, you are considered obsolete. The fun and discover-ability of the whole thing has completely gone. It's a real shame.

\--

[1] [http://www.jaruzel.com/blog/dont-screw-up-a-vaxcluster- tale](http://www.jaruzel.com/blog/dont-screw-up-a-vaxcluster-tale)

<comment><USER35> I barely hit thirty and I already start to feel that way (as evidenced by frequent rants on HN on dumbing down of software).

I feel for the guy. Sad thing is, the people refusing to use a powerful and efficient piece of software because they can't click or swipe will be suffering and wondering why their job is miserable. And the customers standing in the queue will be suffering too - especially the ones who've seen efficient POS software being used in other shops.

<comment> 52-6F-62 Same boat, here.

And as an aside the best and fastest POS I ever used was a DOS-based system. I ;earned to key on the number pad because of it (now I _need_ any external keyboard I use to have one). We actually got so good we could key up entire processes, invoices before the screens could update! This was pre- iPhone/touchscreens everywhere and I thought it looked old and outdated when I started. My appreciation grew after working with it, though.

</comment></comment></comment></comment></comment><comment><USER36> One of my first jobs in IT was replacing POS terminals at a large sporting goods chain.

Netware server, DOS terminals, DOS drive mappings and networking fun stuff and it was in the days of Windows 2000 so a lot of the MSCE's didn't know anything about DOS drivers etc. Or they, were smart enough to pretend that they didn't so they didn't get stuck with this assignment.

<comment><USER37> Oh man, Netware in the era of Windows 2000!! I had a few of these hold outs. Many of my clients were on WinNT 3.5 with a Netware 3.1 server. Getting the windows admins to understand loading NLMs and using the different console tools was "fun". I only got to toy with one Netware 4.11. And that was just using NwAdmin95 (so the joys of learning NDS). I had it set up in my home lab too as I was planning on getting my CCNA... then I moved to a Windows only place and worked on getting them to adopt Linux.

<comment><USER36> Yea, we had 'team red' (novell) vs 'team blue' (MS)

I was team Linux. So team black was they ended up naming it.

<comment><USER37> I love it! I managed to get one client to do a "drop in" Netware replacement using some wire compatible netware replacement (I can't even remember the name) Their machines still kept the Netware login and everything. Good old days.

</comment></comment></comment></comment><comment><USER38> I cannot find the source code, or a license. It's "free" (gratis) software, but is it FreeSoftware?

<comment><USER39> > SOURCE CODE > Sorry, but I do not release the source code for any of my > software. This is particularly true for the Cash Register program.

> The Cash Register program. has many things that must be hidden like the > passwords and PIN numbers. It also has things that users must not be able to > change like sales and tax amounts and transaction numbers. These things > could easily be changed by anyone who has the source code and anyone with > the source code could write a program that would change the hidden things > and then release it on the internet making my program useless.

It's all in FAQ. I don't really get the whole thing about the PINs/Passwords, but I'm guessing there's some logic in it.

The funny thing is he explicitly explains to people how to modify the binary with a Hex Editor to change language strings...

<comment><USER40> I'm a bit of a computer history buff, and dig around through old software archives from time to time. It seems to me that developers back in the 80's (at least in the PC / home computer world) were quite possessive of their source code, even for hobbyist projects that they gave away for free. It might seem a little odd to us today, although perhaps they had some rational motivation (e.g. hopes of productizing it or selling the IP later). So I'm not surprised that this program is also closed source, with some vague integrity/security reasons offered.

I say this with all due respect to the developer, who of course is free to distribute his software however he would like. It's a very cool project, and I often wish we could see a resurgence of such simplicity and distraction-free UX. :)

<comment><USER41> > It seems to me that developers back in the 80's (at least in the PC / home > computer world) were quite possessive... even for hobbyist projects that > they gave away for free.

Yup, this is one of those things where the free software movement managed to be surprisingly influential, even _before_ open source proper was a thing. People who were committed to releasing freeware stuff, with no delusions about ever selling it commercially (even as indie "shareware") started making their source code available and using free software licenses, often "share alike"/"copyleft" ones. Even Linux itself went down that very path, in fact.

</comment></comment></comment></comment><comment><USER42> Thank you for posting this. While the software creator might be eccentric, the software works great.

</comment><comment><USER25> If you use the software you can email him and ask for his Capterra review link. Capterra is giving out $10 USD gift cards for reviews on his software.

</comment><comment><USER43> As I've grown older (mid 30s now), I've noticed over time that I have begun to strongly prefer lightweight, minimal, focused, efficient things in all sorts of areas of life, including software.

For a while I was in the "lol can't believe this business still uses a DOS program!" camp... but that knee-jerk reaction has faded and I'm completely on the other end now. I'm not anti new technologies, but I am skeptical that they are ultimately always better than what preceded them.

There is so much we have that is "new" that feels far worse than what we had before. Smart TVs, bloated/slow software, etc.

The design side of my brain still feels like even just a few lines of CSS could probably spruce up the site for this software (just in terms of colors/font), but even then, is it really necessary? He likes it the way it is, why not just keep it that way.

</comment><comment><USER44> Can this run on a Raspberry Pi via DOS emulation?

<comment><USER15> [http://keyhut.com/64bit.htm](http://keyhut.com/64bit.htm) follow these instructions except you are running a Raspi, not Win64.

</comment></comment><comment><USER45> Core POS is another fun one to check out (it even does credit, debit & EBT)

[https://www.core-pos.com/](https://www.core-pos.com/)

<comment><USER26> There is something much more charming and interesting about KeyPOS. Not that one is better than the other, or more up-to-date, but... KeyPOS is written in QBASIC, looks like it's from the 90s (it is), and the author is self- deprecating but not so much that it's annoying.

... plus it's not making you install a web server and isn't an Electron app. I thought we all collectively hated Electron.

> CORE is primarily a web-based, PHP+MySQL application. There are a few C# > pieces most of which are Mono-compatible.

> This is an ElectronJS based app that turns CORE's lane into a desktop app. > Apache, MySQL, etc are all still required. This app just takes the place of > the web browser. Why?

<comment><USER46> I'll guess for them, cause I do it for our POS but it's necessary to be "on the box" to control serial ports and print w/o prompt. Think scanners and receipt printers.

<comment><USER12> Yeah. The POS system I worked on used a small local web server for the browser to control the drawer and such, but it's a more complex setup than getting the webapp itself to do that.

If one is okay with a web POS, Electron itself seems like a good fit.

</comment></comment></comment></comment><comment><USER47> Is this the templeOS version of a POS system?!

I love it.

<comment><USER48> I think mental diversity in the workplace is something to be encouraged not ostracized. Personally I find both Terry and Dale to be great, well informed reads despite a bit of what someone else labeled self depreciating behaviour.

</comment></comment><comment><USER49> The site of this software looks like it is up since early 1990s... :D

</comment><comment><USER50> i thought it's an open source project

<comment><USER51> The FAQ clearly states it's closed source: [http://keyhut.com/faq.htm#source](http://keyhut.com/faq.htm#source)

"Sorry, but I do not release the source code for any of my software. This is particularly true for the Cash Register program.

The Cash Register program. has many things that must be hidden like the passwords and PIN numbers. It also has things that users must not be able to change like sales and tax amounts and transaction numbers. These things could easily be changed by anyone who has the source code and anyone with the source code could write a program that would change the hidden things and then release it on the internet making my program useless".

</comment></comment><comment><USER52> this brings back memories :') love it. thanks for sharing.</comment>


Our Security, Our Rights - <AUTHOR> https://blog.agilebits.com/2016/12/12/our-security-our-rights/ <comment><AUTHOR> "Please complete the survey and let the Canadian government know you're not willing to weaken your security or give up your privacy. The opportunity to provide feedback ends on Thursday, December 15th."

[https://www.publicsafety.gc.ca/cnt/cnslttns/ntnl- scrt/thm09-...](https://www.publicsafety.gc.ca/cnt/cnslttns/ntnl- scrt/thm09-en.aspx)</comment>


The Pmarca Guide to Career Planning, Part 3: Where to go and why - <AUTHOR> http://blog.pmarca.com/2007/10/the-pmarca-gu-1.html <comment><USER2> One thing he failed to mention, whatever you do, make sure you are in the money "making part of the bussiness".

E.g. If you are tech person, work on a pure technology company, where the product you are making is the money maker. You will be treated much better, as the company will try to maximize your productiviy.

If you are a tech guy, working, let's say in a finance company, where technology is considered as an "expense", then you will never be treat as well, b/c you are less worth to the company, and they will always try to minimise your expense.

<comment><USER3> I learned this when I was working at US Airways in the maintenance half of the company. You wouldn't believe how much money the ancient software being used cost the company, but no one would spend money to upgrade the software because maintenance only cost the company money.

A rarely mentioned difference between the legacy airlines and profitable ones like Southwest is that Southwest is not running operations and maintenance on 70s era mainframe software.

<comment><USER4> I've seen the opposite twice. Rock solid old mainframe systems are replaced just for the sake of replacing them, with poor outcomes.

For the most part I've been impressed with mainframe systems. The old languages suck, but if I had a big IO bound problem with very high reliability requirements I'd give IBM a call.

<comment><USER3> This is why US Airways is screwed... the cost of replacing the mainframe is incredibly high and the cost of not replacing is incredibly high. Meanwhile, Southwest gets to operate with a modern computer system.

</comment></comment></comment></comment><comment><USER3> Biotech sounds like a good industry to get based on pmarca's standards. I'd love to move to the world capital of biotech, but I actually have no idea where it is or if there even is one.

<comment><USER5> Biotech is a huge and broad-ranging field. It could be a really old, staunchy industry (people have been making drugs and making biological modifications since forever), or a brand new thing, depending on your vantage point. You need a lot of specialized equipment. Results are slow. You pretty much need a PhD in order to do any sort of meaningful work in the field. Etc. It really depends on what you mean, but the national capitals for a lot of innovative biotech work in the USA are Bay Area and Boston.

<comment><USER6> Small correction: you need a PhD, several years of post-doctoral work, and a contact on the inside. Even then, after 13+ years of post-secondary education and slave-wage "training," you might very well find yourself un- or under- employed by age 40, because you're considered too expensive or (ironically) too specialized.

There are so many new bio PhDs minted every year that the labor supply is _far_ out-pacing demand. Right now, the big names (I'm lookin' at you, Genentech...) are hiring extremely talented people into glorified lab-tech positions.

In short, biotech is no panacea.

<comment><USER7> "There are so many new bio PhDs minted every year that the labor supply is far out-pacing demand."

If you want a science field where demand far outpaces supply, try geology, with an eye toward either oil or mining. In the oil industry, there are 30,000 qualified geologists to fill 90,000 jobs. My sister's salary offer jumped $10K in the year she delayed entry into the workforce.

She also says that there's a huge software opportunity in geology, because existing software _sucks_. However, you need some pretty specialized domain knowledge, and you'll be competing against Schlumberger and Halliburton. That's great for technical superiority, but you'll probably have difficulty breaking into Halliburton's old-boy network.

</comment></comment></comment></comment><comment><USER8> > hell, people often don't even care who the top filmmaker in New York is, and > quite a lot of films get made out of New York.

Picking nits, I would say that Woody Allen has a claim at that title, and is not exactly a lightweight in the film industry.

<comment><USER9> I thought so too, but apparently not so much:

"As his star waned and box office numbers dwindled, U.S. studios began to demand more control over casting and other major decisions."

<http://www.thestar.com/entertainment/FilmFest/article/256029>

</comment></comment><comment><USER10> So what do you all think are the best, high-growth sub-industries within the current software technology world?

<comment><USER4> Defense, Homeland Security, and Intelligence contracting and product development are huge growth markets. But that's probably not what you have in mind.</comment></comment>


[video] Uber Self-Driving Car Hits Pedestrian - <AUTHOR> https://www.youtube.com/watch?v=dY8xeuZWu5U <comment><USER2> A human could not see the person until it was too late, but shouldn't the sensors on the car have noticed?

<comment><USER3> Looking at a video to guess if a human could have seen her or not does not make sense. Most eyes are vastly superior to this dash-cam.

As for the car, I agree, this was about as basic, trivial test as it gets. Open road, low light conditions (where many sensors shine) and she is walking normal speed.

<comment><USER4> This was really an opportunity for an autonomous car to shine. I actually expect that a Tesla collision detection system would have picked this up and braked (although I'm not 100% how it works on humans vs cars).</comment></comment></comment>


Famed USS Enterprise Takes Its Final Voyage - <AUTHOR> http://www.npr.org/2012/03/10/148375398/famed-uss-enterprise-takes-its-final-voyage

<comment><USER2> "Think they'll build another one?"...

..."Plenty of letters left in the alphabet."</comment>


Ask HN: Cms recommendations for typical small-scale websites? - <AUTHOR> I'm not content with the cms options I know / have worked with (Drupal7+8, Wordpress, Jekyll, Grav,...) and am thinking about starting yet another open-source cms. But maybe I'm simply not aware of good options, so here's what I think a good cms should offer:
- Open-source license
- Widely used programming language
- Good/reasonable code quality (rules out wordpress)
- Reasonably lightweight (rules out drupal8)
- Custom content-types / page-types / entities without 3rd party libraries
- A backend with amazing UX usable for non-tech staff
- Customizable backend users + roles/permissions
- Well documented and thought-through extension architecture
- An api for form creation + handling
- Image handling: Configurable image styles/sizes and responsive images
- Multi-language support built-in
- Export + import of configuration/settings to files and store them in git
- Export + import of all content to files
- Server-side rendering if javascript-based
- Good performance with reasonable development effort
- Fast development cycles
- Flexible enough (with custom extensions) for 99% of small-scale websites
- Great security at every level (no dangerous file permissions needed,...)
To me this reads like a wishlist for a cms which gets out of everyone's way. But having worked profesionally for more than 10 years I have not come across anything that comes even close.
Am I missing some amazing cms's?
update: text formatting <comment><USER2> [https://processwire.com/](https://processwire.com/)</comment>


Writing Your Own Toy Compiler Using Flex, Bison and LLVM (2009) - <AUTHOR> http://gnuu.org/2009/09/18/writing-your-own-toy-compiler/all/1/

<comment><USER2> That's interesting and looks like fun. I'm not sure you can call that writing a compiler, though. It looks like just a front-end to LLVM. But it would give you a taste.

<comment><USER3> It reads source, parses it, creates output. What part of compilation did he leave out?

<comment><USER2> The part that LLVM is doing: code generation, optimization, etc. I don't think writing a whole compiler is a reasonable goal at anywhere near that level of effort. But I just pointed out that it's an exaggeration.

Gcc's architecture is split into front, middle, and back end. This corresponds closely to what Gcc calls the front end, afaik.</comment></comment></comment>


Show HN: Flotilla – Friendly Electronics for Raspberry Pi - <AUTHOR>

This is Jon from Pimoroni. We're a UK hardware start-up that grew from the popularity of our Pibow case for Raspberry Pi. We manufacture all of our products in our workshop in Sheffield, UK.
Over the past year we've really started to set out our stall in the digital Maker world with hobbyist electronics accessories and 28 days ago we launched our biggest project: Flotilla.
Flotilla is a range of smart, friendly, and affordable modules which you connect together to create amazing projects which sense and react to the world around them. Designed to take away the fear and uncertainty from experimenting with the amazing sensors and devices that are available these days.
With a focus on plug and play we've blended smart widgets and even smarter software to make Flotilla friendly for everyone; from complete beginners to savvy Makers.
We chose to launch on Kickstarter as it's a great platform to tell the full story and helps us gauge demand for our first full production run.
You can find out more on our Kickstarter here: http://www.kickstarter.com/projects/pimoroni/flotilla-for-raspberry-pi-making-for-everyone
I'll be around to answer any questions. We have posted some public updates that approach some of technical choices we made - they are worth a read if you're interested! :-) <comment><USER2> This is wonderful! I have a lot of respect for people who tackle hardware projects. Well done for getting your funding well across the line. Some hardware hacking has been on my todo list for a long time, and it's projects like yours which help get lazy bums like mine off my seat! awesome work!

</comment><comment><USER3> Hi Jon, I would like to buy the kit. Where can I find the link to buy it? Will it ship worldwide?

<comment><AUTHOR> Heya! The kits are currently only available via the Kickstarter - we'll be making them available generally after we've shipped all of the Kickstarter units.

<comment><USER3> Thank you for the reply. I will probably buy them soon.</comment></comment></comment>


Ask HN: If deep learning is so effective why dont Boston Dynamics robots use it? - <AUTHOR> <comment><USER2> I think the biggest thing Boston Dynamics are dealing with ( aside from power density ) are improving balance and running algorithms, under the stresses of heavy loads, non-homogenous terrain, and loss of friction.

It's possible to use deep learning for controlling the servo motor positions and torques, the hierarchy of features is then varying levels of abstraction over the set of positions. The most granular layer may be features related to all the torques and positions of the servo, a higher layer may be some combinations of subsets of these, and the highest level may be features akin to the general representation of the spatial position and tension of the limb.

It's quite naturally similar to how human kinetic intelligence and perception works, say you are learning how to dance, you can be aware of the position of all of your limbs simultaneously ( the general pose you are adopting ), or you can be aware of the angle and position of your ankle or your right hip independently ( what your foot is doing ).

I think there could be things to learn from the networks in octopus limbs -- because of their extensive innervation.

</comment><comment><USER3> I don't know the real answer in Boston Dynamics' case. However, in general, the answer is that Deep Learning is just beginning to be integrated into the pipelines of major robotics/reinforcement learning pipelines. The same thing took time in complicated speech recognition pipelines.

Deep learning is great for recognition/classification but robotics is much more.. Deep learning has to coexist with a number of other critical components.

However, there is major and extremely exciting work being demonstrated in the literature art recent conferences on this front. Expect major developments this year

</comment><comment><USER4> I don't know anything about Boston Dynamics Robots, but "Deep Learning" is not a full solution to building robots. Deep Learning architectures may be used for sub-problems that robots need to solve, e.g. image classification, object recognition, or other classifications tasks where hand-designing features is hard and enough data is available.

Robots are a complex system with lots of moving pieces. Often they use some form of reinforcement learning (which in turn may use Deep Learning for estimating rewards) to decide which actions to take.

</comment><comment><USER5> It can be computationally expensive for a robot to use any sorts of deep learning on board for improvement during work.

It takes hours if not days sometimes to train a good scaled model. Then retraining the model could take a quarter of that time, which is too much delay for a robot. However, with linear models things can be easier.

Also, there are very few people who know how to manage DNN or creating neural nets from scratch in a proper required way. Otherwise Boston Dynamics have to stick to one of the existing libraries which wouldn't be ideal.

DNN is amazing for some work that am sure they must be using them already, for example models that can help them with the feature engineering and such.

</comment><comment><USER6> OP: Just curious, how do you know they don't use deep learning?

@opless: Deep learning may be a fad in the press, but there's substance underneath. It's been breaking one accuracy record after another in raw, unstructured media year after year. ImageNet is just one deep convolutional net competing against another. A lot of other ML algorithms have hit a ceiling, and the ceiling is tied to not having enough humans to engineer enough features. DL doesn't have that chokepoint, and it is able to process vast seas of data that other algos have trouble with. Therefore, for many problems, it will continue to win.

</comment><comment><USER7> Deep learning is just a fad.

Throw enough data at your favourite ML algorithm and you'll get better results.

<comment><USER3> Uhm.. no. What is special today about deep learning is the hierarchy of features. Yes, we are talking primarily about CNN's and RNN's trained with SGD TODAY. Yes,the entire catalog of ML techniques are still very interesting. Yes, in the future many of these techniques will be viable in a deep setting. But, no, you don't just get state of the art results by using linear regression or HOG and SIFT SVM's on a big data set.

Hierarchy of features is important.</comment></comment>


Body Ritual Among the Nacirema (1956) [pdf] - <AUTHOR> http://www.sfu.ca/~palys/Miner-1956-BodyRitualAmongTheNacirema.pdf

<comment><USER2> My mother brought a photocopy of this home for me from community college back in ... Probably around 1996 or sixth grade.

It was illuminating. I think one of her long-term goals was to inoculate me against advertising. I guess she more or less succeeded.

<comment><USER3> I know you said "more or less" and I know I'm nitpicking - but the only way to actually inoculate against advertising is to be dead :)

</comment></comment><comment><USER4> The Sacred Rac is another bit of great reading along these lines: [http://www.abstractconcreteworks.com/essays/teaching/Composi...](http://www.abstractconcreteworks.com/essays/teaching/Composition-111/70-c-sacred- rac.html)

</comment><comment><USER5> I always thought of this as an excellent satire of anthropology rather than a criticism of culture.

<comment><USER6> What is your particular criticism of Anthropology as a whole? The point of the article is to express the idea of 'making the familiar strange' or viewing things 'through the looking glass.' If you propose satire because the description sounds too colorful or too foreign to how you would describe it, you have missed the point of taking another's perspective.

<comment><USER5> I gather a bathroom might look like a shrine to the unfamiliar anthropologist, but a bathroom is a bathroom, and the activities therein are not rituals. It's an indefensible and incorrect conclusion.

Words like shrine, ritual, etc. have specific meanings which the author skillfully distorts to make the point, and I take it well, but it also casts doubt on anthropology in general when those words can be so easily misused.

<comment><USER7> > but a bathroom is a bathroom, and the activities therein are not rituals.

Why not? It's only because you bring your own bias of what a ritual is that you don't view bathroom rituals as a ritual. Either that, or you're so steeped in bathroom culture that you fail to understand it as a ritual.

It's as if I said: "A wheel is just a circular object, a shape. It's an indefensible and incorrect conclusion to say that it is a technology."

</comment></comment></comment></comment><comment><USER8> If you enjoyed this, check out David Macauley's 'The Motel of the Mysteries'. This illustrated book describes the interpretation of a motel as excavated by archaeologists in the year 4022: [http://www.amazon.com/Motel-Mysteries-David- Macaulay/dp/0395...](http://www.amazon.com/Motel-Mysteries-David- Macaulay/dp/0395284252)

</comment><comment><AUTHOR> What I also thought was interesting as I was reading it (surprisingly my first time being exposed to this piece) was how strange the rituals described sounded, even though it was supposed to be a lighthearted parody of ordinary life. For example, "When pregnant, women dress so as to hide their condition." A quote comes to mind: "The past is a foreign country: they do things differently there."

</comment><comment><USER9> I remember a social studies teacher reading this to my class in high school, and thinking the language was ostentatious but it all sounded pretty normal (except the stuff about the dentist... and now that I re-read it, I don't remember what I thought seemed wrong about it.)

</comment><comment><USER10> His informant on the secrets of the family shrine is clearly from a perilously lax sect.

</comment><comment><USER11> This was the first thing we read in freshman World Cultures class in high school -- the context was to make us aware of our own ethnocentric bias when studying "other" cultures.

</comment><comment><USER12> There was a point in my life when reading something like this, I would have thought, "Silly Americans." Now I think, "Silly anthropologists."

<comment><USER13> This story was introduced to me in high school to illustrate historiography, so I get what you mean.</comment></comment>


Tech-support scammers know everything about my computer, Dell customer says - <AUTHOR> https://arstechnica.com/information-technology/2018/07/ongoing-scam-is-still-stoking-concerns-dell-customer-data-was-breached/ <comment><AUTHOR> This 2016 story found many more people experiencing the same thing -- and has comments from more people who've had the same problem over the last two years.

[http://www.10zenmonkeys.com/2016/01/04/dell-computers-has- be...](http://www.10zenmonkeys.com/2016/01/04/dell-computers-has-been-hacked/)

It suggests another possibility: that scammers are simply getting hired BY Dell, and then supplementing their hourly wage by trying to con Dell's customers out of hundreds of dollars more.

<comment><USER2> > that scammers are simply getting hired BY Dell, and then supplementing their > hourly wage by trying to con Dell's customers out of hundreds of dollars > more.

This, I've bought Dells in the past and one Indian based sales rep charged my payment card for an additional amount, I wonder if they expected me to not spot the extra charge but the card company refunded it. Thing is people deal with call centres so its easier as a criminal to join a large multinational company and operate from within as we assume big companies know what they are doing. Other problem is Intel Vpro/AMT is supplied in a lot of Dell equipment and its switched on by default. Even now, despite it being disabled, its not disabled as its 169992 port is showing up in ipv6 port scans. Intel really have created a hackers paradise with vPro/AMT.

<comment><USER3> Likely by design.

</comment></comment></comment><comment><USER4> This has been going on for a while. Dell's customer service records were stolen. I thought this was fairly well known.

<comment><USER5> Did not know that. Googling it, it doesn't look small. Makes me realize that I miss the days when I could slap together a PC myself with parts I bought myself. Really too bad we can't do that with laptops.

<comment><USER6> You should look into barebone laptops.

</comment></comment></comment><comment><USER7> Scammers have had access to Dell's customer service databases for upwards of like 3 years. I get the calls periodically and once spoke with someone from Dell's security dept. about it. It's not clear whether the databases are current or outdated, though, and it's not clear how they got them. It's definitely not as narrow as 'data from Windows based suport software' or anything, because in my case I get calls from "dell support" claiming my _4k monitor_ has a virus. They seem to have a full support registry (my monitor is in the database because I had to RMA it).

Sadly the nature of telecom security in the US means it's very hard to actually trace it back to them - the caller ID is always forged. As far as I know from speaking to Dell security staff they can't do anything without an unmasked number. If you get a call from the scammers try to get them to give you a callback number, because if it works it can be subpoenaed!

<comment><USER8> These are Indian (and other) call center employees who contract as support for Dell (and others) during the day and then use their access and company data after hours for some extra buck.

It has been going on for years, there was even an interview with one of these guys published - basically they do it because they would be stupid not to. It is essentially free money and the chances of getting caught are tiny. And even then the worst that will happen is that you get fired - and promptly re-hired by another call center operator.

This is very much Dell's fault for outsourcing English-speaking (it is not a problem for other languages because it is much harder to find e.g. French or German speakers in those cheap labor countries) to the lowest bidder in India and elsewhere.

<comment><USER9> It does happen in the west as well I remember being briefed about a BT call centre where crims would hang out in a nearby underpass and try and get staff to get information.

I did joke with my opposite number in Cellnet (o2) who was ex 2 Para and in the Territorial SAS about taking direct action :-)

</comment></comment></comment><comment><USER10> So either Dell got hacked and they didn't notice, or they got hacked and didn't report it... Nice

<comment><USER2> There is no legal requirement in many countries for a company to report it has been hacked and even if there were, if they dont spot the hack how can they report it? See No Evil, Hear No Evil, Speak No Evil, problem solved. Beside with so many global businesses employing the best from around the world, how do these companies know they are not employing spooks with excellent fabricated grades? It might explain how Microsofts Win10 source code their crown jewels, was leaked online.

<comment><USER11> GPDR or whatever it's called requires it. So pretty much the entirety of the EU... Or companies with offices in the EU ... So if you're an EU citizen, you should have been notified by law.

</comment></comment></comment><comment><USER12> Had this happen to me a few years back as well: [https://b3n.org/dell-hacked- watch-out-for-social-engineering...](https://b3n.org/dell-hacked-watch-out- for-social-engineering-scams/) so far Dell wasn't sent any communication my way to indicate they've been hacked.

</comment><comment><USER13> I'm guessing that these customers are running Windows. And very likely as delivered by Dell. Might Dell have bundled a service that provides support information to Dell tech support? And might the scammers be exploiting that service, perhaps through an authentication weakness, without any customer data taken directly from Dell?

<comment><USER14> They outsource their tech support to the lowest bidder, mostly in difficult to monitor overseas offices. I'd say the most likely scenario is that underpaid Dell employees are just using their official access to do the scams or pass the information along to outside scammers.

<comment><USER15> I received the first call after I had a hardware issue with my laptop serviced on site. The service guy was just a random contractor, so when the call happened my immediate thought was "ah, somebody like that dude just vacuumed up all the customer data." Because, you know, big companies are really great at building secure internal software when chasing the cheapest dollar. </s>

</comment></comment></comment><comment><USER16> I thought there were laws now requiring a declaration to the FTC of this kind of information loss, with penalties?

<comment><USER17> Isn't the typical "penalty" a year of free credit monitoring offered to the customer? (as if that does anything...you're stuck with most Personally- Identifying-Information for life and now it is already in the wild...)

</comment></comment><comment><USER18> Yes, been reported for years, I've been on the receiving end of such a call, and they knew the service tag of the computer.

</comment><comment><USER19> Could it be that a reseller of Dell has been hacked someone stole the database and the data leak contains Service Tags, serial numbers?

It sounds like it could be either a data leak or a software security bug. This is just guesses.

</comment><comment><USER20> I own a Dell Laptop and I've experienced this same phone call at least a dozen times. Its always someone with a thick indian accent as well.

They tell me my computer is compromised. It happened most frequently during news of Meltdown and Spectre, probably hoping to use predatory tactics on people who don't know any better.

I asked them to validate the information. They had my serial tag number, my purchase date, the model, my address, my fullname last name, etc. I bought this unit from bestbuy, I don't ever actually remember entering this information in. It might have been the dell bloatware installed on the PC, or information bestbuy gave to dell. This was 2013, I've gotten over dozens of phone calls since then

I remember distinctly playing the con-man and really seeing how much information they wanted. It was always "Sir, let me help you fix your computer its urgent your computer is h4ck3d". I never gave them access to my computer, but I did do one screensharing session out of sheer curiosity. He would have a convincing story about telling me to go to the event manager, point at some random unrelated item, tell me how come I've never noticed that before and spin a convincing story about my computer being compromised. He would have me run some basic terminal commands, I can't recall which ones, but it involved things like _ipconfig_ among other things. Then we would go on some DNS tracing tools online, some were actually legitimate I checked the domain name on my other computer while this session was live.

I pretended to be gullible and naive so he would take the bait. I was brought to some scam site. I can't remember anymore what it was. But it was like a marketing ad agency, except it was clearly poorly designed with UX clearly designed by someone overseas (with proper ingrammer and such), and they sold prepaid hourly packages for "tech support" whatever that meant. Probably, it was actual overly priced tech support with blackmailing mixed on the side, and selling it to black data markets for creditcard theft. I didn't risk it venturing further

 _I have another whole story unrelated to this as well from company checks scams & Nigerian Princes that I personally experienced_

I just ask them one simple question. Please email me an official confirmation via "email@example.com" to validate everything stated on this phonecall. They never did. That's how I validate all phony calls, but normally I just hang up and look for the direct number on the official dell website.

I strongly considered running a Lenny anti-telemarketing chatbot, but I ended up just installing an app called "Should I answer?" to determine legitimacy of calls. Now I just straight don't answer calls I don't recognize anymore, I always make an effort to add contact information of people I care about. Calls can be spoofed for local numbers, and I have a voicemail. If it was important, a voicemail would be left.

Controversally, I find the data market to be interesting. I keep track of which companies have sold my data where, via something akin to honeypots using specific appended email addresses. There's a good reddit article here [https://www.reddit.com/r/LifeProTips/comments/45k8f7/lpt_whe...](https://www.reddit.com/r/LifeProTips/comments/45k8f7/lpt_when_providing_your_email_to_other_sites/) , it doesn't work all the time but I have different email addresses for different purposes now.</comment>


Ask HN: Setup for JavaScript desktop app - <AUTHOR>

It's nearly mid 2015 and Javascript is steaming ahead. What setup (platform/library combo) would you use to develop a desktop-friendly Javascript application that facilitates composability over convention (i.e. easy to add own widgets without getting lost in some large object and configuration hierarchy) without any need to be backwards compatible? "Desktop friendly" in this instance refers to running in a node-webkit environment or comparable setup.
I'm quite lost in the jungle of options and looking for anecdotal evidence of technical quality and long term (ahem) project maintainability. Perhaps most of all I'm looking for some best practice no-nonsense conventions that help to maintain a Javascript product alive. It's a bit difficult for a software engineer with lots of desktop but only little web experience to figure out what is actually important and valuable software engineering wise.
I don't mind writing my own widgets etc. but I would love to know how to maximize the platform interface I can cover with as little work as possible. If there is some weird combo you've found usefull I would love to hear about it as well. Erlang server serving a desktop gui to an embedded HTML5 renderer? If it works, tell me about it! I don't mind heterogenous language environments just as long as the individual components are supported on the Win/Linux/OsX desktop trio.
Edit: Fix typos. <comment><USER2> Try electron [http://electron.atom.io/](http://electron.atom.io/) [https://github.com/atom/electron](https://github.com/atom/electron)</comment>


Using AngularJS at Localytics - <AUTHOR> http://www.localytics.com/blog/2013/angularjs-at-localytics/ This is the story of how we rewrote our Backbone-powered web application in AngularJS, using nearly half the lines of code.  (It is a love story.) <comment><USER2> Anyone thinking they made a mistake using Backbone, please read this: I've been using backbone for about 1 month, refactoring a huge jQuery spaghetti project, and I have few observations:

1) If you have a new project, I would go with Angular (or even Ember if you are from a Rails stack)

2) If you want to refactor an existing one, check Backbone, it might be a bit less causing a rewrite rather than a refactor

My tips if you still choose backbone:

\- learn it first inside and out, spend at least 2 days doing any tutorial out there, even if it's a few dollars (code school, peepcode, tutsplus etc)

\- make sure you learn 1.0, older examples might be confusing

\- read the backbonejs.org documentation from start to end, and read the annotated source, especially read the FAQs and also read the github issues, jashkenas (the author) is sometimes responding himself

\- I tried to avoid any plugins at first (no Marionette, deep model, BB- relational etc) if you see you need too many plugins, just ask youself if it's worth it, you might want to give Angular (or even Ember) a chance. I found out that for anything that looks hard, there is a way to do it in Backbone the "backbone way"

\- Last: remember that Backbone is simply helping you get code from the form of document on load God function with tons of event listeners, that trigger ajax calls, that trigger dom manipulation, to about the same code, but in models and views, so you can make sense of all of it, that's all.

Yes, you need to clean up your listeners, and when using the 1.0 listenTo and stopListening (which are automatically called when you remove a view or destroy a model) then you are going to be ok with the zombies.

Backbone taught me a lot of JavaScript, it was more perhaps harder than Angular but the code is readable to anyone without even learning backbone, it just makes sense

so don't expect Backbone to do any magic, it doesn't, but it is still a very relevant and valuable utility library, and I think it's a must have step in any front end developer's life to do at least one BB app before moving to Ember or Angular (just my humble opinion)

<comment><USER3> Backbone has taught me a lot too, I like that it doesn't do any magic. Angular is pretty amazing though at how simple it is to do things with, I'm a bit worried about the magic part. What happens when things start growing and the magic breaks, do you have to read the code base to figure out where it went south? I started playing around with ember too. It's a bit tricky, I found I had to compile it to get it to work, the starter kit wasn't cutting the mustard for me.

</comment></comment><comment><USER4> For those commenting on the poor quality of Angular's documentation (a complaint I share), check out John Lindquist's videos at <http://egghead.io/> . They're not comprehensive, but John spends a great deal of time explaining the nuances of directives, especially isolate scopes and transclusion and his explanations are clear and intuitive. Prior to finding John's videos, I watched all of the "official" Angular videos which I found more often frustrating than illuminating, but John set me straight. Can't recommend enough.

And if you're struggling to ramp up on Angular, I would recommend sticking it out. The learning curve is steep (or is that gradual?--I never understood this analogy), but once it clicks, your productivity will go through the roof. Angular has redefined what I mean when I say "rapid prototyping."

<comment><USER5> I couldn't get your link to work, but it appears that his egghead.io videos are on his youtube channel.

<http://www.youtube.com/user/johnlindquist>

<comment><USER6> Mike, thanks for the link. I just asked about egghead being down.

</comment></comment></comment><comment><USER7> _We used to write things like_

_Then we realized it was bad to couple presentation and behavior, so we made our Javascript unobtrusive, keeping our templates clean. But now we're back at it again, writing_

        .

_Have we learned nothing?_

\---

This seems like a good point that I can't refute - anyone?

<comment><USER8> Honestly, there's not a huge amount of difference between

      Show Help

And

      Show Help

I mean, HTML has behavior in it. A link in itself is "behavior": when you click this tag, go to the page defined in the src attribute. So, as the author says, it's not really a bad thing that templates have behavior in them. In Ember.js, for example, you have an {{action}} handler that is essentially the same as ng-click - "run a function on the controller when this is clicked."

<comment><USER9> You don't need the src="text/javascript". Only  is required.

<comment><USER8> Heh, I meant to specify "type" and not "src", but you're right regardless.

</comment></comment></comment></comment><comment><USER10> My angular story:

My team was at a similar crossroads a few months back when trying to decide which javascript framework to pick for our mobile app. It came down to Backbone, Angular, and CanJS (because we had previously used JavascriptMVC on a project). It really came down to Backbone vs. Angular and we were leaning heavily towards Backbone. We all built demos using each of the three frameworks.

I was the Angular advocate and after having experienced incredible joy creating my demo I was desperate to get the rest of the team on board. After much debate we were leaning towards backbone, until that is, I asked "how would you go about making sure your views are updated and your forms validated". After we walked through the work that would be needed to be done maintaining the view state in real-time on a backbone app, and a few other examples like retrieval of form data or validation of forms, it became clear we'd need to write a lot more DOM manipulation glue-code using Backbone than we would with Angular.

In the end, this was what pushed us over to the Angular side. The focus on testing and the dependency injection throughout was another huge selling point for us. And frankly, it wasn't clear to us how a Backbone app should be structured. In fact, that variability appeared to be one of the main selling points of the framework but it ended up paralyzing us with choice. Being first time Backbone developers we weren't sure we could ever feel confident knowing we were following best practices.

</comment><comment><USER11> My experience with Angular.js was not that good though. May be I am real dumb, I can't see anyone with similar experience. I was totally frustrated with the amount of things I had to handle to bind my backend API. And also there were several issues like $scope.variables going wild. In short, it was a total mess in my case. I rather decided to roll out with Jquery instead. The code got totally cluttered I accept, but Angular.js frustrated to the point that 'elegant code' was least of my concerns, I just wanted to finish it somehow and run away and never look back.

<comment><USER12> Were you mixing dom manipulation into your controllers? That can make things go haywire because they happen outside the standard compile and link phase. Sometimes it works and sometimes it doesn't. Using the directives (which I admit are super confusing at first) can alleviate this issue because they are executed in the normal Angular update cycle so everything happens in the correct order.

</comment></comment><comment><USER13> Stickit author, here. To be clear, stickit will not make your "zombie views grow fatter" or contribute to any memory problems. In fact, stickit cleans up all of its model and view bindings automatically on view.remove(), and provides an optional api for manual cleaning view.unstickit().

The blog author's problem was a brief bug that was introduced and fixed between releases for the rare use case when a data-bound view is re-rendered. We fixed this problem and the author confirmed that the patch was "working great."

<https://github.com/NYTimes/backbone.stickit/issues/66>

So even though the problem was fixed for the blog author before he moved onto angular, he still claims that stickit causes memory problems. I guess a false claim like that makes the story of moving to a new framework more entertaining.

Another claim from the blog author is that stickit makes it hard to use third- party plugins like Chosen. Around the same time he filed the github issue, we were finishing and getting ready to release "handlers" and a new "initialize" binding which give you the ability to create global handlers for setting these kinds of bindings up. More on handlers here:

<http://nytimes.github.io/backbone.stickit/#custom-handlers>

... and an example of setting up a global handler for Chosen:

<http://jsfiddle.net/px6UP/28/>

</comment><comment><USER14> I decided to use AngularJS on a side project of mine, after considering Backbone and EmberJS. I am not a JS expert, but I am pretty sure AngularJS will be an industry standard in a few years.

<comment><USER15> I think as mobile becomes more dominant angular will have to find a way to work tighter with the closure compiler in advanced mode (or something akin) to remain relevant.

<comment><USER16> why?

<comment><USER17> I'm not sure why the OP links advance compiling specifically to mobile. It's good to have smaller, faster code on any platform that isn't quad Xeon with a fiber connection.

The Closure ecosystem has their own templates (soy) which are compiled in Advance Mode (with renaming) by the Closure Compiler. It's not possible to do that with Angular attribute's which reference JS names.

See this conversation about Angular support in Closure: [https://groups.google.com/forum/#!msg/angular/hePiqQA- MCI/uT...](https://groups.google.com/forum/#!msg/angular/hePiqQA- MCI/uTirEtNLahwJ)

<comment><USER15> you touched on several of the problems i forsee. angular parses templates client side, which is expensive IMO, smaller better optimised code with proper dead code elimination leads to a faster experience. as for mobile, i use it as the final use case, where the bad decisions which you make get amplified the most.

</comment></comment></comment></comment></comment><comment><USER18> I've been using AngularJS for a few months on a side project of mine and it greatly helped move a lot of the code complexity to the client side. Hooking it up with a REST API was simple and got rid of almost all of the server side rendering.

Here's a particularly useful sample app, implemented in both Angular as well as Backbone.

[http://coenraets.org/blog/2012/02/sample-application-with- an...](http://coenraets.org/blog/2012/02/sample-application-with-angular-js/)

<comment><USER19> This post is is so popular, my fork from half a year ago (very few additions), still gets starred approx. once a week.

</comment></comment><comment><USER20> > _Working with isolate scope and transclusion is tough, and Angular's > documentation on the subject doesn't make it easier. We found that before > jumping into writing an ambitious directive, it's best to start by not > writing a directive — just using normal templates and controllers — and then > roll that code into a directive once you really figure out what your > requirements are, or once you start repeating yourself.._

Directives are, IMO, the most powerful parts of angular. They're also the most confusing. OP makes a great suggestion here that I'd recommend as well: Start with a normal template & controller then refactor into a directive later. In my experience, I've found that it's been useful to focus less on the DOM manipulation that needs to take place and more on the where the data collected needs to flow. In this way the directive just becomes the "glue" between a tiny area of the DOM and a parent controller and/or scope.

I guess you could liken them to the behavior/logic you'd have in a backbone view? That may be a stretch though. Powerful nonetheless.

</comment><comment><USER21> We've had a similar experience at <https://starthq.com>. One thing we noticed when writing directives is that it's often faster and easier to implement them from scratch rather than wrapping a jQuery plugin. Also, we've pushed a couple of fixes upstream and had them appear in a stable release within a few weeks due to the quick release cycle.

</comment><comment><USER22> Love AngularJS. My grips so far :

\- Directives : I'm no JS ninja so even after those egghead.io I'm still lost, but it gets better !

\- jQuery : Angular kinda want to kill it whereas I think it should play nicer with it, especially for plugins. AngularUI jQuery Passthrough (or custom directives) should not be necessary IMO.

\- Expressions : they are powerful but there is almost no documentation about them and I feel like an idiot sometimes. Thank god for Stack Overflow ... (where in the Angular doc can I learn that I can do ng-click="[action_1, action_n]" ?).

\- Views helpers are usually put in the controller. That doesn't seem the best approach, or maybe people put them in a service and inject it in the scope from the controller ?

\- Providing initial data : I usually put data in javascript variables and get them in the controller and assign them to services or the scope. Is there a better way ?

</comment><comment><USER9> "Directives are hard. Working with isolate scope and transclusion is tough, and Angular's documentation on the subject doesn't make it easier. We found that before jumping into writing an ambitious directive, it's best to start by not writing a directive — just using normal templates and controllers"

I have the same experience. I also tend to do the occasional DOM manipulation from the controller, using jQuery. I know it's frowned upon in the Angular community, but it at least allows me to experiment and, as the quote implies, figure out what I want before I know exactly what I need.

That being said, I'm starting to use directives more and more, and they are certainly a powerful tool that cannot be ignored if you are going to build an Angular app.

</comment><comment><USER23> Our team in finishing a project to refactor a custom form builder in our app (similar to WuFoo) and our struggles sound very similar. We are adding plugins like Backbone Relational to fight with issues, and fighting issues with the plugins... And in fact, our tech lead has actually forked Backbone (still unsure as to the exact reason). At any rate, we have shattered (what used to be) a ~1,000 line jQuery/JavaScript file into nearly 130 individual fragments of models, views, collections, templates, and helpers. Throw RequireJS into the mix... We can't be Doing It Right (TM), can we? Or are we, and I just don't get it?

[edit] spelling

</comment><comment><USER24> Nice, thorough write-up. For people considering Backbone, though, I will say that I've written several non-trivial Backbone apps, and negotiating the form view re-rendering problem is not that difficult and certainly does not require an extra data binding library. Also I've had no problem integrating the Chose plugin into Backbone apps.

Dealing with deeply nested views can still be a bit of a headache, but I prefer the extra control over view rendering that I get with Backbone vs. soem other frameworks (I have no experience with Angular).

</comment><comment><USER25> Good write up! I've been on the look out for examples of larger migrations from Backbone to Angular. I'm about to tackle one myself, but wanted to make sure it was the right decision before diving in.

</comment><comment><USER26> I have been working in the past few months with angular and have nothing but good things to say other than complaints about the docs and the complexity of directives/transclusion. He doesn't mention it but the coolest thing for me so far is the transparent use of promises in the templates. The unit testing support with testacular/karma is good as well, but I'm not sold on the e2e testing with angular-mocks, would like to hear more on this subject.

</comment><comment><USER27> Is it just me or is Backbone just not that hard? I don't quite understand their data binding situation. You should not need to look at the DOM for elements with specific IDs, unless you have truly singular views at the top level.

I get the feeling that their form re-rendering headaches had to do with parent views that were listening to unnecessary events, like a collection view that listens to individual model events.

</comment><comment><USER28> We've got a very large app built on Angular, and it has been a real pleasure to work with. The directives are the killer feature for me. There are some definite esoteric bits that can be puzzling at first, but after you crest the hump it is rad. I love it.

</comment><comment><USER29> I'm a fan of Knockout.js. Has anyone used both and can comment on their merits?

</comment><comment><USER30> Angular is just so sweet

</comment><comment><USER31> i dont know, built this with angular : <http://markme.alwaysdata.net>

it works , i like the DI stuff though i always used my little lib for that before( <https://github.com/Mparaiso/Pimple.js> ) .the 'dirty checking' always felt like a hack , i'm glad Google is working on it with Object.observe. as for the code inside the html, since it is a "scoped" eval with its own dsl it's fine.

But i still use backbone especially for games and non dom related apps.

what matters is choice , and angular is still light weight compared to beasts like Sencha.</comment>


Ask HN: How should I re-negotiate equity with my co-founder? - <AUTHOR>

Started this project together, split the equity equally.
Idea was my co-founders', development work is mine. We still work great together, but he just can't put enough time on the project due to family, other work commitments etc., while my engagement continues to rise.
It's only been 3 months, but I would have worked 3x more and I'm full time on this now. I can clearly see that in future I would probably be handling 90% of the company work while he pitches in <10% of the time, as we keep on adding new features. The problem aggravates if we grow in numbers: it won't be fair to new people that someone who is working much lesser on the project has all the equity.
So this seems like a situation many would have been in. How do you suggest I handle this? <comment><USER2> If you've been on Hacker News long enough, it should have been pounded into your head by now that idea means jack squat in the long run. I've been in this situation now a few times to know now that a vesting agreement is key. Do you have that?

Having cofounders is a touchy subject and any problems arising between you two now is pretty much a guarantee that it will destroy the company in the future. If everything has already been signed and there are no vesting agreements in place, the only way to do this is to buy out your co-founder to avoid any future legal issues. Or you could dilute your co-founder as you bring on outside investment (e.g. Facebook). Either way, there will be some emotion involved. I would shoot for buying out your co-founder in some way, perhaps with a loan of some sort. It's the cleanest and most quickfire solution, especially with you so invested in it. Of course, this is highly dependent on the assumption that you are passionate about what the company is doing and that there is still a great opportunity here.

Props to you though on choosing to deal with the situation now rather than later. Good luck!

</comment><comment><USER3> You probably need to work out a lot more than just this. Are you going to take outside funding? How does that dilute your equity? Are you going to take a salary first? before profits come out? are you going to give equity to early first employees? when do they become vested?

</comment><comment><USER3> Also remember as soon as you add an employee and give them a little equity you both become minority owners. This means you and the other person control the company, but that also means if they decide to gang up on you your screwed instead.</comment>


Twitter and Square's Jack Dorsey: Bitcoin Will Be World's Single Currency - <AUTHOR> https://bitcoinmagazine.com/articles/twitter-and-squares-jack-dorsey-bitcoin-will-be-worlds-single-currency/#1521673101 <comment><USER2> Very strange comment. Currency is a creation of governments. It's not something to 'take back' power to be people and so forth. If you want to free people, currency does nothing. Examine our slavery to debt and interest.

If it's not valid to redeem public debts, it can't become the country much less world currency.

I get the excitement over blockchain technology, its terrific, but I don't understand this fantasy where btc rules the world.

Not to mention, a currency that cannot be manipulated in times of crisis is highly dangerous, if you agree with the general global consensus that in emergencies it must be done. That's what central banks ARE.</comment>


The only web-programming using python tutorial I have found.  - <AUTHOR> http://webpython.codepoint.net/cgi_cookie

<comment><USER2> Or have a look at <http://www.cherrypy.org/wiki/CherryPyTutorial>

_CherryPy is a pythonic, object-oriented HTTP framework. It provides the foundation over which complex web-based applications can be written, with little or no knowledge of the underlying protocols. CherryPy allows developers to build web applications in much the same way they would build any other object-oriented Python program. This usually results in smaller source code developed in less time.

CherryPy does its best to stay out of the way between the programmer and the problem. CherryPy applications are usually very simple. It works out of the box; default behavior is sensible enough to allow use without extensive setup or customization. The embedded web server allows one to deploy web applications anywhere Python is installed. In short, CherryPy is as pythonic as it gets.

..._

</comment><comment><USER3> Yeah you REALLY didn't look very hard then.

</comment><comment><USER4> Tutorial with web2py <http://www.web2py.com/book/default/chapter/03>

</comment><comment><USER5> "python web tutorial" or "python cgi" comes back with a lot of them.

<comment><USER6> or even Django, which after-all is just a framework to python's language..

</comment></comment><comment><USER7> <http://pythonpaste.org/webob/do-it-yourself.html>

_Sometimes Python is accused of having too many web frameworks. And it's true, there are a lot. That said, I think writing a framework is a useful exercise. It doesn't let you skip over too much without understanding it. It removes the magic. So even if you go on to use another existing framework (which I'd probably advise you do), you'll be able to understand it better if you've written something like it on your own.

This tutorial shows you how to create a web framework of your own, using WSGI and WebOb. No other libraries will be used._</comment>