Our way to rethink PaaS with devops automation - <AUTHOR> http://www.visualops.io <comment><USER3> An interesting approach; I'm however skeptic as to how well DevOps lends itself to be visualized. And even if the techniques and products do now, futures ones may not, or require a lot of work to bring into this.

 _> VisualOps is created with a goal of both "easy to understand" and "total control"._

I don't know, this seems almost too ambitious to me. I'm wary of car analogies, but alas: While everyone can drive a car, does this yet qualify as "total control"? Assuming I'd like to control everything about my engine - resulting in a shitload of controls on my dashboard, is that car still easy to understand (to me yes, to my mum, - or a newcomer for that matter - <USER2> so)? And by hiding the additional controls behind a "ADVANCED CONTROLS" cover kinda defeats the "easy to understand" part, how soon until HOWTO's appear whose first instruction is to lift said cover?

I'm sure there are boatloads of loopholes in my analogy, but you get the general idea. Not really sold on the concept, but if somebody can offer insightful comments, I might be convinced. Not easily though.

 _> Complicated data format Even if someone hacked into our servers, took a copy of the data, stole our soure code or laptop, they still cannot get your information._

Remove this sentence ASAP. It's an insult to everyone with at least a basic grasp on good IT and security principles. wtf; just because it's supposedly _complicated_ a determined adversary cannot break the code?

<comment><USER4> I missed that sentence, but agreed that it should be removed. I don't think "complicated data format" is a good selling point. Quite the opposite really.

<comment><AUTHOR> Hi Michael, We are not sure what you means by "I don't think "complicated data format" is a good selling point.", could you tell us more? Thanks!

<comment><USER4> The FAQ suggests that the fact you use a complicated data format is a good thing and beneficial to security. I really doubt this is true.

<comment><AUTHOR> Right, we have modified this part. By "complicated data format", we actually meant strong encryption algorithm. Sorry for the confusion.

<comment><USER3> Reading this, and skimming over your other comments I suspect that english isn't really your first or second language...consider asking a friend with a english cert above FCE level to help you out with translations. No need for a professional service, but a wee bit better than currently might help you.

Because...between "complicated data format" and "strong encryption algorithm", there are not just worlds, but universes. Subsequently, this correction also sounds suspicious to somebody who assumes you are fluent in english (or is used to it).

<comment><AUTHOR> We'll do, thanks for the advice :)

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> There's a ton of software that's been built to do a lot of this in the really unsexy / "not very hot at all" enterprise software space with the sticker label of cloud provisioning / application deployment automation where everyone has spent a long time trying to visualize deploying groups of machines out to suit their oftentimes not very technical stakeholders (yes, DC managers that aren't actually that technical is extremely common in the Fortune 500). Examples: VMware vCloud Director + VCOps + Orchestrator, CA's AppLogic, and even HP's Cloud Service Automation. All of these are directly in the value proposition category of "automate your provisioning and monitoring / ops of your systems." Almost all of them involve some form of a visual programming language with drag 'n drop capabilities just the same as your UI shows and with the usual hallmarks of small DSLs that creep into the components.

I have to ask where you guys think you fit into the market between start-up style home-grown devops stacks (expensive in labor and time instead of capex) and these 7-figure products (capex-heavy, but OOTB solution in theory) when so much has already been done and acquired away by pretty much every large software vendor.

<comment><AUTHOR> I agree the concept isn't totally new, and has been seen somewhere else. However, despite of various feature differences, we think we made the efforts to distinguish ourselves in two parts: 1. we try very hard to simply the process to define a complex, multi-tier template; 2. VisualOps is a service, not an editor or designing tool. we continuously managed your app once launched to make sure it runs in the defined state.

</comment></comment><comment><USER6> Isn't this whole approach based on the (imho wrong) idea that "DevOps" means developers [trying] to manage servers/infra?

IMO DevOps is about smarter Ops using "development" (i.e. automation, reproducible system config systems) rather than ad-hoc management of individual servers.

To me this reminds me a lot of some MongoDB fans - they have no real _need_ for Mongo, they just don't want/know how to define a usable schema for a relational DB.

<comment><AUTHOR> Hi Stephen, Very interesting comment here. We do think that DevOps has different definitions, and in our opinion, none is really wrong, as all comes back to the same idea. Let me explain this. DevOps is all about reducing the gap between development and operations. This is done allowing "smarter ops" to use "development", but also helping developers to realise some operations. VisualOps is made for both sides. We hope that VisualOps could help developers who don't want to spend too much time on operations, but also, we created VisualOps to act like a programmable configuration manager (like Chef, Puppet ...).

<comment><USER6> I understand your point but personally a developer who wants more control over operations, but isn't able/willing to learn to write recipies/config packages/what-have-you and relies on a visual tool like this is going to raise alarm bells for me.

<comment><USER3> A developer relying on (current) visual tools isn't really a developer to me anyway. But I'm totally willing to give in here; the idea of visual programming has been around longer than me (search wikipedia for a start), and let's not forget that in digital circuitry visual tools are used (and _are of use_ ) a lot.

<comment><AUTHOR> Indeed! Visual tools makes the approach more "human". Simplified tools don't mean dummy tools. It's actually the total opposite: a developer forced to do deal with Ops is less likely to do some mistakes using a simpler tool, than trying to deal that things that he doesn't (and doesn't want to) understand. I understand the other point of view, that we better start by learning the most complicated things (I've started to learn programming with C and ASM, although I'm a 90s guy), and the whole challenge we have with VisualOps is to make the learning and usage easier, without breaking the knowledge.

</comment></comment></comment></comment></comment><comment><USER7> Makes me think of [https://jujucharms.com/](https://jujucharms.com/)

<comment><USER8> Similar by some means, from my point, visualops.io is closer to AWS VPC resources.

</comment></comment><comment><USER9> I am a developer who needs to do AWS sysadmin sometimes and does not have the time to learn Chef, Puppet, etc. So I think I am a target user and I like the concept. I tried it and find it very hard to use.

* Hints or error messages appear in the top banner. This is not obvious. If you moved the messages closer to where I am looking, that would be more helpful. You could simply move the message to the middle of the screen or in some cases pop-up a tooltip next to the component that has the error or hint. It also does not help that the news banner is a similar color to the error message box.

* It is not clear what the blue, green, etc arrows and squares mean. I tried hovering to see if a tooltip appeared with a short description but none did. I think the blue arrows are for networking, but not totally sure.

* I have no clue how to connect any of my instances to the public internet gateway or even if I can. I tried connecting an instance directly and I also tried using an LB.

I don't know if any of my UI suggestions are correct so please take them with a grain of salt. Just trying to give possible ideas that may help. Like I said, I like the concept and I think it has potential. But I think a lot more work is necessary to make it easy to use.

<comment><AUTHOR> Thank you for your comments! We will consider them and try to improve our UI this way. Also, we are working on the realisations of video tutorials, which may help the comprehension during the learning phase.

<comment><USER10> You're missing the most important part of networking with your potential customers. Provide a contact point to the potential customer where he can get help in setting up the instance _today_. It's good that you're incorporating his feedback but why not ask him to contact you and help him set up on your platform. Just a suggestion.

</comment></comment></comment><comment><USER11> This is interesting, but I already have a rather complex app deployed at a fairly large scale and complexity.

I would like too be able to have a tool that will diagram out my infra from access to my AWS console though, that would be interesting. [[EDIT: It looks like it does this.. Ill check out that function just to see what it produces]]

I think this wil work for smaller, less complex implementations/apps, though.

WRT to @roeme's comment > __ _skeptic as to how well DevOps lends itself to be visualized_ __, though; have you seen StackDriver.com?

I swear by it - its farking fantastic for getting visibility into the performance of our cloud.

<comment><AUTHOR> Indeed =) we do provide this functionality. Import as stack/app isn't possible yet, but is in progress. About StackDriver.com, we'll have a look about this!

</comment></comment><comment><USER12> Nice tool. I think it gives a good starting point to understand common topologies ... but beyond that ... I am not sure.

Also, does it export templates to CloudFormation? I'm wary of using a SaaS to manage my infrastructure if it doesn't give me a way to revert to core AWS services.

<comment><AUTHOR> Mi Maslam. Indeed, VisualOps is a good starting point to understand common AWS topologies. However, it goes much further! In fact, VisualOps allows you to configure the software layer of your AWS instances, directly from the IDE! It allows you to define which packages you want on which instance, their configuration, the sources repositories, the scripts to launch, and so on! - Yes, you can export VisualOps stacks to CloudFormation templates. Unfortunately, doing this, the configuration management won't be possible.

</comment></comment><comment><USER13> What exactly is used under the covers for provisioning the AWS resources, cloudformation? If so is it possible to export the cloudformation template after resources are created in the gui? I could see this being extremely useful if that's the case.

<comment><AUTHOR> We use a custom version of Boto (AWS Python API) to provision AWS resources. However, yes, it is possible to export your stacks as CF templates.

</comment></comment><comment><USER14> Would be interesting to hear from them on the rationale of why they chose Salt stack compared to puppet, chef or ansible. I figure they must have given it a good analysis since it seems to be a heavy part of what VisualOps/Madeiera is about.

<comment><AUTHOR> Indeed, this has been a hard decision to make! There are several reasons behind this choice. 1- We think SaltStack is actually taking the right approach of configuration management. Their "states" are easy to understand, and the users don't waste time trying to figure out what does what. 2- We did have thought about Ansible (similar about 1- idea), but their "distribution" approach is different. Indeed, Ansible uses SSH to configure the remote hosts and not a dedicated agent. This is not the was we wanted to take the problem (we are providing or own backend, and using salt only on the agent-side). 3- Even if the technology isn't doing the product, Salt is written in Python. We love Python, and it helped us a lot to integrate their engine in our agent.

</comment></comment><comment><USER15> The idea behind PaaS is to abstract away underlying infrastructure. Here it seems users are managing servers, load balancers and interconnects directly. While very cool, this style of automation is a far cry from PaaS.

<comment><AUTHOR> We think that there is a huge gap between IaaS platforms and PaaS platforms, that had to be filled. PaaS solutions have their users, IaaS also, but many people want to get the ease of use of PaaS services without their restrictions and the customisations possibilities of IaaS solutions without their configuration complexity. VisualOps is aimed to fit to those people, giving a human approach to IaaS solutions.

