Show HN: Cross-platform open-source 3D modeling software - <AUTHOR> https://dust3d.org/ <comment><USER2> Does this use the same coordinate space[1] as Maya , or does it use the same coordinate space as Blender ?

Blender has no end of hidden trouble importing to Unity because Unity chose to be the same as Maya

[1] [https://blender.stackexchange.com/questions/471/is-it- possib...](https://blender.stackexchange.com/questions/471/is-it-possible-to- make-blender-a-y-up-world)

<comment><USER3> TIL.

The fact that gaming and Maya use one (Y-up) and that CAD and Blender use another (Z-up) brings the classic xkcd to mind.

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

<comment><USER4> The fact that there are only 2 makes me think that it doesn't apply though. I just hope nobody trise to go make a third.

<comment><USER5> There are also left-handed and right-handed coordinate systems...

<comment><USER6> This is correct. Most CG and 3d software (Max, Maya, Blender, CAD) uses a right handed coordinate system, which matches the convention in physics, however they vary in their choice of Y up or Z up. Video games almost always use a left-handed coordinate system with Y up. This is because DirectX and OpenGL chose to represent pixels on-screen with (X,Y) coordinates with the Z coordinate increasing as rays extend from the eye outward.

<comment><USER4> Wow, I had no idea it was so varied

<comment><USER5> To add to the confusion, while in both OpenGL and DirectX treat Z axis as depth, DirectX uses a left-handed coordinate system, while OpenGL uses mostly[0] right-handed one.

\--

[0] - [https://stackoverflow.com/questions/4124041/is-opengl- coordi...](https://stackoverflow.com/questions/4124041/is-opengl-coordinate- system-left-handed-or-right-handed)

<comment><USER7> OpenGL-the-interface is kinda neither (screenspace aside), since the application supplies/does all transformations (glFrustum and friends are long deprecated).

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> It looks great, but imagine the name of the software being "Moron3D". That is the reality for every native Norwegian speaker, since "dust" means "moron" in Norwegian. I don't mean this in a petty way, it's just hard to ignore, for me.

In related news, Honda tried to launch a car in Norway a couple of years back named "Honda Fitta" which roughly translates to "Honda the Cunt". The tagline was: "Fitta is small inside, but grand when you get in. A daily pleasure!"

They quickly changed the name to just "Honda Jazz" instead.

<comment><USER9> Same problem with the Chevy Nova selling in spanish-speaking countries. (No va: doesn't go.)

<comment><USER10> This is an urban legend.

[https://www.snopes.com/fact-check/chevrolet-nova-name- spanis...](https://www.snopes.com/fact-check/chevrolet-nova-name-spanish/)

<comment><USER9> Oops. Thanks for pointing it out!

</comment></comment></comment></comment><comment><USER11> Curious to see how this performs against fusion 360. Autocorrect has gotten real aggressive on pricing and licenses of late.

Also fusion forces you to save to autocad's cloud and they inspect your designs for hints you're using it for non hobby stuff.

<comment><USER12> Another simple libre CAD program is SolveSpace. It works more like Autodesk Inventor - you draw 2D sketches, pull them into 3D in different ways, repeat, and add constraints to features along the way. Very good for the dimensionally-accurate stuff people model in Fusion360. (Nearly useless, I might add, for organic stuff like the mosquito in the Dust video.)

[http://solvespace.com/index.pl](http://solvespace.com/index.pl)

<comment><USER11> Thanks for this. The 2d sketches to 3d is what I do with Fusion, and allows you to build nice 2d spec sheets as well. I will have a look.

</comment></comment></comment><comment><USER13> This is really, really cool. In 5 minutes I was able to create a quick little palm tree (I am not an artist, it is very ugly :)) and throw it into a room in Hubs since Dust3D exports GLB. These kind of low poly, texture-oriented models are really excellent for VR since you have limited budgets. Nice work!

<comment><AUTHOR> Thanks, I am really happy to hear that it can work with VR.

</comment></comment><comment><USER14> The "just have a reference photo" approach really appeals to me as someone who has never been great at sketching from scratch. I'm going to give this a go for creating custom assets for some little mixed reality projects.

<comment><USER15> If you have any more than zero experience modelling, Blender offers this and a great number of other tools for modelling, rigging, and animation.

Also, Blender is coming up on a big release which should make it a lot simpler for newcomers to get started. If you are willing to save often, you could just start with the 2.8 Beta now, and you won't have to do any adjusting when it comes out as stable.

</comment></comment><comment><USER16> Looks cool and I love its openness - though I hope I'm forgiven for saying that the examples, especially the guitar, doesn't quite look up to professional standards.

<comment><AUTHOR> Oh, no, that guitar is my favorite :-( The main focus of this software is the modeling speed, for example, that guitar only took less than five minutes. So I can make more game asset as an indie. Actually, the model made recently is already looks far better than several months ago I made, I will keep improving the mesh generating quality of the algorithm. Thanks!

<comment><USER17> It's got some flaws, but for say, Ludum Dare, it's super cool to create assets quickly. I have been using OpenSCAD for the purpose of quickly creating models.

Can Dust3d import STL files? Can it export wavefront OBJ? (or, I suppose I could import to blender, then export to OBJ). UV unwrapping is something I have not so far been able to conquer. If Dust3d can import STL or OBJ and make the UV unwrapping easy, I will probably use it.

Edit: I see at 21:50 in this video, it can export OBJs. [https://www.youtube.com/watch?v=wQerDObDjOs&t=21m50s](https://www.youtube.com/watch?v=wQerDObDjOs&t=21m50s)

<comment><AUTHOR> Hi, thanks, currently support glb, fbx obj export, but without import supports, may be add in the future.

</comment></comment></comment></comment><comment><USER18> Great concept! As a time-starved hobby game dev, the focus on being able to make something quickly from a reference image is really refreshing, in comparison with the more common design approach geared toward those with deep, well-practiced polygonal modeling skills. I like the direction your interface is going in. I love the Skin Modifier in Blender, but the workflow for that does feel a bit tedious, so I like the click-to-add-node approach. I also appreciate being able to move the rendered view around the window and scale it as desired.

</comment><comment><USER19> Awesome. Thanks for supporting glTF export right out of the box. Will run some test rendering to WebGL canvas and provide further feedback directly via github ;)

</comment><comment><USER20> This looks a bit like (but also slightly different from) modeling with metaballs in Blender.

</comment><comment><USER21> Does this play nicely with 3D printing like Fusion/Cura does ? Fusion's UX makes me want to gouge my eyes out. It's almost as if they make it intentionally hard so that you have to buy a training from them...

<comment><AUTHOR> should be ok with 3D printing, because the outcome of Dust3D generated is a watertight mesh. However, I don't have a 3D printer, cannot try yet.

</comment></comment><comment><USER22> Awesome! Would this run on OpenGL ES2.0 or OpenGL 2.x? Asking for computers with mobile chipsets like Raspberry Pi, i.MX6 etc. I'm looking for an alternative to Blender.

<comment><AUTHOR> Thanks, the underlying mesh render use the Qt/QOpenGLWidget, haven't try it with OpenGL ES2.0 and OpenGL 2.x

</comment></comment><comment><USER23> Congrats on the release and major version milestone.

I'll give it a try to model some weird shaped abstract stuff to make some generative art.

</comment><comment><USER24> This might be a stupid question but in the mosquito create video, what are the blue smudges he draws in the left portion of the image for? What are the blue lines dragged down in the GIMP? What exactly is going on in that part of the video?

<comment><AUTHOR> Blue smudges! my god, LOL, That is the drawing of the front view of the mosquito! The blue lines dragged down in the GIMP is the reference line. Usually, when make reference sheet for Dust3D, the same position in the two profiles(Front/Side) should sit in the same height(Y coord). This video is a demonstration of how bad at drawing can still make good 3D model with Dust3D.

<comment><USER24> Thank you i'm very stupid.

</comment></comment></comment><comment><USER25> How do you do the cross platform releases? One painful thing about cpp is how tedius is to cross compile compared to managed languages or the go runtime. Great work, the product looks really nice.

<comment><AUTHOR> Thanks. Yes, it's painful of manage cpp with different compilers, the cross platform of Dust3D mainly benefit from Qt.

</comment></comment><comment><USER26> Very cool! Did you come up with the interaction patterns yourself or is it inspired by something else?

I can also imagine using this for quickly prototyping 3D prints. Have you considered STL export?

<comment><AUTHOR> What interaction patterns? You mean the weird combine two profiles in one window :-) ? That is my idea. The sphere guided mesh generation is based on a paper: "B-Mesh: A Fast Modeling System for Base Meshes of 3D Articulated Shapes"

Edit: I am not familiar with STL format, may have a look at it, thanks.

</comment></comment><comment><USER27> I downloaded the beta for windows, clicked around a bit and it crashed. I noticed there doesn't seem to be any crash reporter. Is there somewhere I can report this bug?

<comment><AUTHOR> Hi, some reported several hours ago, and I have released 1.0.0-beta.4 to fix it, could you help to verify if it still crash please? Download link for windows: [https://github.com/huxingyi/dust3d/releases/download/1.0.0-b...](https://github.com/huxingyi/dust3d/releases/download/1.0.0-beta.4/dust3d-1.0.0-beta.4-x86.zip)

<comment><USER28> Seems to work ok on Windows 7. (My parents' machine, nonwithstanding my username ;)

<comment><AUTHOR> Thanks for verifying :-)

</comment></comment></comment></comment><comment><USER29> What do you think of CGAL?

Are you using a scene graph for the display?

<comment><AUTHOR> > What do you think of CGAL? I am using some function of CGAL in Dust3D, it's > a great work. However, it doesn't work with iOS and it's license is more > strict than MIT, may remove it in the future.

> Are you using a scene graph for the display? I am using Qt/QOpenGLWidget for > display.

</comment></comment><comment><USER30> What's your roadmap for new features?

<comment><AUTHOR> Thanks for asking, there is a target in my mind that generate highly detailed mesh but maintained the easy usability. I don't know how far the target is away. The near roadmap is making this software could be used in the game I am developing exclusively(Without use other modeler), if something is missing, I would add it.

</comment></comment><comment><USER24> I have always wanted something like this.

</comment><comment><USER31> Does it allow precision input of sizes, quickly like sketchup? I'm looking for sketchup replacement.

<comment><AUTHOR> Input by direct type number of position and radius? Not yet.

<comment><USER31> In sketchup you can draw something (rectangle, circle, line) and after you drag and release, you can then just type exact size in iches that you want, it will resize what you just drew. Makes architectural or woodworking design extremely fast and easy to work with. Sketchup basically has a monopoly on the casual woodworking, interior designer crowd because there is not an easy to use alternative. But the app sucks in so many ways and is way overpriced and the current company seems to just want to milk it for profits than improve it. Sketchup users are dying for an alternative.

<comment><AUTHOR> Thanks for the info, may have a try to see how Dust3D could benefit from this.

</comment></comment></comment></comment><comment><USER32> looks fun! I'll give it a try

</comment><comment><USER33> Thank you from the bottom of my heart for making an alternative to one of the most unfortunately convoluted, beyond unusable pieces of UI/UX garbage on the planet...(Blender)...what a nightmare to use for even a moment.

<comment><USER13> This comment is truly shameful. Blender is an amazing open source project created by volunteers and this kind of mean spirited criticsm is toxic. Your ignorance about the amazing effort going into 2.8 only adds to it. You should delete it.

<comment><USER20> I think Blender is primarily developed by people who get paid to work on it.

I don't think I'd object to the comment if Blender _actually_ had a bad UI, but I don't think it does. It just has an unusual UI and a steep initial learning curve. Clearly many people manage to do amazing work with it.</comment></comment></comment>


Show HN: React-tater – A React component to add annotations to any element - <AUTHOR> https://github.com/localjo/react-tater <comment><USER2> Took me a minute to figure out what the pinning feature does. At first, I thought it might make the Tater element unmovable but that didn't seem to be the case. Realized only after revisiting the page that it keeps the comment open. Obviously up to you, but might want to change the wording on that.

Spudtacular demo by the way.

<comment><AUTHOR> Thanks! I labeled the button "Pin" mostly because of space, but I can see how that would be unclear. I don't think "Pin Open" would fit, but I'll keep the idea in mind and see if I can think of a better way of handling it.

</comment></comment><comment><USER3> It's a nice idea ... but:

\- The positioning of the 'taters' isn't relative to the element they're attached to. Put a tater in one of the little circles, then change the width of the page, and it moves out of the circle. That's limits it usefulness _a lot_ because it stops users accurately attaching comments to small features.

\- Needing to wrap a component in the <Tater /> component is painful. It'd be better as an external app that's injected in to the page. If it has to be a React thing, I'd much rather use a HoC or better still, a hook. I don't want to have to work out if a bug is in my code or the Tater code. Which leads on to...

\- Another React project with no tests. This makes me very sad.

<comment><AUTHOR> \- The 'taters' aren't attached to the elements in the background. They're positioned as a percentage of the parent element.

\- If you don't want a React library, this isn't for you.

\- I do have tests. Run `yarn test`.

<comment><USER4> > They're positioned as a percentage of the parent element.

Why annotate percentages instead of elements? When you go to add an annotation, it should highlight the element like chrome dev tools ("select an element in the page to inspect it"), and then add the annotation to the ::before selector of the selected element. Then you'd have real DOM annotation software.

EDIT: and you don't have to get rid of the code you have. you should still position the tater wherever the mouse is clicked, but insert the tater at the deepest DOM level so that it moves where the elements move.

EDIT 2: you won't be able to use position: absolute; to position the elements. You'll have to calculate the position by subtracting the element offset from the position of the mouse at the time of click. It will be sort of tricky to position the annotations properly, but it's definitely doable.

EDIT 3: you probably want a relatively positioned container around each annotation, and then use position: absolute; inside of that. The position of the annotation will be "absolutely" positioned relative to the container, and then you can just use arithmetic to set the `left` and `top` styles.

EDIT 4: the annotations will interfere with CSS's "nth-child" and similar selectors. I think there's a way you can leverage the shadow dom to keep the annotations separate from the user's markup: [https://developer.mozilla.org/en- US/docs/Web/Web_Components/...](https://developer.mozilla.org/en- US/docs/Web/Web_Components/Using_shadow_DOM)

EDIT 5: rendering annotations this way opens the door for all sorts of quick- win features, like highlighting or listing all the elements that have been annotated and saving/sharing this as a file.

EDIT 6: this should really just be a script you include in <head />, for the testing environment only. it's poor design to mix view logic with testing/feedback.

<comment><USER5> dude just make a pull request

<comment><USER4> I will

</comment></comment></comment></comment></comment><comment><USER6> Apart from the Usage section of the readme, there's no mention of how annotations are only stored locally, via localStorage, it looks like? Might be helpful to state that explicitly in the readme and on the demo site. Nifty tool — thanks for sharing!

<comment><AUTHOR> Yeah, the docs are a little sparse at the moment. I really only intended this as a demo, and didn't expect to get much attention, so I didn't document everything. But when I get around to expanding the docs, I'll definitely make a note about local storage.

</comment></comment><comment><USER7> Super cool!

Feature idea: having a way of auto-incrementing them would be nice (instead of having to switch icon to a number).

</comment><comment><USER8> This is awesome! A little buggy but I will try it out in a project I am working on.

</comment><comment><USER9> Really neat. Nice one!

<comment><AUTHOR> Thanks!

</comment></comment><comment><USER10> Placing a potato resets the css animations. NICE!

<comment><AUTHOR> I'm not sure what you're saying. There shouldn't be any animations. Are you seeing a bug?

<comment><USER11> I think the top commenter means the animation of the placeholder elements on your demo page ([https://iamlocaljo.com/graphy-react- challenge/](https://iamlocaljo.com/graphy-react-challenge/)). It's a pretty minor glitch.

<comment><AUTHOR> Oh, interesting. I guess that's because React re-renders the child component. I should think about a way I can prevent it from doing that. Ideas welcome!</comment></comment></comment></comment>


Ask HN: Compiler target - <AUTHOR>

OK, for reasons I won't go into I have a compiler that takes a bespoke language and compiles it into something else.  I can't go into specifics - trust me that I'm doing something sensible.
I now need to produce Linux executables and was going to target C as an intermediate language, but there are probably better choices.
I know you can't give me detailed specific advice without knowing more, but it would be useful to have generic advice.  What other target options are there?
I know there are things like C--, and I could even target Haskell or OCaml, say, and then compile from there.  I know someone will say Lisp.
What other choices are there, and what are their primary advantages?
Thanks. <comment><USER2> Don't target OCaml. It's a fine language but a shitty backend. You'll get saddled with a wonky 31/63 bit integer type and a very literal non-optimizing compiler. Similarly, compiling to Haskell may result in unpredictable performance due to unintentional laziness (though I guess you could stick strictness annotations everywhere). I would go with LLVM-- they give you an IR which is reasonably high level and comes with a whole armada of analyses and optimizations.

<comment><USER3> If you need GC make sure that LLVM's current story there is something you're comfortable with. Or like the GHC (I gather) do your GC on top of its primitives.

</comment></comment><comment><USER4> I think it partly depends on what your input language is like. A nice aspect of targeting C is that it's portable to pretty much everywhere, has multiple good compilers, and is low-level enough that you can compile a lot of different constructs to it efficiently (though not everything). But you'll end up reimplementing nontrivial infrastructure and a runtime if you're compiling a high-level language; e.g., does your source language have garbage collection? Any sort of dynamic features? If yes, are they similar enough to the semantics of any existing language that if you targeted that language you might be able to piggyback on its features, e.g. use the target language's GC to do your GC? (The latter idea has some of the same pitfalls/advantages of internal DSLs.)

</comment><comment><USER3> "Lisp" ^_^.

Check out PreScheme in the Scheme48 distribution for a not-quite Lisp that might be worth your while.

Compiling to Scheme in general can be a good solution, and there are plenty of high performance and well supported Common Lisps out there like SBCL.

If you want ultimate preformance and compile times of days or a week plus are tolerable, the Stalin optimizing Scheme compiler is supposed to be rather special.

</comment><comment><USER5> There's always LLVM if you really want control of the generated code.

</comment><comment><USER3> C-- outside of Haskell (the GHC) is dead in the water, the group that was working on it has run out of money for it.

</comment><comment><USER6> I just put a post up here... no idea if it would help you or not... <http://news.ycombinator.com/item?id=1361320></comment>


Show HN: The Heads-Up Grid - <AUTHOR>

A tool for showing a column grid overlaid over live webpages.
http://bohemianalps.com/tools/grid/
It started as something simple for my own use during website development. I don't think anything like this exists. Would appreciate any feedback. <comment><USER2> For something like this, is there a way that you could provide an overlay grid for an already existing website?

Can this be done with a javascript console? I was thinking something along the lines of <https://gist.github.com/1119539>

<comment><AUTHOR> I don't know much about the JavaScript console, but since JavaScript can generate both HTML + CSS, there's no reason this idea couldn't be used in that context.

I responded with some changes to your github gist. Thanks! I will now have to try to take this idea to the next level via JavaScript, making it easier for developers to use it and manipulate the settings.

<comment><AUTHOR> I guess I think the JavaScript console isn't something a lot of HTML + CSS designer/developers like me know much about. My vision of this tool is to make it for people who know how to drop a few files on their web server, link to them, adjust a property or two and have it working.

<comment><USER2> I see. What I imagined is like a one-click website that would throw it on top of an existing website, but that's just a suggestion. Tweakable parameters (or some way of discovering the grid of the website) would be cool, too.</comment></comment></comment></comment>


The coding languages that will get you a job at Google - <AUTHOR> https://news.efinancialcareers.com/uk-en/3002761/coding-languages-for-a-job-at-google <comment><USER2> Well yes these 4 are mostly used but unless you code in some completely unknown language, choice of language won't affect your candidacy.</comment>


A simple webpack starter without a framework - <AUTHOR> https://github.com/SinanMtl/webpack-simple-starter <comment><USER2> I recently went thru the exercise of creating a "starter" for a frontend project; and I guess everyone has got their own way of doing things.

To be frank I don't consider your approach "simple"; just look at the number of build and configuration files you got or the number of dependencies in package.json.

IMHO a good starting point is one that you add to. Not one that you subtract from.

</comment><comment><USER3> I wouldn't say it's "simple" and "without framework". It comes with jQuery, bootstrap, popper.js, and for some reason it has a lot of dependencies including "express" which is only for servers.

<comment><USER4> Express (and probably others) are for the build system. It's used to serve the development mode application locally during development.

That's (part of the reason) why they are installed under devDependencies.

<comment><USER3> I see, it has a "dev-server.js". Why is that not a package? We have super simple functionality like "left pad" but not complex dev servers as a package? What if it breaks? Do I need to update the template?

<comment><USER5> There are dev server packages for webpack ([https://webpack.github.io/docs/webpack-dev- server.html](https://webpack.github.io/docs/webpack-dev-server.html)). I can't tell you why it's not used in this specific project.

<comment><USER6> It should be noted that those are the "old and busted" docs. [https://webpack.js.org/configuration/dev- server/#devserver](https://webpack.js.org/configuration/dev-server/#devserver) is the place to visit these days.

<comment><USER5> my bad, i make that mistake all the time. doesn't help that searching for webpack documentation always turns up the bad results first!

Thanks for the correction.

<comment><USER4> If you use Google, there are plugins which can hide certain domains from search results.

I use to hide the old docs domain.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> I'm the primary maintainer for webpack-dev-server, and I was curious around the choice to roll your own dev-server.js, versus using webpack-dev-server. If there were shortcomings or things lacking, perhaps we can use that info to improve the module.

<comment><AUTHOR> No, I have not used the webpack-dev-server before, but I will try. Thank you :)

<comment><USER7> Not sure if you're aware, but the vue-webpack template actually switched over to webpack-dev-server just last week

[https://github.com/vuejs- templates/webpack/releases/tag/1.2....](https://github.com/vuejs- templates/webpack/releases/tag/1.2.0)

<comment><AUTHOR> I'm looked at previous version. So I'm not awared.

</comment></comment></comment></comment><comment><USER8> Interesting thanks.

Is there an example in there of how you'd go about to create a basic bundle with the css/js frameworks, and then create additional bundles which depend on the first one, but do not include it?

It's an issue I need to solve now in a legacy app which already had a bundle for one area of the site, and another for another area. I need the same in Webpack, but I don't know how to declare the dependency on a common "root" bundle in webpack.

</comment><comment><USER9> I built a similar starter kit that inludes both Webpack and Rollup. [https://github.com/asteridux/asteridux](https://github.com/asteridux/asteridux) it's definitely much simpler and bare-bones so it might not be for everyone.

<comment><USER10> Why does it have both webpack and rollup? Can't they both be configured to do the same thing? Why the duplication?

<comment> 52-6F-62 Yes they can. I can't speak for the offer, but I've used both in some testing/research environments.

It's worth noting that they way Webpack will parse classes with any "standard" build process will corrupt WebComponents custom element constructors. Rollup performs well here.

Of course maybe there's a more enlightened method to work with Webpack and WebComponents, but I don't know it.

So I have included both in one of my project-init scripts to run back-and- forth tests and see which performs better for the feature at hand. It's then pretty easy to remove one as a dependency once decided.

<comment><USER9> They both have different use-cases. Webpack makes more sense on the front-end for bundling web apps but it sucks for bundling libraries.

</comment></comment></comment></comment><comment><USER11> Just use jquery. In a few years jquery will be rediscovered and praised all over again.

<comment><USER12> There's a lot of jquery code out there that's basically lines and lines of for loops to maintain a state machine. Stuff that all these nice frameworks handle for you in a clean, bug-free way.

Almost every day of the year,

       <div id='business-class' ng-class="{selected:seatType=='business'}">
         Business Class
       </div>

feels better to me than:

        $('#seat_type').on('change', function(){
         if(this.value == 'business'){
             $('#business-class').addClass('selected');
         } else {
             $('#business-class').removeClass('selected');
         }
        });

There are other considerations, angular/React aren't the only solutions to this... but having _something_ to handle this sort of stuff cleanly and generally is a no-brainer to me.

jQuery's an amazing tool at the low level, but there are some higher-layer stuff we can easily apply to manage state.

<comment><USER13>
       $('#business-class').toglleClass('selected', this.value === 'business');

And $('#business-class') should be in a var.

<comment><USER12> this is indeed a cleaner example.

I think if you are diligent about your layout, you can separate out your DOM operations from your logic operations (think Flux) and end up with nice and simple code like this.

Personally I like the "rails" given to me in Angular/React (especially given I know how to circumvent them). I also am more productive in them. But I bet a lot of skilled programmers can go far with just simple tools like jQuery.

At least for me, having a paradigm enforced is useful, especially on larger projects with multiple stakeholders.

</comment></comment></comment></comment><comment><USER14> Thanks. Even if I don't use this directly there is a lot to learn from this project, like one thing I just learnt right now is how to create a vendor.js file without explicitly specifying it in an array.</comment>


Ask HN: Starting a SaaS business as non-technical founder - <AUTHOR> I have an idea and want to move it forward. Details below. Any advice?
(Given HN's technical inclination, I am aware that most will frown on this from the start. Yet another "ideas man".. ;-))
Background: I have never developed an app or website. I come from a non-tech project management and statistics background. I've dabbled in Python and R for statistics and academic-type research. So nothing really useful for app/web development. I also don't have any entrepreneurial credentials.
Current inclination: learn the necessary tools myself to code/develop my own product. My rationale is that the more I know the ins-and-outs of my product, the better I can sell it. Plus, this path may even help me attract technical talent, or a technical co-founder. But truth be told, part of this inclination is also to ease (at least partially) my imposter syndrome. I know outsourcing the product would save me time in the short-run, but I would feel like a total poser doing so. Also, worst case, the project fails but the technical skills I acquired make me more marketable for tech-type jobs. <comment><USER2> I co-founded a startup that had a technically-solid product that people swore they wanted. It failed. I've also worked for a number of successful startups. And I've consulted for startups that succeeded, and ones that sank without a trace.

If there's any pattern I can see with the non-technical founders, it's that some knowledge of coding is certainly nice, if only so the founders can talk to the actual coders. But coding's not the most important thing. The two most important things for a non-technical founder are (1) understanding their market, and (2) closing deals.

Steve Blank (a respected startup expert) proposed a way to prove that you can do (1) and (2): Collect _non-binding_ letters of intent from future customers. These letters should say something like "If you can produce software that does X, Y and Z acceptably well, we would would like to negotiate a contract with you for $1000/month." (See Blank's classic "Four Steps to the Epiphany" for more details.)

If you can collect 10 of those letters, then you should have no problem finding a technical co-founder, and you'll be bringing strong assets to the table.

(The details might be different for your startup. Maybe your product is only worth $200/month, or whatever. But the key point is that you can go talk to customers and close deals.)

<comment><USER3> Don't forget that MVPs don't need to be apps.

I'm a technical guy, but the first start up I joined started selling sheets of paper to clients at a premium before we scaled to an app.

If you can get a business running with spreadsheets, you'll have a lot of leverage bringing devs to the table.

<comment><USER4> More details on that first startup?!

</comment></comment></comment><comment><USER5> I'm a CTO in a 20 man startup and have been through the ringer on several different projects through my career.

This is a difficult situation as positive founders that you can build a company with are hard to come by (been there) and outsourcing is a minefield. I would suggest not to engage with an offshore outsourcing company, I have had terrible experiences here (they may tell u they are under NDA so cannot share any of their 'successful' projects, of which there are probably none), and if they know you don't know tech, it's a free for all. The other issue is they will try to bleed you up front and most startups are based on iteration, but you will probably have no cash left to incorporate the feedback into another version. Also, the quality will be terrible and they will not care about your project. What could Work, to get you started, is to find a single engineer you can work with (and pay) to get an MVP up and running, this could be a young guy or an off shore engineer but someone who will to work with you. This can keep your costs reasonable. The only issue here is that you have to think about how to move that MVP into a real product so you are really kicking the can down the road, but this can get you started.

In summary, avoid out sourcing like the corona virus.

<comment><USER6> Your comment comes off as xenophobic. I know it's acceptable in tech circle to talk this way, but not cool.

<comment><USER7> OK, so how do we talk about the prevalence of awful off-shore software- development firms without being "xenophobic"? If you're going to lecture us on how we talk, at least offer an alternative?

<comment><USER8> > OK, so how do we talk about the prevalence of awful off-shore software- > development firms without being "xenophobic"?

We don't, when the problem under discussion is endemic to _outsourcing_ firms and has no particular connection to their location. The fact that there are lots of outsourcing firms that are, relative to where the demand for their services is, also offshore is _completely beside the point_.

Raising that irrelevancy is the problem.

<comment><USER9> Offshore outsourcing tends to be by far the cheapest, hence assuming people will use offshore firms isn't xenophobia its based on a relatively likely assumption.

</comment></comment></comment></comment></comment><comment><USER10> I once read that if you open a restaurant and know nothing about running a kitchen then the cooks own the restaurant.

With tech it's similar. You could supervise the end result but there are so many decisions taken "in the kitchen" that will have an impact in the product. Maybe 6 months from now you will want to implement a feature and because the developer decided to use XYZ it's not feasible to do it and you have to rewrite that from scratch.

I'm not saying all founders should be technical, but at least one should be. It's a software company after all.

</comment><comment><USER11> > Also, worst case, the project fails but the technical skills I acquired make > me more marketable for tech-type jobs.

This. The chances of hiring folks to build an MVP and getting enough paying users off that to bring them on full time or getting enough traction to raise money are absurdly small. If you're already both very wealthy and are the single most famous person in your industry then maybe there's like a 10% chance of it working, if neither of those things apply then the chances are much closer to 0%. What will happen is that you'll spend a ton of money to build something, not really validate any assumptions or de-risk anything, and then be stuck with this poorly constructed prototype that's too complicated for you to modify yourself.

Spend six months learning to code, then try to build your product. If you're not making progress at a reasonable pace then just get a job as a full stack developer and spend a couple years learning from the best people in the industry while getting paid for it, and then finish your prototype on nights and weekends. After a couple years of working professionally as a developer, things that would have taken you a month you'll now be able to do in a day.

<comment><USER12> "The chances of hiring folks to build an MVP and getting enough paying users off that to bring them on full time or getting enough traction to raise money are absurdly small."

What about the chances if you build yourself? Any better?

<comment><USER8> > What about the chances if you build yourself? Any better?

If you have the skill to build yourself you avoid (really, reduce by some amount) the portion of the risk attached to getting people to build it (skill and counterparty and other risks) but you still have the market risk.

</comment></comment></comment><comment><USER13> Hello - exciting times. I would reconsider learning to do it all from scratch. The economic law of comparative advantage, I believe, also applies to people allocating their time. Pair up with 1-2 people who have complimentary skill sets so you can each bring your best to the table, motivate each other and drive toward your final outcome faster. Time is your enemy.

I'm a non technical cofounder and CEO of a 70-person SAAS company (that's bootstrapped). We could not have gotten where we are with without the other cofounders (there were three) and me pretending I could do everything and doing nothing well. We each were responsible for doing a job the others hated.

Anyway just food for thought. Email me if you want to hop on a call.

</comment><comment><USER14> I would.like to help/advise/interact with a non technical founder(s)

I do not want payment or equity. I have my own promising thing going on. Let's just make sure there is no conflict - I am in ads/algos/gaming.

Just looking for someone with strong references/connections/SV-background who might be willing to return a favour later on.

I can commit to ~1hr daily for the coming month to help get someone started.

</comment><comment><USER15> Learning to program will give you resilience. As a founder you are "the last resort" of the project. You will find yourself in this scenario many times and it's better to not depend on anyone.

When it comes to starting up, resilience and determination are much more important skills than outstanding programming skills. Or at least that's what experience has taught many of us.

Nowadays you can do a lot with few resources thanks to no-code tools [0], try to keep it simple and reduce LoC as much as possible. If you need a backend, tools like Firebase/Netlify/Saasify [1] are enough to build an MVP and get the ball rolling. And of course, do not try to build something that has 0 demand, just try to build the MVP that meets the demand you have identified and then take it from there.

[0] [https://nocodelist.co/](https://nocodelist.co/)

[1] [https://saasify.sh/](https://saasify.sh/)

<comment><USER16> _As a founder you are "the last resort" of the project. You will find yourself in this scenario many times and it's better to not depend on anyone._

So glad you said this. Applies to other kinds of ventures, not just software.

I learned this lesson the hard way in my first venture. Co-founder flaked, left me swinging in the wind.

Vowed to start something new on my own as a solo founder where I could at least prototype and iterate early versions AND revenue was coming in the door from the beginning. This enabled me to hand off things that tested well to contractors and grow that way. Goes against YC "you must have a co-founder" dogma but it works.

</comment></comment><comment><USER17> As someone previously on your shoes, and. who now is able to code. do it yourself, seriously it's not that hard and you won't regret it, you can get an excellent CTO later when you need to scale and have already gained some momentum/traction/product-market fit.

</comment><comment><USER18> There is an explosion of no-code tools these days - companies have gotten paying customers and become profitable without writing a single line of code. I'd try making a PoC and seeing if you can find interested customers.

<comment><USER19> Glad someone mentioned this. Tools like Bubble.io can help a relatively non- technical person get a MVP up in a matter of weeks. It's particularly useful for any kind of CRUD app (which most SaaS apps are at their core).

As a bonus, using these no code tools forces you to learn how to architect an application at a high-level, which can be useful if you choose to learn how to code "for real" someday.

</comment></comment><comment><USER20> It looks like a win-win i.e. you develop a product and also develop technical competency however it is not, my suggestion is to keep them separate, you can always delve deeper into technology if you wish to do so. Learning technology will just put additional constraint on what you can deliver and when you can deliver your product. Decide one thing whether it is developing product or tech competence and give it 100%. So for example if you decide to go for product than take the most efficient path to develop it either by using no- code tools or using laravel saas template or whatever language template that would make your job easier to get the product out. If you decide to go for tech, to maximize your chance of getting hired you should go for leet code and associated sites to make sure that you are able to clear the interview, there are countless tales of technically competent people not able to clear the interview because the interview process in industry is rigged in favor of leet code type interviews.

</comment><comment><USER21> Some questions to flush out some more details.

1.) Are you planning on making this your full time job?

2.) Who is your target customer?

3.) Do you know anyone who will be a customer the day it will launch?

4.) How much money are you willing to devote to the project?

5.) Will it do one thing well, or does it need have to have a lot of features?

6.) Is there already competition/is there already a piece of software that handles this problem?

</comment><comment><USER22> I would say, Lean to code.

Divide your SaaS project in small unit of task, explore each section unit by some video tutorial at first-good for first. try on youtube, freecodecamp or udemy. gain knowledge of subject and make small function to demonstrate the part of your saas products capability. Explore and learn, you can later hire some dev, co-founder or CTO of tech background.

For coding, I would say put your efforts in some nice language Eco-system. Python is just fine no offense, but If I were at your place I would use PHP or node. My reasoning: PHP is language of my personal preference. For node, Its basically javascript at server-side, so It requires you to learn just a single language, its features and tooling. if you are writing web app you can share codebase of many part of frontend and backend.

<comment><USER23> If he'll starts to learn how to code, he won't be good at coding nor business.

<comment><USER4> I've long thought this. Could you elaborate?

</comment></comment></comment><comment><USER24> Hi I am actually on the same journey as yourself though I am engineer from a different domain. This has been stated so many times here on HN but I will repeat myself again. Please ensure that you are solving a problem that exists. It could be a problem that you face in your own domain or a persistent friend that a friend has. Recently I phoned around 50 coffee shops that run on Shopify to see if they have a problem that needs solving. Talk to your customers and know them inside out. Know where they hang out and devise a plan to reach them.once you know your customers and where to find your first 10 you can then apply the frameworks presented by lefstathiou and others to go about building something either solo or with a co-founder. Email: vsap78 at gmaildotcom

</comment><comment><USER25> What have you tried? I've been talking to quite a few no-code people in regards to a little tool I built called Newsy

[https://www.newsy.co](https://www.newsy.co)

Basically, it turns an un-used domain into a content aggregator (e.g. Reddit). But it does have quite a lot of features to build..

\- contents via RSS and keywords \- membership, subscribers, automated newsletters \- traffic via sharing on twitter, tumblr etc \- monetization through ads \- SEO with sharing links with other users and building backlinks

The reason I mention is that many no-code people I spoke to found it an interesting way to "test out" the particular interest market and build some traffic (or at least try out) before diving in.

</comment><comment> the-dude Register domain, build nice looking landing page claiming what you are working on, harvest emails and start talking to these people.

Only proceed if there is some kind of traction.

I have never done this myself, but I have seen people claiming this here on HN.

</comment><comment><USER26> I also have a background in statistics, but landed a job as mostly a software engineer (though technically my title is Data Scientist... buzz words!). I've been building basically a cookiecutter framework for the base of a SaaS app (basic pricing, user auth, etc.), and brainstorming ideas.

As others have said, the ideal route is to validate the market first, and guarantee customers before effort is committed.

If you'd like to tag up, just to chat casually about the idea or just entrepreneurship in general, feel free to e-mail me (in bio).

</comment><comment><USER27> I have no idea what stage you are at for your idea, but I'd recommend trying to line up customers who love the product based on something you sketch out on a notebook (piece of paper) as a step one.

I'd also validate that the problem you are trying to solve is a really strong pain point for whoever is running into it. Having someone offer to pay you lots of money to solve it as a consultant is a good sign.

You can actually get pretty far with validating an idea before writing a line of code. You can even get potential customers to commit to paying you once it's built (some will renege later)

TLDR: \- there is a ton you can do before writing a line of code. In many cases since you are new on this journey, and your background is technical (stats, dabbling in code) the EASIEST part of the journey will be learning to build saas apps and/or finding a technical cofounder.

</comment><comment><USER23> Very simple. Start a busyness. Sell a concept. Get signatures or advanced payments. Then hire someone who can do execute.

You want to start a business. Not start an "app".. right?

</comment><comment><USER28> If you feel learning to code would be a worthwhile end in itself, sure build it yourself. Just recognize it'll take much longer and you may have to scrap it when you bring someone more technical on.

Otherwise you should outsource the absolute minimum necessary to prove the idea has legs in the market and use that to attract a technical cofounder.

</comment><comment><USER29> I'm a non technical co-founder and CEO of a SAAS company. We were unable to have gotten where we are with without the other prime supporters (there were three) and me imagining I could do everything and doing nothing admirably. We each were answerable for carrying out a responsibility the others abhorred.

</comment><comment><USER30> I'm a technical founder and would be happy to chat. Glad to try to point you to the next step, give a big picture overview of technical requirements, and possibly even be involved if we are a good match. Feel free to drop me a line email@example.com

</comment><comment><USER31> I'm in the exact same boat!

</comment><comment><USER32> Check bubble.io</comment>


What do you think of Ireland's Propeller Seed Acceleration Fund? - <AUTHOR> http://www4.dcu.ie/ryanacademy/propeller.shtml

<comment><USER2> I think the fact that Accelerator funds are going global can only be a good thing- each Accelerator's value can vary, of course. But overall, a net positive for sure</comment>


TSB Train Wreck: Massive Bank IT Failure Going into Fifth Day - <AUTHOR> https://www.nakedcapitalism.com/2018/04/tsb-train-wreck-massive-bank-it-failure-going-into-fifth-day-customers-locked-out-of-accounts-getting-into-other-peoples-accounts-getting-bogus-data.html <comment><USER2> This is from 3 days ago, same day as another thorough discussion about the topic on HN:

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

<comment><USER3> This kind of #3 in the HN TSB screw up series

\- 'TSB gave me access to someone's £35,000' (bbc.co.uk)

\- TSB Bank: Botched upgrade has left customers unable to access their accounts

\- this

\- Warning signs for TSB's IT meltdown were clear a year ago, according to insider

</comment></comment><comment><USER4> I am a TSB customers and the service has been insane.

Here's some of the highlights

\- Login screen regularly throws a message from the backend saying 'java.lang.NullPointerException' (so now I know what the backend written in)

\- My balance was totalled incorrectly, which made me appear to be very wealthy.

\- Payments had gone missing from my statement (how do I know they were missing, one of them was my pay)

\- When I did login I tried to transfer some funds and was met with 'Payment successful' followed by a java.lang.IndexOutOfBoundsException. Had the payment worked? Who knows

\- They have a fundamental scaling issue.

I've never seen anything like it. I do not get the impression this will be fixed quickly.

<comment><USER5> Why don't you just bank elsewhere?

<comment><USER6> British banks are developing a bit a of a habit for massive IT failures. Moving is fine but someone else will fail next month.

<comment><USER7> Although, as the article mentions, TSB are owned by a Spanish bank, Sabadell, and it was the move to Sabadell's platform, developed in Spain, that caused the trouble!

</comment></comment></comment></comment><comment><USER8> I feel bad for the rank-and-file developers (the ones without decision-making power) who are stuck trying to fix all this in what are probably insanely bad working conditions right now.

Yeah yeah "get a different job" or "you made the mess, you fix it" but massive failures like this aren't orchestrated by the front-line developers, they happen because people many steps removed from the work make bad executive decisions.

A deadline was probably set long ago, and no one adjusted it when unexpected problems and complexities arose.

<comment><USER9> Sure, this definitely is true, but when your website or app is throwing an IndexOutOfBoundsException left and a InvalidBeanException right, your code quality also has issues. Security auditors (good or bad as they may be) would likely have your head for _any_ leaked exception, for all they know the application may also be leaking other info.

<comment><USER10> My guess is the code just wasn't ready for production... someone higher up was screaming they didn't care and a deadline is a deadline so push it out.

<comment><USER11> Alongside this, it's all down to risk.

I have limited experience with financial systems (zero directly working with banks), but I've noticed a trend where institutions are willing to take huge gambles with the integrity and security of their systems if the risk isn't that great.

For them, risk was losing money, and while you'd think that having severe downtime or awful security practices would result in losing money, I didn't meet a single manager that believed this. They were happy to cut corners wherever because it got the job done faster, and under budget, and that's what they were judged on.

A mate of mine worked for a large UK-based bank, and pretty much confirmed this for me when we asked about what it was like to build web services for a huge bank. From the outside, their devs were the cream of the crop. Oxbridge educated, some ex Google or Microsoft guys, and years of experience in building huge systems, but a management culture that saw them as code monkeys, and wanted work delivered that was an inch off of negligent if it meant it was done quick.

The risk to the managers was their job, but from an upper management perspective all that mattered was whether it would directly affect the bottom line in an obvious (non-tech) way. Bugs, security breaches, or poor availability didn't affect this, and were worthwhile risks.

<comment><USER12> I've worked with the UK banks. From experience they're typically large outsourcing firms that contract their work out to the large consultancies that are more interested in appearance and winning bun fights than delivering quality.

I just left one of these orgs about a month ago where the program CTO of the bank (title inflation) wanted to hire me direct because they believe they need to have a core competency that isn't aligned with external political agendas, but largely the other senior managers just see having their own techs as a risk because they can't outsource the blame.

That and directly answering questions or questioning process upsets a lot of people because they have fiedoms. Like someone asks you for all your IP address you have on cloud and what server they're associated with. They have no ability to handle the dynamic nature of these changing but their job is to write them down so you need to fall inline sorta deal...

</comment></comment></comment></comment></comment><comment><USER13> British Banks have been playing "fast and loose" with their IT systems for a long time now. TSB won't be the last time we see such a catastrophe. It is not the first in recent memory either.

"Fast and Loose" may mean rushing changes through with unrealistic timelines, outsourcing the software development or/and infrastructure management to the cheapest location possible, sacking onshore experts to save money, etc. The UK Government is fully complicit, as their support for RBS (owned by the Government themselves) during their ruthless cost-cutting showed.

Banks are of systemic importance. People suffer if they can't make payments on time or can't access money that's needed for something essential. But the systemic importance is not reflected in the legislation: we have a situation where Banks outsource their IT to Indian service companies and do their upmost to move the "heavy lifting" of software development to the cheapest location they can find, while the social networks and search engines are recruiting the top talent.

<comment><USER14> Indeed. Banks are technology companies. British high street banks either don't understand or refuse to believe that they are technology companies.

<comment><USER15> Like the Civil Service, the senior ranks are selected by where their parents sent them to school, and how well they learned to conjugate Latin verbs while they were there. Technical skill is not only viewed with contempt it is actually a bar to promotion.

Investment banking is actually a lot saner - Thatcher's reforms in the 80s went a long way towards destroying the Old Boys Network in that industry niche.

</comment></comment></comment><comment><USER16> This is one of the reasons I have 4 bank accounts in 2 different countries, and also cash at home.

I can't understand people with one account, one card, and 10 pounds in their pockets.

See also recent Swedish fears that their cashless society is very vulnerable to a digital attack.

<comment><USER17> I haven't gone quite as far as that, but I agree with the principle.

As much as reasonably possible, I keep facilities like personal banking, personal credit cards (always at least two), any mortgage or other secured loan, and any business financial services with different organisations that aren't part of the same group. There's often small print in bank terms and conditions about being allowed to grab money from anything of yours they have access to if there is a problem with anything else, and frankly I don't trust them not to abuse that, particularly if they've already made a mistake that caused a serious problem in the first place. Also, the FSCS compensation limits tend to be per person per firm, so dividing assets can sometimes increase the amount covered if anything really bad happens to the financial firms.

And yes, I do also have some emergency cash hidden in safe places. I don't get crazy paranoid about it, but it's a substantial amount, certainly enough to fill my tank and buy essential provisions for a while. I would be concerned about becoming a truly cashless society as well, for this among other reasons.

</comment></comment><comment><USER18> "Do not request a bean from a BeanFactory in a destroy method implementation!"

User friendly error message of the year!

[[https://twitter.com/thejackthomson_/status/98856435451268710...](https://twitter.com/thejackthomson_/status/988564354512687104/photo/1)]

<comment><USER19> Jack! Did you really sell the cow for beans??

</comment></comment><comment><USER20> This article is 3 days old. Customers are _still_ having issues, so it's 8 days so far.

</comment><comment><USER21> As is usually the case, the owner outsourced to IBM last year. What happened next was all but inevitable.

<comment><USER22> The CEO brought IBM in this week to clean up the mess.

It doesn't appear they were involved in the original migration.

<comment><USER21> The big support contacts started rolling in years ago. I know, because I was there.

</comment></comment></comment><comment><USER23> This kind of thing gives me confidence in "challenger banks" like Monzo who are building their systems in-house and I hope with a lot more testing than this.

As far as I know Monzo is using microservices (a bank is probably big enough for that to be the right choice) to try and limit the damage of anything insane like this. The way they handled Prepaid to Current Accounts was absolutely seamless [https://monzo.com/blog/2018/04/05/how-monzo-to-monzo- payment...](https://monzo.com/blog/2018/04/05/how-monzo-to-monzo-payments- work/)

<comment><USER24> This has nothing to do with microservices and everything to do with lack of skill, proper engineering and chaos in IT departments of almost all banks. You can write and deploy (don't forget about the fact developers aren't skilled in ops at all and that's a common cause for these things) good software in microservices and monolith architectures, you just need to know what are you doing.

Monzo/Mondo had issues on their own, and in fact they have very frequent issues with their payment processors.

<comment><USER25> They _had_ very frequent issues with their payment processors.

The current account (now the only account as the prepaid beta programme has ended) runs on their internally developed payment processor, and has so far had minimal issues.

More information here: [https://monzo.com/blog/2018/04/04/ending- prepaid/](https://monzo.com/blog/2018/04/04/ending-prepaid/)

</comment></comment></comment><comment><USER26> _bank IT is a systemic risk waiting to happen_

The same thing happened with Tangerine.ca when they launched their new website late last year. Tangerine is owned by one of Canada's "big 5" banks, Scotiabank.

For at least a week after the launch, users were experiencing login errors, timeouts, incorrect balances and features not working. Backend code exceptions would bubble up to the surface. It was ugly.

But even with the backend issues ironed out weeks later, users continue to lament about the horrible new UI, which over 6 months later, is still a UX nightmare on desktop web browsers.

Reading the 400+ Facebook comments on their "launch day post (they since removed the post from the timeline) is quite an eye opener.

Apparently they did minimal testing and disregarded all user feedback during the beta phase.

The comments are still accessible from the post photo here: [https://www.facebook.com/TangerineBank/photos/pb.46798899664...](https://www.facebook.com/TangerineBank/photos/pb.467988996640009.-2207520000.1507258210./1225878164184418/?type=3)

</comment><comment><USER27> This is one reason that I refuse to give up on paper statements mailed to my home.

<comment><USER28> I download all PDFs and back them up as any other important data. I fail to see how paper statements solve anything besides collecting dust.

<comment><USER29> We know that PDFs are editable, but everyone seems to act like they're not, at some point thats going to turn into a mini-crisis.

<comment><USER28> Everything is editable in a hex editor, but PDFs can be certificate signed allowing for document authenticity and integrity verification.

<comment><USER30> And of course the banks sign their PDFs ...

<comment><USER28> That's not PDF's fault, just like you can't blame Git for developers not signing their commits.

</comment></comment></comment></comment></comment></comment><comment><USER31> I'm a Lloyds customer, and I'm not suggesting that this is in any way related but my current account today showed a planned 0% overdraft limit of £2 shy of £10bn.

</comment><comment><USER32> Ironically, before they merged in the 90s, Lloyds had a terrible computer system, and TSB was market-leading in major bank IT customer systems, at least from a customer POV. Then they didn't learn and continue with TSB's IT systems and management, but became more lloyds instead. Sadly, this new TSB is likely only in name anything like the old one.

</comment><comment><USER33> I've been wondering: if this issue isn't solved soon, how long before we see a run on that bank?

<comment><USER16> Jokes on you, you can't do a run on a bank where you can't login or take any money out.

More seriously, I would definitely move my money somewhere else if I had an account there. Not because I would worry that it will disappear (government insurance & all that), but just because this looks like the kind of problem which will take a long time to fix, and which could strike back.

<comment><USER34> You definitely can do a run on a bank where you can't log in - you come to the office (or mail a registered letter) with written instructions to transfer all your money elsewhere and close the accounts, and legally they have a quite limited time to comply, I believe one or two business days at most, until various EU consumer protection laws for financial products kick in.

Furthermore, there's a lot of process for switching banks that can be done by the customer through the bank they're switching _to_. While your savings may be stuck in TSC for some days, you don't need to go to TSC at all if you'd choose to switch your wages and recurring bill payments to somewhere else, you just go to the new bank.

<comment><USER35> Current Account Switch Service, right?

</comment></comment></comment></comment><comment><USER36> Is this a Mr. Robot episode?

<comment><USER29> I think it might be the ending of Fight Club

</comment></comment><comment><USER37> The CEO says he's given a deadline of Saturday for IBM to fix the problem, that seems a pretty tight deadline.

Are they using IBM technologies for their stack?

<comment><USER20> It'd be a bit unfair to say that to IBM if they're not.

</comment></comment><comment><USER38> The mess is big enough for the post-mortem to be made public. Should be interesting.

<comment><USER39> I would imagine the UK regulators would launch an enquiry and publish a report like they did when NatWest managed to break all their overnight batches: [http://www.fca.org.uk/your-fca/documents/final- notices/2014/...](http://www.fca.org.uk/your-fca/documents/final- notices/2014/rbs-natwest-ulster)

</comment></comment><comment><USER40> I'm surprised no one mentioned the solution, buy bitcoin..

<comment><USER41> HEY LET ME JUST LOGIN TO MY TSB TO MAKE THE TRAnsfer...</comment></comment>


Sears forces reddit to remove post regarding Sears URL hacking - <AUTHOR> http://www.reddit.com/r/AskReddit/comments/9clji/where_did_my_post_about_searscoms_urlhackable/ <comment><USER2> "forces"...

Did Sears thugs show up at the Reddit offices armed with craftsman crescent wrenches and nail guns?</comment>


Ask HN: Show off your weekend project - <AUTHOR> What's the coolest thing you've built in a single weekend? I find that the more weekends it takes me to finish a project, the less likely I am to finish it, so I'm interested in what people have managed to squeeze into a weekend.<p>Links to the deployed project or code are appreciated! <comment><USER2> I built a Pokemon Go map and anonymous chat over a weekend couple of months ago. I ended up hating the project because it kept getting rejected by Apple for a whole week and when it went through there were already ton of similar apps.

Either way I released the code if anyone is interested: It's Swift with Firebase backend

[https://github.com/kingreza/Social-Go](https://github.com/kingreza/Social-Go)

</comment><comment><USER3> Wrote a small web app that allows non-profits (or any organization) to collect donations from their members via SMS.

[http://kindly.at](http://kindly.at)

<comment><USER4> Great app but no Terms of Service :( [https://m.kindly.at/tos](https://m.kindly.at/tos)

</comment></comment><comment><USER5> I wrote a little script that sends me a daily email digest of my rss subscriptions:

[https://github.com/raymestalez/rssdigest](https://github.com/raymestalez/rssdigest)

</comment><comment><USER6> [https://github.com/freeciv/freeciv-web](https://github.com/freeciv/freeciv- web)

</comment><comment><USER7> [https://nomansskystreams.com](https://nomansskystreams.com)

As I am obsessed with No man's sky lately, and I wanted to play with Twitch API, I built a web app + android app to watch No Man's Sky live streams, during a week-end 2 weeks ago

</comment><comment><USER8> For the cool-factor, if you're in the right niche you might find it cool. Although it isn't super advanced and without example-code for the pure C parts I wouldn't have made it.

[https://github.com/jontelang/syslogWindow](https://github.com/jontelang/syslogWindow)

It displays the console output on jailbroken iOS devices, right on the screen.

</comment><comment><USER9> I wrapped the zero-copy socket system call, for linux, for Golang:

[https://github.com/nathanjsweet/zsocket](https://github.com/nathanjsweet/zsocket)

I've developed it quite a bit more now, but I got the basic functionality done in a weekend.

The thing I'm proudest of is that the project doesn't directly reference the cgo package, has no locks, but is threadsafe (the no locks took more than a weekend to do ;) ).

</comment><comment><USER10> Less than a month ago I started working on this small app that lives in your taskbar and monitors your servers by doing HTTP requests. I built it because I needed/wanted it.

I plan to test it a bit more before I post it to /show. Feedback is welcome

[https://github.com/meznaric/ServerStatusApp](https://github.com/meznaric/ServerStatusApp)

</comment><comment><USER11> I wrote a food dish by location web app

[http://bestfoodnearme.com](http://bestfoodnearme.com)

As a way to solve a problem I have while trying to find great/healthy food when traveling. I am still working on improving the look.

I also used the project to teach myself Go

</comment><comment><USER12> [https://www.ean-now.com/](https://www.ean-now.com/)

In the need of ean codes for a product I created ean now so others dont face the same problem when they are once step in front of selling their products.

</comment><comment><USER13> I've been working on [https://jobrudder.com](https://jobrudder.com) . It's a suite of career tools for professionals.

</comment><comment><USER14> Currently working on Golang implementation of Paxos consensus algorithm: [https://github.com/RichardKnop/paxos](https://github.com/RichardKnop/paxos)

</comment><comment><USER15> [https://www.videolearns.com](https://www.videolearns.com)

free learning videos</comment>


Securing an IoT Device Is Easier Than You Think – By Buglab on Ethereum - <AUTHOR> https://blog.buglab.io/securing-an-iot-device-is-easier-than-you-think-c9c9898a83d2 <comment><AUTHOR> BugLab is a cybersecurity crowdsourcing platform built on Ethereum.

Buglab helps you discover vulnerabilities of your websites, mobile apps, IoT devices and Smart Contracts, by challenging the community of hand selected security researchers through a contest.

Challenge yourself to find vulnerabilities in Buglab hosted contests and get rewarded. The team is looking for talented Web, mobile and IoT devices security researchers to join us.

Check out [https://buglab.io](https://buglab.io) for the whitepaper.</comment>


Would you pay for freelance marketing and user research? - <AUTHOR> I'm thinking about going independent as a freelance marketing and user research contractor for startups.  Think of me as one person method, ideo, or other marketing and usability / user research shop without the overhead, but all of the experience.
I can help you package and pitch your product, learn more about what users want from your work, build a marketing plan, and teach you how to do those things yourself.
I'm doing a bit of exploration.
- Would you hire someone like me?
- What would you want me to do for your project or company?
- What would you want to pay hourly or weekly?
p.s., A few of my developer friends suggested that I post this here.  Apologies if this feels like spam. <comment><USER2> FWIW

Being a marketing guy myself I found it hard to sale my skills ( how ironic ) as a freelancer. The main reason is that many young entrepreneur think that marketing is simple and they will just "do it themselves" ( And fail ). They don't understand marketing is a skill on its own, like writing code for example. So the first thing you should do is educate them on that and then sale your service to them :)</comment>


Why does HTML think "chucknorris" is a color? - <AUTHOR> http://stackoverflow.com/questions/8318911/why-does-html-think-chucknorris-is-a-color <comment><USER2> Fun quiz. Go to a page like [http://codepen.io/tholman/pen/EwlKd](http://codepen.io/tholman/pen/EwlKd). Try the following colors. Without looking it up, which ones are real named colors and which are artifacts of the bizarre scheme?

"fire" "campfire" "firebrick" "firefly"

"cornflower" "cornflowerblue" "cornflowerred"

"seablue" "skyblue" "seagreen" "seafoam"

</comment><comment><USER3> Never heard of this before. The described algorithm for parsing color codes seems absolutely bizarre. What could've possibly been a rationale for it?

<comment><USER4> HTML was originally formalized on top of SGML, and in a way which was permissive (SGML allowed this, because it was supposed to be a flexible generic way to specify markup languages). This meant, for example, that you could omit closing tags for many elements, and something that processed HTML was supposed to know the rules for when and where to infer the existence of a closing tag. There were also whole elements which could simply be omitted -- if no tags indicated where they were or what they contained, they too could be inferred.

The permissiveness had a drawback, though, which was that many people didn't learn correctly what could and couldn't be omitted, or what was and wasn't required. And so badly-formed HTML dominated the Web. Browsers had to bend over backwards to make sense of this and display something, since at the time there was heated competition in the browser space: if Netscape just bailed out with a parsing error and IE didn't, people would use IE because they'd blame the failure on Netscape instead of on the HTML (same thing for IE -- it couldn't bail out with an error because Netscape might look better in comparison by rendering the page).

XHTML -- HTML reformulated on XML instead of SGML -- tried to bring XML's strict well-formedness handling to HTML, but turned out to be an utter failure. See Evan Goer's classic "XHTML 100" for an example of how even _experts_ routinely could not do XHTML properly and had to be saved by browsers which never really applied the strictness correctly:

[http://goer.org/Journal/2003/04/the_xhtml_100.html](http://goer.org/Journal/2003/04/the_xhtml_100.html)

There was an attempt at XHTML2, but it collapsed under its own ambition.

Enter HTML5, which began as a response to the perceived stagnation of W3C in iterating the HTML standard (since much of their effort was being expended off in markup-astronaut space on XHTML2). HTML5 introduced a bunch of useful things people had been asking for for a while, but also took the approach of codifying how to parse HTML. And not just valid HTML, but _anything_ claiming to be HTML. If you run the HTML5 algorithms, you can get a parse tree out of damn near any kind of junk, and that process is now standardized. In pragmatic fashion, it mostly codified the hacks and workarounds browsers had already come up with.

And that's how we get the HTML5 legacy color parsing algorithm, which can turn almost any junk you stick in a declaration into an RGB color value. Most of what it's doing is trying to filter out obvious cases (matches for named colors and certain hex specifications) early, then figure out a way to turn random junk consistently into a hexadecimal number.

If you're interested, I maintain a Python library for working with HTML/CSS color values, and an implementation of the legacy color parsing algorithm with directives from the spec interspersed as comments so you can step through it and see what's going on:

[https://github.com/ubernostrum/webcolors/blob/master/webcolo...](https://github.com/ubernostrum/webcolors/blob/master/webcolors.py#L707)

Its documentation also covers the history of how colors are specified in HTML/CSS:

[http://webcolors.readthedocs.io/en/1.7/colors.html](http://webcolors.readthedocs.io/en/1.7/colors.html)

But a simple description of the way it works is:

1\. Bail out if the value is not something the algorithm can work with. Non- Unicode inputs can't be parsed into a color, and an empty string can't be parsed into a color.

2\. Strip leading/trailing whitespace, and look to see if the input matches a CSS named color, or the three-hexadecimal-digit shortcut format of CSS2, shortcutting to parsing via those rules if possible.

3\. Run the junk normalizer. This is where it looks complicated, but mostly it's just finding anything that can't possibly be part of a hexadecimal number and replacing it with one or more zeroes, then doing some padding and truncation to get the end result to come out as a hexadecimal string specifying a 24-bit integer. Then that 24-bit integer is the color value.

<comment><USER5> No browsers ever actually parsed HTML using SGML. It is still possible to edit current HTML with SGML editors with some limitations.

<comment><USER4> Whether anybody parsed it that way is irrelevant; the point is that a lot of the inherent sloppiness came from the SGML roots.

</comment></comment></comment></comment><comment><USER6> Back when HTML only had a handful of basic color names ("red", "green", "gray", etc.), I recall there being a browser that, if you tried to use the spelling "grey" would show the color green instead, since that was what it matched based on the first three letters of the word. The question reminded me of that, but I can't find any sources for it now--I guess it's a 20-year-old problem at this point.

<comment><USER4> As of CSS3 there's no workaround needed; CSS3 adopted SVG's named-color palette, which defines both "gray" and "grey" and has both of them become rgb(128, 128, 128).

The color-parsing algorithm which turns "chucknorris" into a color also will return rgb(128, 128, 128) for either spelling, since it specifies that any value which is a case-insensitive match for a CSS3 named color should just short-circuit resolve to that color.

</comment></comment><comment><USER7> Wondering what a given legacy HTML color value (as seen in `bgcolor`, `text`, `link`, `vlink`, and `alink` attribute values) looks like? This tool (which I made for a presentation years ago) shows you: [https://mothereff.in/bgcolor#mathiasbynens](https://mothereff.in/bgcolor#mathiasbynens)

</comment><comment><USER8> Chuck Norris supports creationism in schools and is not big on the gays mixing in society.

It's fine to love his movies, politics don't effect art in that regard, but if you think he's cool and worthy of a meme, I guess fair enough, as long as you're aware of his politics and consider it to not effect memes should you disagree.</comment>


US download speed average of 2.3 5mbps, Finland 21.7 mbps, and Japan 63.6 mbps - <AUTHOR> http://latimesblogs.latimes.com/technology/2008/08/us-and-californ.html

<comment><USER2> Something has to be wrong here. 2 mbps, not 22 mbps average download speed would be very near to reality in Finland. 512k is lowest DSL here and DSLs up to 8mbps form the vast majority of Finland's broadband connections. DSL speeds 10mbps to 30mbps are available, but quite rare (>50$ a month).

More data: In January 2007 broadband penetration of Finnish households was 53% and 96% had the availability to have one.

According to Finnish operators, 2 mbps broadband is the most common one (info at the site of Finnish Ministry of Transport and Communications). I call bullshit.

<comment><USER3> Everyone in the states seems to lament the amount of broadband we have access to. Frankly, I don't even see it as a last mile issue. I have a 20Mbps connection (via RCN) - and I know I'm getting full speed because anytime I download from MIT, I get speeds above 2MB/sec. However, I never see those speeds from the rest of the web because the other end doesn't have the capacity.

Am I the only one that finds their connection speed is more a function of server capacity on the other end than their last mile connection?</comment></comment>


Ask HN: Could "Show HN" be shooting your site in the foot? - <AUTHOR> What is the purpose of showing your site to other entrepreneurs?
To show off your technical accomplishments to other techies even if that means handing your idea on a silver platter to other capable would-be entrepreneurs to work on?
"Ideas are a dime a dozen", I hear you say.
"Only execution matters."
Well, regardless, your execution is now or imminently in competition with that of other developers who read about you right here.
It seems to me a lot of "Show HN" is a cheap excuse for claiming you've done your part to drive traffic to your site, even if that traffic does not feed your bottom line and could run against your self-interest. <comment><USER2> I often show ideas to my techy friends prior to releasing them, including on HN. People are often kind enough to give feedback. Some of that feedback has to be taken with a grain of salt, but I've definitely picked up an idea or thirty here that were big wins for my business. It is also _enormously_ motivational for me to be able to share with people who understand where I'm coming from -- indeed, I really doubt I would have a business were it not for my Internet sanity outlets.

I am fairly open about my business, down to publishing sales stats, and every product I've ever released has been cloned. That is not a significant problem for my business. There is no beautician in the United States who is currently not using Appointment Reminder because it was cloned. There is a metric truckload who are not using it because my marketing is, to a first approximation, terrible. I optimize my efforts to improving the marketing rather than avoiding clones.

I'm with you on "driving traffic" being a value-destroying mindset, but do not agree that most people participate on HN to drive traffic.

</comment><comment><USER3> _Well, regardless, your execution is now or imminently in competition with that of other developers who read about you right here._

How many motivated, hard-working, capable people do you think are lurking here, just waiting for somebody to drop an idea in their lap? Wouldn't the motivated, hard-working, capable people most likely already have their own projects to worry about, and therefore lack the resources to jump on "your" idea? And do you really care about the people who aren't motivated, hard- working and capable?

Personally I wouldn't hesitate in the slightest to talk about my project(s) here... anybody who's terribly likely to represent competition to me, probably either already is, or would be so anyway. And the rest are just gonna read, go "uh huh" and move on to the next comment.

Heck, I'm so unconcerned about "idea theft" that all my source code is open- source, and under the Apache license.

And to avoid an accusation of hypocrisy:

<http://www.fogbeam.com>

<http://code.google.com/p/screwpile>

edit: to be fair though, what I'm building isn't a "site," it's enterprise software, although a SaaS offering could be in the cards down the road. So my case doesn't _technically_ fit the OP's question as worded. But I still stand by the contention that sharing here is most likely harmless.

<comment><USER4> Case in point: Nobody has cloned reddit's code and built another reddit. Of course, they're selling the community, not the code, so don't go around open sourcing your SaaS thing.

<comment><USER5> I may have missed your point, but there were a couple of reddit clones floating around at one point. No doubt they're all dead by now, but not for lack of effort.

<comment><USER4> By "built another reddit" I meant one that got even remotely comparable traffic. The difficulty in making another reddit isn't writing the code, let's put it that way.

</comment></comment></comment></comment><comment><USER6> > What is the purpose of showing your site to other entrepreneurs?

Mostly to get feedback. Sometimes to get a little pat on the back, especially if motivation is dragging. But I suspect mostly it's to get sanity-checks and feedback for improvement.

Sometimes you've been so working hard on something that you're too close to it to evaluate it properly. Taking a few steps back from your project and getting feedback from HN is really handy for finding out whether you're in the weeds or not.

I've gotten incredibly useful feedback from my "Show HN" posts, without which I'd probably not have even continued my projects.

As for driving traffic, there's certainly an aspect of that, but mostly in the sense of establishing a toe-hold in the Google index and getting links from people who like what you produce and then later blog about you. I don't think (most) people are trolling for clients/customers here.

</comment><comment><USER7> No the feedback is invaluable and makes you think and work/strive towards a better execution.

I posted my start-up here a long, long time ago. The feedback i got was invaluable and over the years as we've bootstrapped and worked on the concept privately(amidst our daily bump n grinds) ... the feedback(positive & negative) pushed us to think how to create this concept so its enjoyable, fun, as well as useful.

Happy to say a few years later we will be finally launching the core concept in next few days.

So thank you Hacker News!

</comment><comment><USER8>
        >>What is the purpose of showing your site to other entrepreneurs?

I have to wonder what percentage of people on this site are entrepreneurs or just hackers that like cool stuff? I think the feedback from the latter could be invaluable for people just launching their website.

</comment><comment><USER9> > To show off your technical accomplishments to other techies even if that > means handing your idea on a silver platter to other capable would-be > entrepreneurs to work on?

This line of reasoning is horribly flawed. And besides, if someone other than you can take your idea, copy it, and eat your lunch... then they kind of deserve their success. At the "Show HN" stage, you already have something built, right? That means that even assuming that the mysterious "badass-hacker just sitting on HN waiting for an idea to copy" even exists, you should be far enough ahead that it doesn't matter.

</comment><comment><USER10> Unless the target market is techie/entrepreneur, I can't imagine anyone using HN as a marketing tool. Instead, I think most "Show HN" posts are requests for feedback from an audience who is generally pretty smart about UX/marketing/conversion.

As for competition, any Show HN posts that show off successful sites are successful because of a lot of reasons. I haven't seen a rash of Bingo Card Creator competitors or Balsamiq competitors-- and they are two of the most open "Show HN" guys that I can think of. Their businesses are continuing to prosper/grow.

</comment><comment><USER11> "Don't worry about other people stealing your ideas. If your ideas are any good, you'll have to ram them down people's throats."—Howard Aiken

<comment><USER12> I keep seeing that quote on HN, but never any reason to believe it. It's cute, and but plays to an odd kind of elitism that doesn't match my experience with people.

I'll grant that there are some ideas where some particular knowledge and foresight is needed to appreciate the value, but a lot of ideas are good precisely because they establish a connection between seemingly disjoint things that, in retrospect, seems obvious.

<comment><USER11> Okay, let's turn that around. Are you saying that there is such a thing as a good idea that is easily replicated and indefensible? Such that if you show it to other entrepreneurs on HN someone can quickly copy it and beat you to the market?

If so, why are you doing it?

This is exactly the kind of question VCs used to ask. Why this, why now, and why you. If showing it to HN will cause people to say, "oh, that's obvious" and rush out to copy it, you are lacking an answer to the question "why you."

<comment><USER12> "If so, why are you doing it?"

Because first to market makes a difference?

Because a good idea may also require a good implementation, which (depending on the idea) not everyone can pull off?

Because not every good idea is meant as VC fodder? You do it fast, milk it for what you can, and accept that eventually others will copy it and spoil the party.

<comment><USER11> _Because a good idea may also require a good implementation, which (depending on the idea) not everyone can pull off?_

My point exactly. "Why me" is "Because I'm the best in the world at doing this."

 _Do it fast, milk it for what you can, and accept that eventually others will copy it and spoil the party._

I agree. If you're in the game to do something fast, milk it for $$$, and then get out, then don't post it on HN. Not only is it not in your best interest, I can't imagine it being interesting to anyone besides another person in the game to do stuff fast and get out.

What you ought to post on HN is your business plan for having "deal flow," a funnel full of "do it fast" ideas. Some companies demonstrate a knack for constantly identifying and capitalizing on these temporary ideas and exploiting them.

That "meta-plan" for building a repeatable business would be damn interesting.

</comment></comment></comment></comment></comment><comment><USER13> I don't know how widespread it is, but I personally am _less_ likely to pursue something I see a 'Show HN' post. There's enough unexploited opportunities out there that if I see someone's already got a good handle on an idea, I'll probably cross it off my list of things to try and go for one of the other many ideas on the 'maybe TODO' list.

I can't say it'd _never_ turn out the other way, but it'd have to be a really good idea that exactly fit my interests, but where the implementation being shown off was _so_ bad that it seemed easy to beat.

</comment><comment><USER14> From what I have observed, it seems to be a two-edged sword and can go either way, but a lot appears to depend upon how it is done. Some folks do appear to post it here primarily in hopes of getting a traffic spike. I imagine many of them are pretty disappointed because those posts tend to be boring and seem to not get much response. Others are obviously looking for feedback they couldn't get too many places. Those posts seem to generally go over better and accomplish more.

</comment><comment><USER15> I show most of my creations to a friend of mine who is an IT entrepreneur. He is not in my target group, but he knows the subject of usability well and that allows him to give me good points for improvement. Showing things to HN is similar.

Also it's the best possible market research. You show what you did to people and people tell you of similar things that already exist. No kind of passive surfing or googling can beat that.

</comment><comment><USER16> Getting feedback from technically savvy (or at least interested) people can be very valuable, and you're right, ideas are a dime a dozen.

</comment><comment><USER17> Someone has to see it to buy it in the first place right?

</comment><comment><USER18> It's not a zero-sum game.</comment>


Git: The Lean, Mean, Distributed Machine - <AUTHOR> http://www.slideshare.net/err/git-machine <comment><USER2> Another advantage of DVCS that wasn't mentioned in the slide deck is that, with git (and other DVCSes), you are _always_ working in a revision controlled arena. Git's got your back.

When I used RCS, I was always working in a revision controlled arena - all my changes were revision controlled, assuming I checked them in... and after the first or second disaster, I learned to _check things in._ Frequently.

When I used CVS/SVN, I lost the ability to always work in a revision controlled arena (theoretically I still had the ability, but doing it was such a hassle that it simply did not happen). I ended up checking out a copy from SVN and then locally revision controlling my changes in RCS. Ugly.

Working without git is like driving without seat belts. You can do it and probably nothing bad will happen... but if something bad _does_ happen, it is the difference between walking away a bit sore and an extended hospital visit.

<comment><USER3> I can't say I understand your point.

With svn, I commit often, as long as the code builds and my own unit tests pass. If I need to make a lot of breaking changes, I use 'svn cp' to create a branch and then I can still leverage svn's merge tracking in keeping that branch up-to-date.

This seems like the same way I use git/hg, but without worrying about excessively divergent local/remote branches across machines -- I can see your branches, you can see mine, they're all centrally accessible by definition.

<comment><USER2> If you own the SVN repository, I agree, it works well enough. However, if you don't have write privileges to the repository or if it is a shared repository with a lot of other people, it becomes much more difficult.

If you don't have write privileges into the SVN repository, you have no ability to revision control your changes without creating a tracking repository of your own. Creating and maintaining a tracking repository is a hassle, especially compared to a DVCS where that is the normal operation.

If there are a lot of people with write access into your SVN repository, creating branches doesn't scale well because all the branches are public. Creating a SVN branch for every experiment rapidly gets out of hand. Again, you can create a separate tracking SVN repository (hassle) or you can use branches, but it is nowhere near as easy as with DCVSes.

The big difference with DCVSes is that scaling across lots of developers is not a problem, branches are strongly encouraged, and merging works _really_ well.

<comment><USER3> _If you don't have write privileges into the SVN repository, you have no ability to revision control your changes without creating a tracking repository of your own._

This is fairly unique to open source software -- it's not something that occurs in an organization, and should only occur when a user without commit access is doing large-scale modifications to a project.

Unfortunately, the functionality often used to maintain divergent forks where individuals fail to push small hacks/changes immediately back to their origin project.

 _Creating a SVN branch for every experiment rapidly gets out of hand._

Out of hand how? I've worked in organizations where every single feature received a developer specific branch (eg, branches/tolenka-feature-xyz) and never ran into trouble.

 _The big difference with DCVSes is that scaling across lots of developers is not a problem, branches are strongly encouraged, and merging works really well._

Given merge tracking, merging works more or less the same as a DVCS.

As far as scaling across developers, I'm not sure what the issue is.

</comment></comment></comment></comment><comment><USER4> Can anyone compare Git vs Mercurial? This decision is coming up for us, and would appreciate the input.

<comment><USER5> In terms of what you can actually _do_ if you set your mind to it, they're not terribly different. In terms of the default/conventional things recommended by their communities, they're fairly divergent.

Speaking as someone who's used both and prefers Mercurial:

* Git's branching philosophy (lots and lots of branches, only one active at a time) can be handy. But Mercurial's philosophy (not quite so many branches, and usually as separate clones so you can work on more than one side-by-side) is, I've found, usually better.

* Git's much more encouraging of editing history up to the point where you share code with someone else. Mercurial will let you do that if you really want to, but it's discouraged; the only "easy" way is limited to undoing the last commit. Git seems to encourage committing much, much more often and not particularly caring about the repository history until you're ready to share with someone else (at which point you just selectively rewrite the history to look sensible). Mercurial seems to encourage committing in logical chunks so the repo history is clear and sensible the whole time (but again, if you really really want to do the Git-style stuff, you can).

* Mercurial seems to me, personally, to be a bit more logical in terms of choosing good defaults and exposing abstractions. Git's choices for default behaviors have been criticized even by its fans, and it tends to throw a lot of its inner workings at you on a regular basis, even if you don't really care much.

But, again, this is only my own personal opinion; undoubtedly others will disagree with it.

<comment><USER6> > usually as separate clones so you can work on more than one side-by-side

the major downside here is that all IDEs I know are excellent at reloading your project from the fs when you git checkout a different branch, but much clunkier about having to reopen another directory.

<comment><USER5> Which is why I said it's a trade-off.

If you go the git route, then you only look in one place for the code and it's easy to just point at it no matter what's currently active. But the downside is that (so far as I know) no tool other than git can show you what's in not- currently-active branches.

If you go the hg route it's easy to see lots of things side-by-side, but of course you don't have the "it's all in one directory, and you do have to point at different locations to work on different branches.

Personally, I prefer hg's approach here.

<comment><USER7> If you want branches side by side in git, just clone your repository. Or am I missing something?

The one catch is that the "upstream" repository will be the local one you cloned from, rather than your original upstream. git-clone could easily have a switch for that, though.

<comment><USER5> Notice that I've never said "git can't do this". I've been talking in terms of the conventions recommended by each tool's community. In the case of git, that's _not_ separate clones for branches...

</comment></comment></comment></comment></comment></comment><comment><USER8> This is a good introduction to Git. Some of the pictures chosen to illustrate points are hilarious, like the smoking angel, or the RCS shack.

</comment><comment><USER9> 84MB download for a dia show of cc eye-catching but nevertheless offtopic images. Wow! Sometimes I really wish people would stick to that dull bullet points style of presentation -- in at least half of their slides.

<comment><USER10> Actually, I think this style would have been pretty effective if I was watching the guy give his talk.

</comment></comment><comment><USER11> 15:00 Zulu time: URL is down for me: Error: 500.

Will check later.

</comment><comment><USER12> One thing I dislike about the presentation is it does not give credit where credit is due. BitMover wrote BitKeeper (I use it atm at work) which was the predecessor of mercurial and git. Naturally there were issues with being proprietary till it pissed off the right people causing them to create a new VCS based on BK. BitKeeper is... pretty damn slow compared to Git. But it was the innovation.

Also if he mentioned clearcase's performance it would be obvious that Clearcase is a hut made out of good intentions (we didnt even use sticks at that point).</comment>


Understanding F1 racing - <AUTHOR> https://www.formula1.com/en/championship/inside-f1/understanding-f1-racing.html <comment><USER2> If you need some technical insight, I've worked in HW and SW for testing and optimizations for most F1 teams, built our internal knowledgebase and can answer obscure questions. Mostly engine and transmission, not so much vehicle and driver. But we simulated even those.

</comment><comment><USER3> In case anyone is interested, here are the current "runners and riders" in F1 2018:

[https://www.solipsys.co.uk/images/F1_2018a.png](https://www.solipsys.co.uk/images/F1_2018a.png)</comment>