</comment></comment><comment><USER16> This is very similar to the BlueMix beta from IBM on SoftLayer. [https://ace.ng.bluemix.net/](https://ace.ng.bluemix.net/)

<comment><AUTHOR> We will have a look at this, thanks!

</comment></comment><comment><USER17> Just a quick FYI, on the iPhone, your logo is on top of the nav links making it impossible to open the blog and really hard to click on about or documentation.

<comment><AUTHOR> Thanks for comment! We'll fix this ASAP.

</comment></comment><comment><USER18> Brilliant! This is how I (a developer "forced" to manage a few servers) always wished Puppet would work.

<comment><AUTHOR> Thanks! Don't hesitate to contact with us if you have any question.

</comment></comment><comment><USER19> Will this work with Spot instances? I looked through the documentation but didn't see it mentioned anywhere.

<comment><AUTHOR> Hi Patrick, unfortunately, I'm afraid not at the moment. This is in our roadmap though, stay in touch ;)

</comment></comment><comment><USER20> Cool concept.

Question - Why not use cross account IAM roles instead of asking for API keys?

<comment><AUTHOR> We allow you do use IAM roles to give us access to your AWS account, as explained in the documentation ([http://docs.visualops.io/source/getting- started/aws.html](http://docs.visualops.io/source/getting-started/aws.html))

<comment><USER20> What I am seeing is a straight IAM Role. I meant cross account, so visualops AWS account will be given permission.

[http://docs.aws.amazon.com/IAM/latest/UserGuide/cross- acct-a...](http://docs.aws.amazon.com/IAM/latest/UserGuide/cross-acct- access.html)

<comment><AUTHOR> Cross account IAM access is on our roadmap. You can vote for it on our public roadmap board: [https://trello.com/b/wQdmsmp0/madeira- idea](https://trello.com/b/wQdmsmp0/madeira-idea)

</comment></comment></comment></comment><comment><USER21> beautiful website. want to help you out with a typo i spotted: at the bottom with Ensure, runing should be running.

<comment><AUTHOR> Thanks for letting us know! We'll fix this ASAP.

</comment></comment><comment><USER22> Your homepage is delightful.

<comment><AUTHOR> Thanks you! =)

</comment></comment><comment><USER23> this is what i am looking for.

<comment><AUTHOR> Thanks Frank! Glad we can help =)

</comment></comment><comment><USER24> amazing

<comment><AUTHOR> Thanks!</comment></comment>


Songkick's robots.txt has a few special rules. - <AUTHOR> http://www.songkick.com/robots.txt

<comment><USER2> It's interesting they're disallowing 008. I work at a popular webhost, and we've had problems with this crawler too (It's distributed, and can crawl things a little too fast).

<comment><AUTHOR> Did you notice the bottom 3 rules? Maybe I should resubmit and change the title...</comment></comment>


More U.S. millennials subscribe to video games than traditional pay TV: survey - <AUTHOR> https://www.reuters.com/article/us-usa-videogames-television/more-u-s-millennials-subscribe-to-video-games-than-traditional-pay-tv-survey-idUSKCN1TB2CB <comment><USER2> Subscribe or pirate?</comment>


What's the Best Way to Cover Breaking Events? - <AUTHOR>

For info on Boston, I'm bouncing between searching YouTube, bouncing between news sites, but mostly reading the top comments on aggregators, and relying on those commenters to update with all relevant info. You're also hoping you don't end up in the wrong thread, since there tend to be multiple stories, each with their own followers and upvotes.
There should be a better way to do this, something where everyone can post a quick link, and users could sort and categorize incoming information for later readers.
This is probably what wikinews is supposed to do, but I don't think it has the userbase to really work...
Any ideas? <comment><USER2> DrudgeReport.com (Dislike the guy running it, but it is what it is)

Fox News (same caveat as above)

Twitter (search for "boston" or whatever text snippet will filter what you want, bad SNR but great tidbits of intel)

Flickr (Use same search technique)

Your other social media feeds.

All filtered by common sense and personal calmness.

</comment><comment> VT-Business Not sure what exactly you looking for: This might help though: bloglines.com</comment>


Sex is a Ghetto - <AUTHOR> http://www.calvinfroedge.com/sex-is-a-ghetto/

<comment><USER2> I did not know this:

"Dating sites like OKCupid and Plenty Of Fish ban profiles with sexual content, even when there is no nudity."

I think it is strange that even the dating sites would be hesitant about sex. Sex and dating are closely linked ideas. I do not know anyone, male or female, gay or lesbian or straight, who wants to find a mate but does not want to have sex.

This is both amusing and yet accurate:

"Instead, "sex communities" are created that use code language like "swinging," "tantric experience," and "open love," and meet in virtual secrecy. People flock to online services that promise intimate encounters yet more often simply charge a monthly fee to chat with bots and scam artists. "</comment>


DVDs and Blu-rays will now carry two unskippable government warnings - <AUTHOR> http://arstechnica.com/tech-policy/2012/05/dvds-and-blu-rays-will-now-carry-two-unskippable-government-warnings/

<comment><USER2> I can't imagine how the government could possibly do a better job of encouraging piracy.

<comment><USER3> Oblig. cartoon: <http://i.imgur.com/GxzeV.jpg>

<comment><USER4> You can achieve the same experience by ripping the discs you've bought. The question is do people actually do that?

<comment><USER5> No they don't.

<comment><USER6> Yes, we do.

</comment></comment></comment></comment></comment><comment><USER7> Why are they threatening the people who actually paid for the product?

This feels pretty relevant as well:

<http://i.imgur.com/GxzeV.jpg>

<comment><USER8> Its really strange, I get annoyed each time I put on a dvd for my son. If it at least could remember that I've seen the warnings and the spinning universal 100 times before.

I wrote a blog post in frustration a while back, wishing we would get cookies in the dvd to avoid that. :) [http://text.krona.tm/post/11012559642/bring- cookies-from-the...](http://text.krona.tm/post/11012559642/bring-cookies-from- the-web-to-my-dvd)

</comment></comment><comment><USER9> _As ICE Director John Morton announced in a statement yesterday, "Law enforcement must continue to expand how it combats criminal activity"_

Does anyone else think this is a terrible allocation of resources?

</comment><comment><USER10> I paid for the disc. What are they yelling at _ME_ for?

<comment><USER5> The only explanation I can come up with is that they are targeting the people who are ripping the DVDs for distribution. So 5 people on the whole world. Sounds reasonable :/

<comment><USER7> And I would doubt that anyone who's ripping professionally is unaware of the (potential) legal consequences, should they get caught.

</comment></comment></comment><comment><USER11> I'm sure the consumer will love this. I wonder when(if) these will be added to non-physical media (i.e., Netflix).

<comment><AUTHOR> I was wondering about that myself. I couldn't find a reference to the actual published rules on this, but I wonder why it is limited to just disks. Is it because they're a physical medium, or is it just a matter of time before we have unskippable segments at the start of itunes/amazon/netflix/etc videos as well?

Unfortunately Steve Jobs isn't around anymore to tell them to shove it...

"Will the two screens be shown back to back? Will each screen last for 10 seconds each? Will each screen be unskippable? Yes, yes, and yes."

ugh. I detest the start of watching video on bluray for the warnings already (to be fair, this is also from ads that are usually skippable but still delay proceedings). 10 more seconds on a screen that isn't even for me. Really winning hearts and minds.

</comment></comment><comment><USER12> "We did something. It did not work. Clearly the solution is to do more of it."

What causes people to think like this?

</comment><comment><USER4> People still buy DVDs? How quaint.

</comment><comment><USER13> Yeah, people really needed one more reason to dump DVDs and Blu-Rays.

Thanks, government!</comment>


4 Years Into Our SaaS: Why Bootstrapping Was the Only Logical Choice - <AUTHOR> http://unicornfree.com/2012/4-years-into-our-saas-why-bootstrapping-was-the-only-logical-choice

<comment><AUTHOR> I found this comment interesting, too:

[http://unicornfree.com/2012/4-years-into-our-saas-why- bootst...](http://unicornfree.com/2012/4-years-into-our-saas-why- bootstrapping-was-the-only-logical-choice/comment-page-1/#comment-5464)</comment>


The Unlucky Billionaire – Gotta catch em' all - <AUTHOR> https://medium.com/the-unlucky-billionare/1-gotta-catch-em-all-7154b33e6b36 <comment><USER2> Pokemon Go is AR not VR. Also, I'm sure Zuck is enjoying PGo just like everyone else.

<comment><AUTHOR> Yes it is :)

</comment></comment><comment><USER3> EDIT: Ah, made the connection at the end w/ Zuckerberg. Still don't think this is well written though.

If someone told me a high school student (or even a precocious middle schooler) wrote this, I wouldn't be surprised.

<comment><AUTHOR> I've just tried to write something thats funny and simple to understand. But point noted :)

</comment></comment><comment><USER4> It really irks me, when a sentence has an unnecessary comma in it, it probably should have been a semicolon instead. Bugs, the crap out of me and I can't keep reading anymore!

<comment><USER5> > everybody,

I read that sentence too many times

<comment><AUTHOR> Thanks! Fixed :)

</comment></comment></comment><comment><USER6> > A 10-Part Series that explores the day-to-day life of one of the most > successful Philanthropist, Revolutionary and Futurist of our generation

... well I hope our author "M" has some future-thinking humility as well.

<comment><USER7> This isn't satire?

<comment><USER8> Right? I mean if drubbing you over the head with four foot high walls with a 10 foot metal panel above is more aesthetically pleasing than trees doesn't scream disconnected from reality what does?

<comment><USER9> Yeah that sentence essentially translated as 'build the wall' to me.

</comment></comment></comment></comment><comment><USER10> Very good!

<comment><AUTHOR> Thank you. I plan to make it a weekly or biweekly thing :)</comment></comment>


Eliminating the Call Stack to Save RAM [pdf] - <AUTHOR> http://www.cs.utah.edu/~regehr/papers/lctes062-yang.pdf

<comment><USER2> Amongst those who use Asm regularly this is a fairly well-known technique... in BIOS code pre-memory-initialisation, for example; there is absolutely no RAM available at that point, so even a call stack can't be used, but you can still reuse code by putting the "return address" in a register and then jumping to the common block of code:

        mov sp, ret1
        jmp block
      ret1:
        ...
        mov sp, ret2
        jmp block
      ret2:
        ...
      block:
        ...
        jmp sp

You can even to go somewhere else after that block instead of continuing like a function call would, just by modifying the destination. No recursion is possible with this but I've seen BIOS code do more than one "level" of "calls" by using more "return address" registers (it tends to be BP and SP.)

It's funny to see this technique being rediscovered/reinvented (AFAICS the authors seem to think this "flattening" is an entirely new idea), and somewhat poorly too - there's no need to use switch statements and their associated complexity to map integers back into addresses, when all that's really required is for the "caller" to supply a where-to-go-next address. This is possible on any CPU that has an indirect-jump type of instruction. I've seen this in Z80 and 6502 code, as well as x86; it's present in early PC applications that were handwritten Asm.

[https://sites.google.com/site/pinczakko/pinczakko-s-guide- to...](https://sites.google.com/site/pinczakko/pinczakko-s-guide-to-award- bios-reverse-engineering#Call_Instruction_Peculiarity)

<comment><USER3> "there's no need to use switch statements and their associated complexity to map integers back into addresses, when all that's really required is for the "caller" to supply a where-to-go-next address."

There's nothing quite like implementing an abstraction, then turning right around and unimplementing the abstraction as a layer on top. (See also: using relational DBs as key/value stores. Bonus points if it implements a hierarchy that looks like a file system! Implementing unreliable data delivery on top of TCP (which can be done by reconnections). Taking a character/block device and implementing block/character access. Implementing streaming on top of page- based abstractions like HTTP, implemented on top of streaming via TCP; there's "official" ways to do this but for a long time it qualified.) If you're wondering where the CPU cycles are going....

<comment><USER4> I don't understand what abstraction is being unimplemented with a layer on top here. Whether you use a stack or avoid it with [multiple] link registers, those are both reasonable methods of getting back and neither one builds on top of the other or undoes any work that's already been done. Whether to use tokens or addresses has tradeoffs, but I still don't see any work being unimplemented.

At worst they avoided a stack and made an implementation that was unoptimized in an entirely unrelated manner, not because it unimplemented anything on top.

</comment></comment></comment><comment><USER5> Freeing up 20% RAM with a trade off of 14% increase in ROM usage is fine and all... Code readability is kind of an issue here as well.

<comment><USER6> Just to be clear, this is a compiler optimization. Do you mean the readability of the generated assembly code?

<comment><USER5> I was pointing to the practice of flattening code.

</comment></comment></comment><comment><USER7> Cant read pdf on my phone, so a quick question: Wouldn't cps style help ?</comment>


Why Universities Must Defend Free Speech - <AUTHOR> https://www.libertarianism.org/media/free-thoughts/speak-freely-keith-e-whittington <comment><USER2> I followed the debate with Jordan Peterson.

That Queen's University talk with everybody chanting idiocy outside was creepy stuff. What the serious breakdown of civilization.</comment>


Show HN: NanaGram – SMS photos and we'll mail 4x6 prints to your Grandma - <AUTHOR> http://nanagram.co <comment><USER2> I'm generally very sceptical of "start-ups" and I see most of them as bound to fail, but this actually fills a hole. I think this has great potential to make both money and grandparents everywhere very very happy.

<comment><USER3> Thank you. At the beginning (and even now, really) we didn't treat it as a start-up, more of a passion project. So during the first few months when I was building everything out I threw out all the standard advice and just focused on making the best thing possible for my siblings and my grandparents, no matter how long it took. I'm enjoying every moment working on this product, especially the moments with my own grandparents.

My grandpa Tirrell Cook, aka Grandpa Cook, passed away peacefully on April 9th after a tough month-long battle in the hospital. I was fortunate enough to have flexibility in my schedule to be by his side 4-5 days a week. He was truly a great man - I don't know anyone else like him - and I'll miss him dearly. I'm super grateful for all the crazy great times we had the past couple of years. I wrote more about my relationship with him here: [https://nanagram.co/blog/on-happiness-from-tirrell- cook](https://nanagram.co/blog/on-happiness-from-tirrell-cook)

With his passing, I considered putting NanaGram on hold for a while but the feedback from customers has been tremendous, as well as the media: [https://mashable.com/2018/04/24/nanagrams-photo-printing- ser...](https://mashable.com/2018/04/24/nanagrams-photo-printing-service). Plus my Mom, my Grandma, my future mother-in-law, and my Aunt all get a monthly NanaGram.

<comment><USER2> This is great and I think it is the only way to build something profound and meaningful. None of the buzzwords (blockchain, crypto, AI) can compete with a puitting a smile on the faces of the people you care about.

<comment><USER3> I sometimes feel guilty for not keeping up with the world of crypto but love being here in the physical world focused on smiles.

</comment></comment></comment></comment><comment><USER3> @andygcook, Best Middle Brother Ever, thanks for posting.

NanaGram is a super simple service for sending regular printed photos in the mail to your loved ones. Our service acts like a Netflix account. After you sign up, we give you a unique phone number and you can share it with unlimited family and friends. Once someone is approved by you they can send in photos and together the group curates a few fresh photos per month. We print and ship 4x4 and 4x6 prints in glossy or matte. All you have to do is text your photos and wait for a phone call from your loved one.

We've had a nice bump in growth the past couple weeks, with Mother's Day on the horizon (Happy Mother's Day, Mom! <3) and lots of new folks planning to use us as a gift.

This is the happiest product I've worked on. It's super heartwarming to see it bringing families closer together (the product functions like a private family social network), bringing our elders into the loop (many of whom don't do social media), and most of all the increase in phone calls and visits.

Would love to answer any questions.

</comment><comment><USER4> Word of caution from another comment thread that Instagram is suing companies claiming trademark violations [https://news.ycombinator.com/item?id=16998127](https://news.ycombinator.com/item?id=16998127)

I really like your wording and photos on the website. Refreshing and joyful.

<comment><USER3> Thanks so much, appreciate the kind feedback and words of caution. The credit for the awesome Rusty the dog photos ([https://imgur.com/a/3cRZu](https://imgur.com/a/3cRZu)) goes to my Grandpa and his brother Arnold who took the photo in the 1940s as teenagers, using a camera borrowed from their Aunt Florence. The negatives were lost for decades, discovered among a bunch of family old papers. The photo of Andy and I at the fancy kid's table in the 90s was most likely taken by Grandma Cook. :)

</comment></comment><comment><USER5> I get that the grandmother side of thing is "old school" because of the printed photos, but why is the "modern" input side of this also using antiquated tech like sms?

<comment><USER6> Because it's a platform agnostic way of sending images.

IMO this is actually a really good decision given the purpose of the service. A lot of my older family members that I will likely invite to my new account (great idea btw) are familiar with sending pictures through SMS and don't really use any other messaging apps or many apps at all, if their phone even supports apps. Believe it or not many older people and some younger people still rock low powered phones with little or no data plan. However most if not all phones made within the last decade can send SMS messages and more than likely are on a plan with free texting.

Why should I need to download another app that is a glorified REST client when SMS does the job perfectly well?

<comment><USER5> _Nobody_ is 'familiar' with sending images over SMS, because its technically impossible.

They _may_ be familiar with sending images over MMS, which generally limits the size to less than half a MB. Hardly "high quality".

I never once suggested that it should be an "app". This could literally be a web page with a single file input and a button, or a fucking customer-specific email address. It could be any number of things that makes more sense than sending shit quality images over MMS.

<comment><USER6> Those things still require a either a data plan or a phone with a browser/email client. MMS (thanks for the correction) is familiar and every phone made in recent history can use it with no login, sign up or password.

My father has an email account solely because an Android phone makes you get one. He definitely doesn't know the password and I wouldn't be surprised if he didn't know the address either. However he is very comfortable taking pictures and attaching them to text messages.

He can easily save a contact in his phone on his own. I or my brothers would have to help him set up a bookmark in a browser. Now my father may be somewhat of a Luddite but keeping the barrier really low for family members who aren't texh savvy is a good idea for this.

And as far as quality I can almost guarantee my grandma doesn't care what is in the pictures or how blurry they are. She is going to care that I am sending her something. That's the important part not HD images.</comment></comment></comment></comment>


An Angel Investor's Take On WordPress 3.0 - <AUTHOR> http://techdrawl.com/News-Post/Fresh-Voices/An-Angel-Investors-Take-On-WordPress-30 <comment><USER2> _You wouldn't spend your entire marketing budget on a Yellow Pages ad, so why would you do it on a website?_

Now, I understand that it would be foolish to spend your entire marketing budget on either, but I think the comparison is a little weak given the scale of each and the size of the target market of each.

A web presence requires significantly more work than some static print creative as well it disseminates far more information as well as provides a platform in which that communication can be two ways.

So while, I agree you should not blow your marketing budget on a web presence, one should consider their web platform as instrumental to their success and dedicate adequate resources to providing a good platform.

Individual who think they are going to get a good site for the price of a print ad, general do themselves a disservice and spend more money in the long run working around problems and having a professional agency clean it up.

Now in saying that, I think Wordpress and Drupal are great pieces of technology for small companies looking to provide a web presence without breaking the bank. As the article stated, not too long ago you where looking at a $20-$100k budget to just get a good web presence of the ground. With the newer technologies those numbers have been significantly reduces and one can have a nice small web presence developed for $1-10k depending on features.</comment>


Regarding the Em Dash - <AUTHOR> https://themillions.com/2018/01/regarding-the-em-dash.html <comment><USER2> I learned old-school printing in high school. We had a press with a flatbed and screw. More to the point, we had lower and upper cases filled with steel type, including lots of different dashes and spaces. Our teacher was a traditionalist. He taught us such things as how to justify a line of type. Narrowing a line involved switching "thicks" (nominal space slugs) for "middles" in an artful way. Widening it involved switching thicks for two "thins", and so forth.

We had plenty of dash characters--we had hyphens of course, and figure dashes, and en dashes, and em dashes. Figure dashes are one en in width, with the vertical position of the visible element is designed to match the numerals in the font. This let us set a sentence like so with subtle perfection.

Type designer John Baskerville (1706-1775) owned a printing-works and type foundry in Manchester.

Does anybody notice this sort of thing? Probably nobody except book designers. Does anybody care? Well, my mom said she cared when I pointed it out to her.

From that teacher I learned to respect the choices of the type designer and how to use those choices. His tradition--now mine--dictates that all these dashes be typeset closed, without leading or trailing spaces. In the OpenType era, a type designer may choose to leave a speck of white space around a dash, but it's up to the designer, not the typesetter.

Text rendering in software like web browsers and word processors is gradually catching up to the tradition. Adobe's InDesign product does a great job of all this. Recent versions of MS Word are great improvements.

It helps to know the HTML entities for these items if you'll play around with them in your web pages.

        —   em-dash
        –   en-dash
        ‒   figure dash (using en-dash is mostly acceptabe).
        ‑   non-breaking hyphen
             one em of space
             one en of space
             the much-misused nonbreaking space (use an en space for  &nbsp ktksbai)
           thin space (0.2-0.25em)

<comment><USER3> People who use [La]TeX tend to become a bit obsessive over typographic details, as well. What do you think of that program? (Very interesting comment, by the way.)

<comment><USER4> The hardest part about using LaTeX is getting to the realisation that to replicate InDesign, you might need OpenType support that might not ship by default, as well as needing to run it more than once. Once you have /latexmk.pl [1] and XeTeX [2], you can then achieve amazing results [3] with the right modules and some creativity. It's just not quite as fluid to use as InDesign for graphically-minded people.

1: [https://ctan.org/tex-archive/support/latexmk](https://ctan.org/tex- archive/support/latexmk)

2: [http://nitens.org/taraborelli/TeXOpenType](http://nitens.org/taraborelli/TeXOpenType)

3: [https://tex.stackexchange.com/questions/1319/showcase-of- bea...](https://tex.stackexchange.com/questions/1319/showcase-of-beautiful- typography-done-in-tex-friends)

<comment><USER3> Or you can use make, or a bash script. OpenType support has been standard for years; the preferred engine is LuaLaTeX: [https://lwn.net/Articles/731581/](https://lwn.net/Articles/731581/)

</comment></comment></comment></comment><comment><USER5> The em dash is the most beautiful punctuation mark, all the more because it is rare --- and it is best kept that way. Certainly a sentence with more than two is imparsible. In fact, more than a few in a whole article is probably getting annoying. It's like the exclamation point in that way.

Once you discover the em dash, it is hard to restrain yourself. But I'm trying to come back to the comma. It does its work without fanfare, almost invisibly. The mature writer realizes his job is to tell the reader something without getting in the way.

I land on the side favoring a space on each side of the dash. Unconventionally, I prefer to ASCII-encode my em dashes with three hyphens. The traditional two aren't long enough. But two is better than one. I always have to reread sentences by someone who thinks the hyphen and the dash are the same thing.

<comment><USER6> > I land on the side favoring a space on each side of the dash.

Horrible; if you are going to set a dash open and use it for the purpose of an em-dash, use an en-dash.

Setting an em-dash open is ugly as hell.

> I prefer to ASCII-encode my em dashes with three hyphens.

Two-hyphens is conventional for an en-dash. Since a set-open en-dash serves the same purposes as an em-dash, a lot of people just use that instead of the three-hyphen conventional encoding of an em-dash.

Some people use set-open hyphens on ASCII in place of dashes, which is actually probably the best thing in a monospace presentation but ugly in proportional fonts.

<comment><USER7> >> I land on the side favoring a space on each side of the dash.

> Horrible;

I strongly disagree. A closed em-dash—like this—looks jarringly like the words either side of it are closely related, as if by an extra-long hyphen. For example, in t previous sentence, "this—looks" visually appears to me to be a single compound entity, which is ironic considering that the intention was to make them appear especially separated. The ideal spacing is a thin space on each side, but I find a full space totally acceptable.

Of course, worst of all is asymmetric spacing, like this— yuk.

Edit: I just realised a closed em-dash doesn't look too bad in these comments because there is a very slight space either side of it, but I still stand by the above. A closed em-dash is much worse in documents typeset in TeX, where the dash without manual spacing practically touches the letters either side of it.

<comment><USER8> Hackernews defaults to Verdana—a known terrible font-design. Dashes should be visibly thinner than hyphens. And the reply-box is in monospace, so I can't see difference between the en- and the em-dash. In German we use the en-dash with leading and trailing space instead of the em-dash.

<comment><USER9> If anyone else was surprised as I was to hear that Verdana was disliked, here's the most compelling argument I found against it:

While it was meticulously designed for on-screen legibility, these days higher resolution screens and anti-aliasing, etc. are a better solution than meddling with the letter shapes e.g., taller x-heights, bigger openings, etc.

One detractor did allow for Verdana when rendering fine-print/legalese at very small font sizes--as long as it was unlikely to be printed.

<comment><USER6> Verdana was exquisitely well designed for the special problem of on-screen readability on the kind of screens that dominated in the mid-1990s, but, yeah, it's not 1996 any more.

On most screens these days, you are probably better off, if using a font of Verdana's vintage or older, using one optimized for _print_ legibility.

</comment></comment></comment></comment></comment></comment><comment><USER10> Tip: On a Mac, you can type an em-dash with shift-option-hyphen. (An en-dash is just option-hyphen.)

<comment><USER11> There are a few reasons why I switched from PC to Mac, but there's only one reason I'll never switch back—it's this em-dash shortcut.

<comment><USER12> I had to program this and other special characters—notably •, ™, and ®—as an autohotkey script on my work PC. I was going insane. I already had autohotkey going to reverse the direction of Windows' stubbon backwards scroll anyway. (Once I used so-called "natural scrolling" for a week it became impossible to understand why anyone would choose anything else.)

<comment><USER13> When you move your eyes downward, the world seems to move up. Do you therefore call that "looking up"?

<comment><USER12> No. I'd get dizzy real fast if that very natural association between movement and perception were suddenly reversed though. (Somehow that didn't happen when I started using natural scrolling, only when trying to go back from it.)

</comment></comment></comment></comment></comment><comment><USER14> As someone who takes flak from literati friends for his em dashin', this is a vindicating find—(!)thanks, OP.

I learned to use em dashes in the military on our performance reports (sort of like an annual resume with a grade attached).

For a few (dubious) reasons, every bullet had to be precisely 1 line long, +/\- 0-3 spaces at EOL (we had almost as many rules regarding these bullets as we did the other kind, it seemed).

Since we had a lot of (usually somewhat independent) points to jam into 1 line, we often had lots of separate clauses with a period, semi-colon[1], or em dash. The em dash always seemed to fill precisely the correct amount of space.

1: [http://theoatmeal.com/comics/semicolon](http://theoatmeal.com/comics/semicolon)

</comment><comment><USER15> I guess the Em Dash is like the Kurwa of punctuation:

> The most common curse word in Polish is kurwa, which can mean a variety of > things - damn, bitch, fuck, {insert any word}, and can even serve as a > comma.

[https://en.wikivoyage.org/wiki/Polish_phrasebook#Phrase_list](https://en.wikivoyage.org/wiki/Polish_phrasebook#Phrase_list)

</comment><comment><USER16> Maybe I'm weirdly old fashioned, but I try to stick to ascii whenever possible - which means whatever character is stuck in the middle of this sentence. Ditto for the ellipsis, since it's not like three trailing periods at the end of a sentence can be mistaken for anything else...

<comment><USER17> This is a great example of how limiting ASCII is. It doesn't even contain the full set of punctuation that correct (!) English requires. It supposes that you are satisfied using ' for both ' and ', and " for both " and ", and eliminates all the dashes for the hyphen—which has to play double duty as a minus sign.

It also eliminate dieresis from the language, naive not naïve, and strips all accents from loan words

<comment><USER18> Question is: how much charactersetting is enough, and how much is too much?

I've been kicking around thoughts on Unicode and various codepoints, and which really ought or ought not be used.

It is decidedly complex. I've got in mind a simplified coding, though, for common interchange formats. Effectively a glyphic pidgen. Presuming "glyphic" is a word.

(1913 Webster says it is. Hurrah!)

</comment></comment></comment><comment><USER19> I used to be an em dash over-user but have calmed down quite a bit in that department over the last several years. My current idée fixe is the archaic ellipsis as (over) used by Céline . . . I just can't bring myself to go with the single character scrunchy version.

<comment><USER20> Ah man, … as a single character is the best. I believe on a Mac it's shift- alt-;

I'm on my iPhone right now so I can't verify my muscle memory.

<comment><USER21> Easier: … is ⌥+;

Shift+Alt+; is Ú

<comment><USER20> You're right. It's actually just alt+;

</comment></comment></comment></comment><comment><USER22> For dialog, as used by James Joyce, or in typesetting other languages such as Spanish, French and Polish, the em dash (U+2014) is not used, but the quotation dash is (U+2015). The quotation dash is a bit longer. See, [https://en.wikipedia.org/wiki/Quotation_mark#Quotation_dash](https://en.wikipedia.org/wiki/Quotation_mark#Quotation_dash).

</comment><comment><USER23> Philip K Dick, one of my favorite authors, used the em dash a great deal. In fact, I think I first noticed it in his stories. Without having been taught how to use o read it, I immediately understood PKD's intent -- and how the dash wasn't exactly _necessary_ for anything but flavor. A mimic of other punctuation marks is an apt description!

I've been abusing the em dash since.

</comment><comment><USER24> The only thing that disappointed me about this article was that there wasn't enough David Foster Wallace.

But perhaps the author is saving that for an article about footnotes.

</comment><comment><USER25> The em-dash is like the AK-47: it feels good in one's own hand, but one is distressed to find it everywhere one looks. If you find yourself wielding either often, you should stop and ask yourself: "Am I the bad guy?"

Just minutes ago I read two articles demonstrating the horror of a world awash in em-dashes, both in _The New York Times_ [0, 1]. One may empathize with the writers, if one is so inclined: they have employed em-dashes for emphasis, to insert asides, and to lend needed structure to their sentences. But I think one should not be so sympathetic, because they've used 19 of the damn things (!), and every usage would arguably be improved by substituting another form of punctuation or by restructuring the sentence in a way that eliminates the need for complex punctuation entirely.

The ugliest em-dash is in the second sentence of the first article:

 _> A new class of security vulnerability — a variety of flaws that affect almost all major microprocessor chips, and that could enable hackers to steal information from personal computers as well as cloud computing services — was announced on Wednesday._

This is an abomination. The writer has needlessly separated the sentence's subject and predicate by two em-dashes and 28 words in two phrases, burdening the reader with the task of untangling her mess. Did neither she nor her editor care enough about the reader to re-write the sentence trivially in a natural way? Try this:

 _A new class of security vulnerability was announced on Wednesday, a variety of flaws that affect almost all major microprocessor chips. The flaws could enable hackers to steal information from personal computers as well as cloud computing services._

This use of a double em-dash to insert additional information mid-sentence is almost always the wrong thing to do. Here's another example from the second article:

 _> Over the next few years, hundreds of millions of dollars in American deposits flowed from Swiss banking stalwarts — institutions like Credit Suisse and Julius Baer — to Bank Frey._

I propose instead:

 _Over the next few years, hundreds of millions of dollars in American deposits flowed to Bank Frey from Swiss banking stalwarts like Credit Suisse and Julius Baer._

If you find yourself using em-dashes like this, pause and ask yourself why you can't render the sentence more naturally. Most times you can, whether by restructuring the sentence, by using standard appositive phrases set off by commas, or by true parentheticals (preferably at the end of the sentence, not dividing the subject and predicate). If you can't make that work, consider separating the information you wish to convey into two or more sentences.

Here are some more examples of what not to do. From the second article:

 _> And since the problem is built into the hardware — billions of chips that cannot easily be replaced — fixing this class of problems may also be prohibitively expensive._

Just replace "hardware" with the more detailed phrase and a comma: "... since the problem is built into billions of chips that cannot easily be replaced, fixing ..."

From the second article:

 _> She would return to the United States secretly carrying just under $10,000 in cash — the cutoff for having to make a customs declaration._

Just use a fucking comma!

Now, if you'll give me a moment to collect myself in the face of all of this grammatical turpitude, I will say that there are two usages of the em-dash in these articles that I do think sensible. Both set off information in ways that other forms of punctuation can't (except for the venerable parentheses), and they do so in ways that don't interrupt the logical flow of the sentence:

 _> A common trick involves having the microprocessor predict what the program is about to do and start doing it before it has been asked to do it — say, fetching data from memory._

 _> Prosecutors said all the secrecy — the nameless debit cards, the scissored bank paperwork, the shadowy phone calls — showed Mr. Buck knew what he was doing was wrong._

TLDR: if you use em-dashes often, you might be a lazy writer with a bad editor.

———

0\. "The looming digital meltdown," [https://www.nytimes.com/2018/01/06/opinion/looming- digital-m...](https://www.nytimes.com/2018/01/06/opinion/looming-digital- meltdown.html)

1\. "A Swiss banker helped Americans dodge taxes. Was it a crime?", [https://www.nytimes.com/2018/01/06/business/stefan-buck- tax-...](https://www.nytimes.com/2018/01/06/business/stefan-buck-tax- evasion.html)

<comment><USER5> Midsentence injection deserves its own thread. Is it a trend, or am I just noticing it more? It's hard on the brain, because you have to hold the first part of the sentence in memory while you take in the interruption. Your example is great, the one about the security vulnerability. Your revisions are much better in all cases.

It's actually my first impulse to inject these midsentence clauses. Is it because of a short attention span, or is it a fear of someone raising an objection if I don't qualify every statement?

<comment><USER25> I do it too, when I'm being lazy. It simply requires more effort to order one's thoughts well.

The best reference on style I know in this regard is Joseph Williams's book _Style: Toward Clarity and Grace_ [0]. The book explains how to analyze your own writing to lessen the mental burden on the reader, mainly by re-writing your sentences so that there is a natural logical flow from subject to predicate to object, with detail added in phrases that don't get in the way.

0\. [https://sites.duke.edu/niou/files/2014/07/WilliamsJosephM199...](https://sites.duke.edu/niou/files/2014/07/WilliamsJosephM1990StyleTowardClarityandGrace.pdf) [PDF]

</comment></comment></comment><comment> cup-of-tea I know this because I've read Knuth's The TeXbook. I learnt so much about typography from that book. And yes I did find several places to use an em dash in my PhD thesis.

</comment><comment><USER26> Am I the only curmudgeon who can't get past the extra space after periods in a post about punctuation?

<comment><USER14> Nope. Raging against double-spaces post-period was all the rage a few years back[1], so I'm sure it raises quite a few curmudgeonly hackles.

[1] [http://www.slate.com/articles/technology/technology/2011/01/...](http://www.slate.com/articles/technology/technology/2011/01/space_invaders.html)

<comment><USER27> I am an unapologetic curmudgeon who uses two spaces. Or rather, my right thumb does. I learned to type on an IBM Selectric, I use mostly mono-spaced fonts, and two spaces after a full stop makes perfect sense. I went thirty years between learning it and thinking about it, and then some point-and-drool twee bloggers made it unfashionable.

<comment><USER28> > _I learned to type on an IBM Selectric, I use mostly mono-spaced fonts, and > two spaces after a full stop makes perfect sense._

It's still considered fine to do that when using monospaced fonts, just as using the prime symbol (') instead of an apostrophe (') won't raise any eyebrows in that scenario.

When your goal is to make something that looks like it was typeset by someone with an awareness of typographical conventions, then understanding those can be helpful. ("Twee bloggers" didn't invent them.)

<comment><USER27> "When your goal is to make something that looks like it was typeset by someone with an awareness of typographical conventions..."

If by that you mean typesetting, I agree. Typing and typesetting are two different activities.

LaTex, for example, will typeset both ".(one space)" and ".(two spaces)" into the same white space that is somewhat larger than one typed space and somewhat smaller than two.

<comment><USER28> > _If by that you mean typesetting, I agree. Typing and typesetting are two > different activities._

Exactly, and many (non-developer) folks may not have ever experienced the "two spaces after sentences" convention if they haven't sat in a typing class with old-school typewriters, and haven't been instructed on formatting monospaced type.

</comment></comment></comment></comment></comment></comment><comment><USER29> > Depending on the context, the em dash can take the place of commas, > parentheses, or colons—in each case to slightly different effect." The > "slightly different" part is, to me, the em dash's appeal summarized.

For me, it's of the opposite. It's like using `auto` too universally in C++: sometimes it's helpful to know the type you actually intend. Although I cede that the overuse in the article is more likely because it's discussing it and making a whimsical point. :)

<comment><USER30> Commas also can take the place of parentheses and, sometimes, colons. Punctuation is like sentence structure in general, adaptable.

<comment><USER12> Sure, they can (but should they?)

</comment></comment></comment><comment><USER31> I use mdash for "side thoughts", such as:

It turned green—like I care.

He kicked that person's butt—quite hard actually—without thinking of the repercussions.

<comment><USER32> I tend to use parentheses in the way that it appears most people are using the emdash (like in your second example).

</comment></comment><comment><USER33> Yes! I use em dashes quite often. I _tire_ of commas and parenthesis. I do prefer two short dashes together, because I enjoy ASCII. I also use short dashes as parenthesis sometimes, -like this-, but this doesn't always work well as some UIs use that for strikethrough.

EDIT: Do please put whitespace around em dashes.

<comment><USER34> To your edit: i wouldn't recommend, the EM dash should generally be used without surrounding spaces.

It is dimensioned to set a proper pause in the text and will rip holes in your text body if surrounded by so much additional white space.

You also wouldn't put a space before a period . (Use an EN dash with spaces, if you must)

<comment><USER33> [http://apvschicago.com/2011/05/em-dashes-and-ellipses- closed...](http://apvschicago.com/2011/05/em-dashes-and-ellipses-closed-or- spaced.html)

</comment></comment></comment><comment><USER35> I love dashes. I do tend to avoid ems for parenthetical remarks – for those, I'll use spaced ens – but I do definitely use the longer for interjections and (roughly) semicolons, as the article describes. Where I break from convention is that, if they're marking an interjection or other interruption, I will put a space in on a _single_ side of the dash— like so —to better demarcate the logical flow. Then again, I also put a thin space before exclamation points, etc. if I can (though unlike French, nothing if I just have full spaces), so I have other reasons to dismiss the complaints about style.

<comment><USER7> I realise this is nothing more than my opinion, but I have to tell you that asymmetric spacing around a dash looks awful.

<comment><USER35> Thanks for that, actually! You're the first to comment on the aesthetics rather than the "incorrect" usage. My thinking is that the dashes are part of the pragmatics of the primary, wrapping phrase, and don't actually interact with the inner one—they are therefore bound to the first and separate from the second. Whether or not it's a good look, the fact that doing so much better signposts the parenthetical makes it worth it, right? And that spacing rule is actually almost the same as with ellipses, though I'm definitely with you on that taking a while to look good to me as well.

Do you think it's just being unused to that layout, or is there some deeper issue to how it looks?

<comment><USER36> There's a lot in what you say. Not crazy at all. They only looked awful for about 10 seconds hehe. But sure, using them to help show the meaning is a good idea. I've recently learnt to write a = b*c + d, spacing assisting clarity. Carry on, I support you in your chosen mission.

</comment></comment></comment></comment><comment><USER37> This is awesome :) I've been using the em-dash a lot recently, but didn't even know it had a name. It often seems more natural than using semicolons— semicolons often feel more formal and cold.

<comment><USER38> I still prefer semicolons when connecting two related thoughts, whereas it seems that em-dashes are most often used as a pause or a pseudo-comma. The brilliance of the semicolon is that you can connect two or more closely related sentences without a full stop. Em-dashes can't be used to connect multiple complete sentences. Semicolons are really more powerful than em- dashes, less pretty they may be.</comment></comment>


Ask HN: Why can I buy a server computer, but not in a rack? - <AUTHOR>

I can buy a server. I can rent a rack.
Why aren't the two integrated?
Why can't I buy a computer which is supplied to me in a rack?
I'm not talking about bare metal hosting.
I'm saying why can't the outright purchase and colocation be integrated?
If I want to buy a dell server, why do I have to take physical delivery of it? <comment><USER2> If I were a colocation facility, I sure would hate to take care of the servers my customers bought themselves.

'Hey Dirk! Why don't you drive all the way across town to pick up this dingy fifth-hand server and install it in your colocation facility. And make it run. And do the maintenance.'

Thanks, but no thanks. The reason why colocation facilities don't offer this is because they don't want to deal with hardware they didn't buy themselves.

Now, you're talking about buying a new server, obviously. But then still, I'd have to deal with a plethora of different servers. It'd would be easier for me to stick with a couple of servers that I'm familiar with. That, or if you buy your own, you'd have to take care of it yourself.

</comment><comment><USER3> You can take delivery yourself, or you can contract it out to another company like Redapt or one of the other systems integrators. Authorize them to act on your behalf with the data center and tell them what you want to be done.

I've used companies like that for small scale (<=500 node) deployments and their cabling is top-notch from what I saw. It made me sad when I had to bust up their awesome cable bundling to move some servers around in the stacks.

It's way overkill if you're doing a single server, or anything under a cabinet, really.

</comment><comment><USER4> If you only want one server, why not just rent a dedicated server from a colocation company? Alternatively, have you tried speaking with sales at some colo providers? Generally they can be very receptive and accommodating. I would focus on smaller players who provide quality customer service as a selling point. Check out webhostingtalk.com for some good leads, or even repost this question there.

</comment><comment><USER5> Are there no colocation providers that will accept delivery of a server directly from a seller (and not from the customer)? If true, that really surprises me.

<comment><USER6> In general colo providers will accept delivery but they will not unpackage, rack, and cable a server for you.

</comment></comment><comment><USER7> Also the cost of the server hardware/rack is a fraction of the cost of the electrical and cooling system that is around it.

If I setup my co-location facility to run all Mac Mini equivalents (cool and they sip electricity) and some random person ships say 10 bitcoin miners, with 100 un-cooled video cards, that is going to seriously mess with my electrical and cooling setup.

</comment><comment><USER8> I'm confused about what you're asking. You're not talking about bare metal hosting, but you are talking about purchasing a computer? You want to buy it, but also own the rack that's located in someone else's datacenter?

<comment><USER9> I think the author wants to buy the physical hardware and collocation services at once, without ever having to actually touch the hardware, but still retain total ownership over it? (the rack part being bad wording?)

<comment><USER10> yes it sounds like he wants to buy a server that comes installed in a rack and send that whole thing to co-location so they just unbox and plug in wires for him...

</comment></comment></comment><comment><USER11> I'm not sure if it falls into your definition of bare metal but Rackspace has a managed colocation offering (its not a Bare Metal as a Services...service...although Rackspace has that as well).

(disclaimer - I work at Rackspace)

</comment><comment><USER12> Our colo will unbox and rack new servers that we have shipped to them. They will also configure remote access (usually DRAC) for us. It just costs a one time fee to do it.</comment>


Show HN, my first iOS app: Zen Log - A new and intuitive take on self-tracking - <AUTHOR> http://itunes.apple.com/us/app/zen-log-life-logging-for-self/id527824945&mt=8

<comment><USER2> I don't have an iPhone to try your app out, but I just wanted to say I love your app icon!

<comment><AUTHOR> Thank you!</comment></comment>


A New Serverless Compute Platform Enters The Fight - <AUTHOR> https://workers.dev/?hn=1 <comment><USER2> I believe that Cloudflare's Kenton Varda is doing some of the most innovative work in serverless. He doesn't talk about being at the edge but calls it originless code.

[https://www.youtube.com/watch?v=KmY7MFgl8FM](https://www.youtube.com/watch?v=KmY7MFgl8FM)</comment>


Amazon Wine Announces 1¢ Shipping in Time for the Holiday Season - <AUTHOR> http://www.cnbc.com/id/101267300 <comment><USER2> Hey drone! Beer me that wine!</comment>


Data Structures Used in the OpenBSD Kernel (2012) [pdf] - <AUTHOR> http://kindsoftware.com/documents/reports/Britt12.pdf <comment><USER2> > The implementation of float is not explicitly defined in the c99 > specification

I do not like to be a smartass, but it is defined very explicitly in the C language standard - floating point types match the types defined in IEC 60559, which is equivalent to IEEE 754.

<comment><USER3> Only if __STDC_IEC_559__ is defined, which implementations are not required to do (in C++, the equivalent is std::numeric_limits<float>::is_iec559).

<comment><USER2> Hehe, serves me right! ;-)

Thanks for the correction!

</comment></comment></comment><comment><USER4> Does not have much to do with OpenBSD per se.

> _[Measuring] Interface Complexity can serve at least two useful purposes. > First, it can be used by a developer to get an idea of what libraries might > be worth becoming acquainted with. Secondly, it can be used to assist in > writing simpler, more maintainable code._

Makes sense, kinda. But here is an example:

> _The implementation for float uses four bytes, which yields a complexity of > log_2(2^{8∗4} ∗ 2^4)._

Looks like this complexity metric combines the "internal" complexity of an object (the number of bits) with the "external" complexity (the number of bytes). Sure, although I do not think that the logarithm plays any useful role here.

</comment><comment><USER5> dupe of : [https://news.ycombinator.com/item?id=15979460](https://news.ycombinator.com/item?id=15979460)</comment>


Apple VR Headset - <AUTHOR> http://www.apple.com/shop/product/HJKB2LL/A/view-master-virtual-reality-starter-pack <comment><USER2> Apple has simply neglected to mention the dozen or more Android devices this explicitly supports.

[http://www.amazon.com/View-Master-Virtual-Reality-Starter- Pa...](http://www.amazon.com/View-Master-Virtual-Reality-Starter- Pack/dp/B011EG5HJ2/ref=sr_1_1?s=toys-and- games&ie=UTF8&qid=1454973392&sr=1-1&keywords=viewmaster)

Compatible smartphone required (not included): Samsung Galaxy S6, Samsung Galaxy S5, Samsung Galaxy S4, Samsung Galaxy Note4, Motorola Moto X (2014), Motorola Droid Turbo, LG G4, LG G3, HTC One, Nexus 6, iPhone 6 plus, iPhone 5x, iPhone 5c __ _, iPhone 5_ __, iOS 8 and above. NOTE: View-Master VR may also work with newer model Android smartphones not listed above that have screens between 5 and 6 inches. __*View-Master VR apps may not be optimized for iPhone 5 and iPhone 5c.

</comment><comment><USER3> That's not an Apple product.</comment>


NGS Unique Features – The_one() - <AUTHOR> https://ilya-sher.org/2020/08/08/ngs-unique-features-the_one/ <comment><USER2> Author of NGS here. Ask me anything about the feature or NGS in general.</comment>


CL21: An experimental project redesigning Common Lisp - <AUTHOR> http://cl21.org/ <comment><USER2> This looks cool enough but it would need a big community to really change the common lisp landscape (in my opinion). I wonder how the lazy sequence support stacks up to Clojure, Haskell, etc. support.

One difficulty with promoting a more modern layer to common lisp is that Clojure is already such a productive and practical language. I have written a few common lisp books, and remain a fan of the language, and an upgrade does sound good.

I am curious to hear the opinions of the heavy hitters in the common lisp world.

<comment><USER3> I can understand the reasons why people prefer to target the CLR/JVM/LLVM/BEAM/Name-your-favorite-vm but I yearn for more compiled-to- native-languages such as Golang. As attractive as partially- compiled/interpretated languages are, I simply do not enjoy creating programs in a language that can be decompiled to source so easily. We need more languages that have decent performance instead of having to drop down to pointer optimizing in C wherever we need some performance. A functional Fortran would certainly be nice...

<comment><USER4> By functional Fortran, do you mean like a "functional programming language" or "more productive Fortran"? As one who has developed in Fortran before, I would also like to see enhanced functional capabilities, as well as a more productive way to write code. I have spent so much time on declaring variables and function arguments over and over across subroutines that it becomes quite a pain. To avoid writing many subroutine interfaces, I also tend to put everything in a single module. My dream is to combine the expressiveness of Lisp with the numerical performance and memory efficiency of Fortran and C.

<comment><AUTHOR> What happened with Fortress, fortran like enchanced language Guy Steele was developing with his team?

<comment><USER4> I had not heard of Fortress before. It seems that Oracle's sponsorship of the project ended in 2012. Guy Steele emphasizes the difficulty of implementing Fortress's type system on virtual machines. [1]

[1]: [https://blogs.oracle.com/projectfortress/entry/fortress_wrap...](https://blogs.oracle.com/projectfortress/entry/fortress_wrapping_up)

</comment></comment></comment></comment></comment><comment><USER5> One of the things I don't like about Common Lisp is the unusual names. Just on the basis of the linked page, CL21 doesn't fix that.

Take princ #"Hello, ${name}\n". Why not just use print like the rest of the programming world. Okay, some languages use writeln, etc. But princ? Why not print?

A little further down, we see while-let1. Why the number? If you want to call it "Common Lisp in the 21st Century" you need to clean up the syntax.

<comment><USER6> As odd as it may seem, I ended up prefering car/cdr over anything else (except when access to pattern matching and destructuring). I know first/rest, head/tail or even fst/snd are clearer names, but car/cdr ended up as symbols having precisely this meaning in LISP idioms (recursion over cons-cell based lists).

My 1.5cents

<comment><USER7> As a non-Lisper, I can assure you beyond a shadow of a doubt that having "car" & "cdr" show up in the first few sections of a tutorial is not something that wins people over to Lisp.

I don't mean that _I_ don't understand it. I even know they come from assembler instruction names. And they still look weird to me and still have no meaning despite having read what the abbreviation expands to three or four times.

You'd be far better off shipping "first" & "rest" and whispering to the old hands that you're sure they know how to "fix" the problem in their code, than presenting new people with car & cdr and then try to wedge an explanation into a brain that just threw an exception and went "Wait, what?"

<comment><USER8> Ah, but how would you easily access the number 6 out of the nested list '((((5 4 3 2 1) 6) 7) 8 9) without one of the cute compositions of "car" and "cdr"? In this case, "cadaar". (Rhetorical question. "car" and "cdr" are neat for their cute composition, but I would never inflict that on someone first learning the language.)

<comment><USER9> One word: lenses.

<comment><USER10> And how would that look for this particular example?

<comment><USER9> Definitely not as terse but far more general, flexible and powerful. With car and cdr you're restricted to working on cons cells while lenses are generic.

Some examples (from Haskell):

        >>> ((((5,4,3,2,1),6),7),8,9) & view (_1 . _1 . _2)
        6
        >>> ((((5,4,3,2,1),6),7),8,9) & (_1 . _1 . _2) .~ 4
        ((((5,4,3,2,1),4),7),8,9)
        >>> let foo = ((((5,4,3,2,1),6),7),8,9)
        >>> foo & view (_1 . _1 . _2)
        6
        >>> let six = _1 . _1 . _2
        >>> foo & view six
        6
        >>> foo & six .~ 4
        ((((5,4,3,2,1),4),7),8,9)
        >>> foo & six .~ "abc"
        ((((5,4,3,2,1),"abc"),7),8,9)

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> As a former common lisper, I don't see the point. Clojure is better in pretty much every respect and incorporates many fresh ideas (such as excellent concurrency support). Syntax is the least of CL's limitations. I didn't switch to Clojure because it was "easy" (quite the contrary).

And no, I do not miss reader macros. Perhaps more surprisingly, I don't miss CLOS at all, much as I always admired its design. It's just... Unnecessary.

What I do enjoy is STM, good performance, Java interop, ClojureScript, core.async and lots of excellent code with fresh ideas popping up all over the landscape.

<comment><USER12> Clojure is nice and all but I wouldn't suggest it's even close to being better in many respects, let alone _every_ respect.

When I was working with it on a non-trivial project I despised the JVM stack traces, image-less environment, and lack of access to the reader. I assume that eventually Clojure will steal these ideas and adopt it in its own way... but these old, un-modern ideas of conditions and restarts, images, and reader macros are actually really useful. I hope they do take a hint.

</comment></comment><comment><USER13> In the examples I see nothing overly compelling which would justify fragmenting the mind share.

Some of them could possible be considered for alexandria [https://common- lisp.net/project/alexandria/](https://common-lisp.net/project/alexandria/). Admittedly I am not sure how alive development is but it certainly would be worth breathing new life into as it is probably the most heavily used CL library.

As things like STM and lazy which Clojure has, they have been implemented at the library level for CL.

[https://common-lisp.net/project/cl-stm/](https://common-lisp.net/project/cl- stm/)

The beauty about a Lisp is that you can easily add so much on top of the language that will feel as if it was always there. CLOS is a good example of this.

In the case of JVM with CLojure, and of course others will disagree, I don't think accessing the Java ecosystem is a good thing. The mindset there is monolith "Enterprise Solutions" "Inversion of Control frameworks" which invariable mean systems that are so complex the authors don't even understand them and lets write XML above all else.

Also if you want CL->Javascript; Parenscript.

</comment><comment><USER14> Interesting, but for looping I think a better point of comparison is iterate:

[https://common-lisp.net/project/iterate/](https://common- lisp.net/project/iterate/)

In my personal opinion, the iterate loops read better than the code samples of the main page.

<comment><USER15> Looping is still under discussion, check Dan Lentz's comments on the issue: [https://github.com/cl21/cl21/issues/18](https://github.com/cl21/cl21/issues/18)

</comment></comment><comment><USER16> Three things I don't like about Common Lisp.

1\. It has CLOS but it doesn't really embrace it in standard library. You have list, vector, hash-table, each with its own iterator function. You have lots of #with-xxx macro. All modern languages utilize the idea of common interface like #iterator or #dispoable. You can clearly see CLOS library and pre-CLOS library in CL. CL needs to eat its own dog food (CLOS) more.

2\. It lacks basic practical API library, while another containing big complicate academic functions. Its #format function is probably Turing complete. It has function to format number in Roman numeral. But it doesn't have function to deal with datetime. No networking IO function. No Threading library.

3\. Condition and Restart could take the idea from Dylan. Tying condition to available restarts, and making class hierarchy of them, is a better idea. This problem stems from CL not actually utilizing CLOS.

Also, PACKAGE should take the idea of LOCALE, allowing easier local package rename, and less symbol conflicts problem.

<comment><USER17> I agree with all your points.

One of my main gripes with Common Lisp is its complexity. When I started learning Lisp, I expected to find a beautiful and elegant language, one without a need for syntax. The way C is almost an elegant assembly. Maybe I should have tried Scheme instead.

Common Lisp is anything but elegant. Instead of a regular syntax, you get all these "mini-languages", like the _format_ syntax e.g.

        (format t "~{~a~^, ~}" '(1 2 3))
        ; prints out
        ; 1, 2, 3

This works fine for list, but not for vectors, which is a problem, since I needed vectors often (for random access).

The loop macro is also quite powerful and complicated. e.g.

        (loop :for i :from 1 :to 1000 :collect (* i i))

will create a list of square of 1 to 1000. The loop macro can become really convoluted, not at all simple.

The fact that Common Lisp is a Lisp-2 makes treating functions as first-class as rather awkward. I could never remember when I needed to prepend a lambda with #'.

This article may be of interest [http://xahlee.info/comp/Common_Lisp_quotations.html](http://xahlee.info/comp/Common_Lisp_quotations.html)

I found much of the elegance I was expecting in Haskell. But maybe Scheme is a better lisp.

</comment></comment><comment><USER18> By the way, looking at the github there are 40 open issues 5 open pull requests and no changes to master for 6 months. I think this project may be dead, or at least on hold for the time being.

<comment><USER19> It looks like they are using the issues to keep track of feature requests.

</comment></comment><comment><USER20> Another effort along the same lines:

[https://github.com/rongarret/ergolib](https://github.com/rongarret/ergolib)

</comment><comment><USER21> I've been thinking about this for a while. I've wrote some thoughts I had over the years about modernising Lisp.

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

</comment><comment><USER22> I can recommend having a look at GOOPS [1] (GNU Guile's implementation of CLOS) for inspiration. It provides multiple dispatch and facilitates overloading of existing functions (such as "+").

[1] [http://www.wedesoft.de/oop-with-goops.html](http://www.wedesoft.de/oop- with-goops.html)

</comment><comment><USER23> I think this is an okay idea, but the comparison to Clojure is really lacking. Why build on CL when you can build on Clojure? I get the inter-operability, but when _Multi-Threading and Multi-Processing_ is listed under _Deferred_ , Clojure could provide so much of that for free. _On_ Clojure, etc.

<comment><USER24> What if you aren't interested in targeting the JVM?

<comment><USER23> Then I think the CLR would be a good starting point [1]. Or you could settle for single-threaded ClojureScript/JavaScript.

[1] [https://github.com/clojure/clojure- clr](https://github.com/clojure/clojure-clr)

<comment><USER24> You seem to be assuming that everyone writing code should be writing code for either the JVM or CLR, which is a really weird assumption.

</comment></comment></comment></comment><comment><USER25> Inb4 the newLISP cultists arrive.

</comment><comment><USER26> Oh, god. Not again. Stopped reading at "More Object-Oriented".</comment>


Show HN: Awesome lists instant search - <AUTHOR> http://awesome-lists.net <comment><AUTHOR> It's a searchable index of the items of all the "Awesome lists" listed on [https://github.com/sindresorhus/awesome](https://github.com/sindresorhus/awesome).

<comment><USER2> Hey netgusto, great work! I'm building an awesome list for full-stack development and design. If I wanted these to be added to your list do I just make a pull request?

[0] [https://github.com/kevindeasis/awesome- fullstack](https://github.com/kevindeasis/awesome-fullstack)

[1] [https://github.com/kevindeasis/awesome- ui](https://github.com/kevindeasis/awesome-ui)

<comment><AUTHOR> Hello kevindeasis,

you'd have to make a pull request to [https://github.com/sindresorhus/awesome](https://github.com/sindresorhus/awesome) (make sure to read and comply with their contribution guide) since the lists indexed on [http://awesome-lists.net](http://awesome-lists.net) are obtained from this repo; once that's done, your lists will be automatically available on awesome-lists.net (after the next index update).

Nice lists you got here. Watch out for these minor problems though:

* [https://github.com/kevindeasis/awesome-fullstack](https://github.com/kevindeasis/awesome-fullstack)

      * Agular => Angular
      * you should rather use unordered lists IMHO
      * I think links on headings won't be indexed as you expect them to be; could you normalize and put the link in an item just as for the other sections ?

* [https://github.com/kevindeasis/awesome-ui](https://github.com/kevindeasis/awesome-ui)

      * Some formatting problems on **Font Resource** (bullet points unrecognized)
      * Heading `###Writing` not recognized
      * You should normalize lists and not include wrap list items in paragraphs IMHO

Thanks !

<comment><USER2> Awesome, thanks netgusto!

I'll to do that within this week or next week.</comment></comment></comment></comment>


Social Anxiety Tips from a Navy Seal [video] - <AUTHOR> https://www.youtube.com/watch?v=QwtPA-07NnU <comment><USER2> I found this interesting. I have deal with social anxiety, and the tips he gives are very valid. Below is my summary.

Two rules to get through social events.

1\. No situation that he can't get himself out of.

2\. Find things that help with self confidence.

6 things to help follow those rules.

1\. Take your own car. He didn't do uber,taxi,uber, or friends. - he isn't stuck.

2\. Always rent a hotel, instead of staying with someone. Provides an escape/safeplace.

3\. Code words/phrases. To friends, or Significant others. This allows to to let others know they need to leave, and they might even provide the exit.

4\. Don't feel like you have to talk all the time.

5\. Drinking - He doesn't drink anything Hard. being hammered makes things worse.

6\. Get some therapy. He went to therapy, it helped tremendously. It isn't just about you, but it can help you understand other people, and what they are thinking.</comment>


Optimize Images for Free to Drive More Business in 2019 - <AUTHOR> https://imagekit.io/blog/image-optimization-essential-website-now-free/ <comment><USER2> This was posted yesterday as well. [https://news.ycombinator.com/item?id=19026070](https://news.ycombinator.com/item?id=19026070)</comment>


Engineer leaves NY career to walk across US - <AUTHOR> http://news.yahoo.com/s/ap/20100527/ap_on_re_us/us_the_big_walk <comment><USER2> _"... No, for Green, there's just something about the act of walking that makes him really happy ..."_

Having done something similar this year I'd agree ~ [http://www.flickr.com/photos/bootload/collections/7215762379...](http://www.flickr.com/photos/bootload/collections/72157623796440209/)

</comment><comment><USER3> More on his blog, I think this will become a new fave of mine: <http://news.ycombinator.com/item?id=1386143></comment>


The Truth about Aaron Swartz's "Crime" - <AUTHOR>

<comment><USER2> I think you missed the URL

<comment><USER3> <http://news.ycombinator.com/item?id=5048820> or [http://unhandled.com/2013/01/12/the-truth-about-aaron- swartz...](http://unhandled.com/2013/01/12/the-truth-about-aaron-swartzs- crime/)</comment></comment>


PLease stop telling me to take app X with me. - <AUTHOR>

Unlike the majority (apparently) I can't afford a smart phone. Every time I log out of a particular web app, the website doesn't ever fail to notify me that I should download the app on my (hypothetical) smartphone and take it with me. Yes. I'm too poor for a smartphone. Thanks for reminding me. Maybe send me a smartphone and I'll download your app. <comment><USER2> Scratch that, even if I could afford a smart phone...

[http://idontwantyourfuckingapp.tumblr.com/](http://idontwantyourfuckingapp.tumblr.com/)

</comment><comment><USER3> There's a lot more where that came from if you go around looking to be offended.

<comment><USER4> Can you believe I saw an advertisement today for a car wash!? I DON'T EVEN OWN A CAR! Why don't you remind me again that I'm poor?

/sarcasm</comment></comment>


Libtask: a Coroutine Library for C and Unix - <AUTHOR> http://swtch.com/libtask/ <comment><USER2> There is also libcoro. In fact I think there's two of them ;-)

First is <http://www.freebsdsoftware.org/devel/libcoro.html>

Second is part of the excellent Coro Perl module: <http://search.cpan.org/dist/Coro/>

<comment><USER3> Libcoro's FreeBSD ports page claims to support i386 only, while Libtask supports i386, PowerPC, Sparc and ARM.

<comment><USER4> I think that is inaccurate, and probably based on the backend they are using: * -DCORO_ASM * Handcoded assembly, known to work only on a few architectures/ABI: GCC + x86/IA32 and amd64/x86_64 + GNU/Linux and a few BSDs.

The other backends use standard libc/SUSv2 calls like (get|set|swap)context, setjmp|longjmp and sigaltstack

</comment></comment></comment><comment><USER5> If you're looking for something like this for Python, check out the greenlet library: <http://pypi.python.org/pypi/greenlet>

<comment><AUTHOR> Very nice, I really like stackless and anyone writing concurrent code in python should use it.

</comment></comment><comment><USER6> It's unfortunate that he leaves channels until last and doesn't describe them fully. Understanding the benefits of structuring code to use channels is up there with other programming paradigms.

</comment><comment><USER7> How does this compare to libevent and other NIO libs?

<comment><USER8> While libtask contains primitives for io (see fdread and other fd* functions) it uses poll() internally which does not scale well. And that is one of the problems that libevent solves by using the best available polling mechanism available. Libevent also provides timer and signal events while libtask does not.</comment></comment>


Ask HN: Go to sources on SaaS development - <AUTHOR> Hi everyone!
We're building a SaaS with a friend, and we pretty much finished the product's core's "mvp", but now we have to build... everything else
Users managements, "groups" of users, billing, access control,...
Pretty much everything that makes a SaaS... a SaaS. And I feel like I'm continuously discovering new things that seem essential, which is both awesome and disheartening.
So, what books, blogs, videos, online courses, whatever, would you consider are a must-read ( / watch / listen...) for someone who has never built a SaaS, or even a real product's backend for that matter ^^'
Also, anything related to event-driven architectures would be awesome :-) (I read Martin Fowler's posts and watched his video. They're quite fascinating)
(I'm originally a mobile dev who's been playing around with serverless for the last 2 1/2 years ^^') <comment><USER2> Depending on what type of SaaS you're building exactly, you may find the Enterprise Ready web site quite useful: [https://www.enterpriseready.io](https://www.enterpriseready.io)

From their homepage:

'Created for people who build SaaS products (founders, product managers and engineering team leads) to change the enterprise software narrative from "how to SELL to the enterprise" to "how to BUILD for the enterprise".'

<comment><AUTHOR> This is just pure GOLD!

It doesn't deal with the implementation itself, but it gives a clear view of what others did and what to look into.

Thank you!

</comment></comment><comment><USER3> SaaS can be massively broad from core choices like single tenant/multi tenant up.

One thing that I always find useful is go read the source code of the SaaS systems that are open soure, things like GitLab and Taiga are good clean codebases to have a look at the general architecture.

[https://github.com/taigaio/](https://github.com/taigaio/)

[https://gitlab.com/gitlab-org/gitlab-ce](https://gitlab.com/gitlab- org/gitlab-ce)

I found this quite good [https://www.youtube.com/watch?v=W1fkGyIcePA](https://www.youtube.com/watch?v=W1fkGyIcePA)

Also worth a look [https://www.youtube.com/watch?v=N8NWDHgWA28](https://www.youtube.com/watch?v=N8NWDHgWA28) (by and large GOTO; talks are phenomenal).

<comment><AUTHOR> Very good advice; I hadn't thought about it, believing it would be a daunting task, but then again... it's what we're building, sooo... ^^

The videos were really instructive too. Thank you!

<comment><USER3> Shrugs, sometimes not knowing that something is difficult is the best way to start :).

</comment></comment></comment><comment><USER4> Don't deal with event-driven architecture when you're at MVP stage. Also, which language and framework do you use? Because if you'd go with PHP/Laravel for example, there is a neat SaaS solution called Spark: [https://spark.laravel.com/](https://spark.laravel.com/)

<comment><USER5> y, recommend you check out the Rails and Laravel SaaS in a box offerings.

Rails [https://bullettrain.co/](https://bullettrain.co/)

Laravel [https://spark.laravel.com/](https://spark.laravel.com/)

They are good to get up and running quickly, I used spark on a SaaS and it worked well.

There are lots of great gems/packages that allows you to work without these though, if you want a little more control on how things are setup.

<comment><USER6> Wow, that's awesome. Do you know of anything similar written in Python?

<comment><USER5> Doing a quick search I don't see anything, here's a HN thread from last year.

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

Maybe a good opportunity for a Python developer to put one together?</comment></comment></comment></comment>


Show HN: Pay money globally, no fees involved - <AUTHOR> http://www.magnocash.com <comment><USER2> From the FAQ [https://news.ycombinator.com/newsfaq.html](https://news.ycombinator.com/newsfaq.html)

> _Are reposts ok?_

> _If a story has had significant attention in the last year or so, we kill > reposts as duplicates. If not, a small number of reposts is ok._

It is not clear what does " _small_ " mean, but somewhere between 5 and 10 is too much. Specially if all the repost are in two weeks. Try something else, like writing a interesting blog post about a problem you have with the service, or better about how you solved it.

</comment><comment><USER3> Please stop ...

        1.   1 point  by nfcurti 10 minutes ago | 1 comment
        2.   1 point  by nfcurti  2 days ago | 1 comment
        3.   1 point  by nfcurti  3 days ago | 1 comment
        4.   1 point  by nfcurti  6 days ago | 1 comment
        5.   1 point  by nfcurti  7 days ago | 2 comments
        6.   1 point  by nfcurti  9 days ago
        7.   2 points by nfcurti 11 days ago
        8.   1 point  by nfcurti 13 days ago
        9.   3 points by nfcurti 15 days ago | 6 comments
        10. 13 points by nfcurti 16 days ago</comment>


Show HN: VoltBuilder, a Modern Replacement for PhoneGap - <AUTHOR> https://volt.build <comment><USER2> Ha! I was just headed over to post about Voltbuilder and found @ghenne had already posted something. So let me say, I'm an early adopter and I switched over from PhoneGap Build while Voltbuilder was under development. Like all other PGB users, we were completely abandoned by Adobe.

When I started looking around (and complaining quite publicly) what I found was alternatives that were pricey and, quite frankly, came with too many of their own issues and that was the last thing I wanted. When the Voltbuilder crew said they were going to put a native CLI in the cloud I was all in!

Moving from PGB to Voltbuilder required little effort. I had to create a json file that defined the project and add a certificates directory (because Voltbuilder doesn't store certificates you upload them each time). Other than that there were no modifications to the project at all.

From the first build onward, everything has worked perfectly. The issues that I have come across have all turned out to be issues caused by errant or out of date plugins. I now have my main app in both stores and my secondary app is in development.

Support in the voltbuilder forums is really good and there are some smart people around (some managing 20+ apps) that really know their way around if you get stuck.

I saw a comment from @sphuff about the pricing and, as far as I know, final pricing is still up in the air but once a week or so the staff at Voltbuilder send all the testers an email and check in to make sure we're all happy and to ask us our opinions. I think we've all voice opinions about the price.

</comment><comment><AUTHOR> Hey HN, I'm George and I co-developed VoltBuilder ([https://volt.build](https://volt.build)) with James and Tomo. VoltBuilder is a modern replacement for PhoneGap.

Early in the COVID crisis, I was running out of work and looking for a new project. I saw Adobe was abandoning PhoneGap, a tool used by thousands to convert web apps to Android and iOS native apps. (I've been a PhoneGap user for 10 years, so I knew I'd miss it)

I spent a weekend going through the Android, iOS and Cordova documentation to see if it would be possible to replicate what PhoneGap does and give myself and all those users some hope. Reading hundreds of messages on StackOverflow helped me figure out some stuff that is really, seriously not documented anywhere.

By Monday, I had something like a POC working. I checked with my long term collaborators, James and Tomo. They were similarly underworked, so we decided to go ahead with the other 98% of the job to make a working product.

Technologies used include Python, Node, Jekyll, Auth0, Stripe, Cordova, Xcode, Android SDK, Express, Helmet, JWT, Flask, Boto3 and more.

VoltBuilder now has a website, a build engine, queuing and billing. We've built the server infrastructure to spin up multiple builds at the same time and are starting to test that.

It's deployed in beta production. About 50 beta testers have thrown thousands of jobs at it. We're focusing on building a community to get our first users and gather as much feedback as possible. Pricing is still up in the air, but the pricing page shows where we are heading.

Thank you for reading this far. I would love to get your feedback on VoltBuilder and to answer questions.

<comment><USER3> Great work! I just wanted to point out that I'm seeing "Plans start at $xx.95/month" on the homepage. Wasn't sure if that's a typo/something you meant to replace.

<comment><AUTHOR> Plans have not been finalized, so it's a placeholder for now. You can see more here: [https://volt.build/plan/](https://volt.build/plan/)</comment></comment></comment>