Ask HN: Why isn't there a modern MS Access clone? - <AUTHOR> HN, this is something that I've always been interested in: Why isn't there a modern piece of software akin to Microsoft's Access? I know there are plenty of issues in scaling these kind of systems, and that these kind of platforms can feel clunky and unwieldy but I still find it surprising that there isn't a simple platform for creating CRUD apps. It doesn't seem like an unachievable goal to me: you need the ability to create forms, design database tables, manage user permissions, manage data workflow (ie: send an sms if <condition>, seek approval from <user role> for <action>), and view/search data. I'm certain these features would be useful for all kinds of business scenarios where building, maintaining, and hosting a custom solution isn't worthwhile, or would be unideal compared to using a standardised tool. Are there tools in this space that I'm missing? If not, why isn't this being pursued? Eagerly looking forward to your thoughts. <comment><USER3> There are quite a few products that attempt to be a web based equivalent of Access.

The two that seem to be the closest to me are Google's AppMaker ([https://developers.google.com/appmaker/](https://developers.google.com/appmaker/)) and Bubble.is ([https://bubble.is/](https://bubble.is/)). I call these two out because they both allow for coding when the "default path" runs into a wall, and both include more than just forms and tables. However, they both still have warts. Appmaker, for example, has a pricing model problem. It's $10/user (GSuite), so you can't use it to build anything that involves casual outside users, like an employment applicant tracking system.

The next tier down are somewhat similar products that have been around longer. Like Quickbase ([http://www.quickbase.com/](http://www.quickbase.com/)), Caspio ([https://www.caspio.com/](https://www.caspio.com/)), Airtable ([https://airtable.com/](https://airtable.com/)), Zoho Creator ([https://www.zoho.com/creator/](https://www.zoho.com/creator/)), Rajic ([https://www.ragic.com/](https://www.ragic.com/)), and Knack ([https://www.knack.com/](https://www.knack.com/)). These all work great if the app you're making fits into their somewhat fixed view of the world, but hit a hard wall if it doesn't. Some of them also have the same pricing model problem I mentioned in the preceding paragraph.

The one I really thought was going to emerge as the market leader was DabbleDB. Sadly, Twitter acquihired them and shut it down. Here's one of the demo videos: [https://www.youtube.com/watch?v=6wZmYMWKLkY](https://www.youtube.com/watch?v=6wZmYMWKLkY) It was very ahead of it's time back in 2007.

<comment><USER4> I'm sort of surprised LibreOffice hasn't tried to fill this gap, it would be a nice way for them to earn some income if they do it just right enough. I say this because Open Source projects need to be funded some way, somehow.

<comment><USER5> LibreOffice Base ([http://www.libreoffice.org/discover/base/](http://www.libreoffice.org/discover/base/)) fills the gap. It's a combination Access-like local database as well as a ODBC/JDBC client.

<comment><USER6> LibreOffice suffers from it's terrible scripting language. Compared to VBA it is wordy, non-obvious, and in general a royal PITA to work with.

</comment></comment></comment></comment><comment><USER7> I'm working on such CRUD app builder, which might be interesting to you. It's self-hosted and because it's written in Golang the entire server is a single binary - users can simply download the binary, run it and that's it. The data is stored in PostgreSQL. The form builder generates JSON, which is stored in the database and the server builds the resulting app on the fly. I'm building the first demos as we speak. So far I have an invoicing app with payments tracking, overdue invoices, etc. and a second app, which is Bill of Materials. It can calculate manufacturing costs based on recipes with different inputs like raw materials, processing, other parts and assemblies and so on.

I'll try to put the demos on the site by tomorrow.

It still cannot work with any third-party APIs though, but other than that virtaully anything can be built in a matter of a few hours (maybe a day or two for the more complex and large apps).

Also I've implemented implicit workflows, where what happens is defined in the forms based on what components are inserted into it. There isn't the traditional "when A happens, do B" kind of workflows. IMO the implicit ones are much more pwoerful and flexible.

You can check it here (demos coming soon, currently one one basic tutorial): [https://www.formbolt.com](https://www.formbolt.com)

<comment><USER8> Looks good!

Heads up: Youtube video on [https://www.formbolt.com/demos/walkthrough/deployed/](https://www.formbolt.com/demos/walkthrough/deployed/) is broken on Desktop Safari Version 10.1.2 (12603.3.8).

On creating an app (locally), app error-ed, but the app was visible after refreshing the page, (sorry I couldn't replicate again to get the exact wording).

Might want to add "chmod +x" to the README for non-technical users.

You might want to link to the apps over at localhost:3000 from the app blueprints table.

Loved the:

\- single binary deployment \- creation of db using the master pw \- the fact that the data is stored locally and is kept in the db if I ever decide not to use the app

Cheers,

Marcus

<comment><USER7> Thanks for the feedback, Marcus. I'll look into the issues you mentioned.

</comment></comment></comment><comment><USER9> I figured we need a summary in here. Open source MS access alternatives (indexed from other comments):

There's MS access of course [https://products.office.com/en- au/access](https://products.office.com/en-au/access)

Open Source

      LibreOffice Base https://www.libreoffice.org/discover/base/
      Kexi https://www.kde.org/applications/office/kexi/
      Gnome DB http://www.gnome-db.org/
      Lazarus (better for programming, worse for DB) https://www.lazarus-ide.org/

Web based

      Oracle Apex https://apex.oracle.com/en/
      Google AppMaker https://developers.google.com/appmaker/ ($10/user, only paid users can access app)
      Bubble.is https://bubble.is/
      Quickbase http://www.quickbase.com/
      Caspio https://www.caspio.com/
      Airtable https://airtable.com/
      Zoho Creator https://www.zoho.com/creator/
      Rajic https://www.ragic.com/
      Knack https://www.knack.com/

Other desktop apps

      FileMaker Pro http://www.filemaker.com/products/filemaker-pro/ (predates everything else in this list, beautiful, if somewhat limited, app)
      Embarcadero (Borland) Delphi https://www.embarcadero.com/products/delphi
      DataFlex http://www.dataaccess.com

Really more programming frameworks, but sort-of fit the bill

      Python Django https://www.djangoproject.com/
      Ruby On Rails http://rubyonrails.org/

<comment><USER10> I think [https://anvil.works](https://anvil.works) belongs in your "Web based" category as well.

(Although perhaps with the same note as Lazarus - fundamentally, it's a [Python!] programming environment with a DB attached, rather than a DB with a programming environment attached.)

</comment></comment><comment><USER11> Maybe because writing an Access database still requires a programmer, and you can get better value by hiring a PHP programmer to write two pages and three tables.

<comment><USER12> Yep, this is what always happens with these types of applications. There was a whole slew of these type of tools in the 90s dubbed '4GL' with the idea they were a level above traditional programming (3GL) where business people could drag &drop their way to a new app.

It was a disaster and none of those 4GLs are around anymore. There is no interface that's as easy as sending an email to a developer saying "I need an app that does this..."

<comment><USER13> They are around though. I did a job at a company that had a 4GL app used by business analysts to generate the APIs, UI and business logic to be used for e.g. mortgage calculations on websites.

</comment></comment></comment><comment><USER14> One of the things several colleagues have said to me over the years is that Access tended to be a dangerous tool in a large organisation: like Excel but on crack.

You end up with a large number of autonomous, undocumented systems built on an ad-hoc basis by personnel who were often not even in a technical role.

Personally I think that sounds like a great way to leverage the domain expertise of lots of different employees...but I guess it can become unwieldy. I know I saw some amazing things built with Access back in the day...

<comment><USER15> You also end up with a mess of VBScript code that isn't versioned. When something breaks and someone calls IT, it really helps if IT knows the system exists.

In a large organization, supporting disjointed business processes (or worse, fragile amateurish integrations) costs more than the software. At scale, consistency matters more than performance variance in some areas.

Access is also a nightmare from a security standpoint. AFAIK that's why it was abandoned; there was no way to keep the functionality and easy defaults that users liked while making it secure. It scares companies shitless to have critical financial data sitting in Access databases...

<comment><USER16> Yeah, but these things exist because they started as experiments which did not warrant getting a team of developers to burn through a million dollars for the first version.

Its really hard to know, in advance, which internal applications are worthy of a development team. As for nightmares... there's plenty to go around for everyone. Some of the worst nightmares are created by large teams of highly paid and skilled developers.

<comment><USER14> > Some of the worst nightmares are created by large teams of highly paid and > skilled developers.

Sticking that above my desk

</comment></comment></comment></comment><comment><USER17> I worked for a furniture company that used Access for everything and I mean everything. HR, Payroll, inventory, ordering, dispatching, security, etc. One amusing use was having to make an entry that you took a soda from the break room. Totally on the honor system. You filled out an Access Form that payroll then billed you for (provided they remembered to actually do it).

My job was to get them y2k compliant and then start modernizing them.

Here is how the modernizing went. I was told to upgrade them from Access 2.0 to Access 2000.

Everyday users sucked down data from Oracle to run queries and processes that I developed. Users had access to everything, so a user could modify one of my queries. When it broke, I had to remember what the original query was. I did this by always housing a copy of the Access database on my local machine.

Every Tuesday Payroll was run at 5pm. Guess what? Every Tuesday I was there until 11pm as something always went wrong in the process. There were these misc pieces of compiled code other developers had written that nobody know what it did or had source for. Example: one developer wrote a piece of code in QBasic, compiled it and made it part of the process to strip out white space from data that was read in via a text file. He lost the source. When there were problems with this step he denied it was his code. Every database used this piece of code and everything broke.

I digress. I loved Access for what I could do with it. It served a purpose. It wasn't the best but it is what I had to work with to put food on the table. Now-a-days, using tools like MySQL Workbench and TOAD give me some of the same sense of creating views and queries to re-use but obviously these are not replacements for everything Access allowed you to do.

<comment><USER18> I'm a developer (officially an "architect" but I refuse to claim the title) and one thing I've learned, is that hardly any problem in the world makes you a special snowflake.

Most of the common problems that people try to solve with their own custom solutions could be better solved by some off the shelf SASS solution.

 _HR, Payroll, inventory, ordering, dispatching, security,_

All of those problems could be better solved with a cheap off the shelf "small business solution" that would probably cost less and be more maintainable in the long run

I've been developing professionally for over 20 years and if someone offered to pay me to write a custom solution for any of it, I would direct them toward off the shelf solutions. There is no way that I could develop something as well as a company that specializes in those areas.

</comment></comment><comment><USER16>
        > ... a simple platform for creating CRUD apps. It doesn't seem like an unachievable goal to me: you need the ability to create forms, design database tables, manage user permissions, manage data workflow (ie: send an sms if <condition>, seek approval from <user role> for <action>), and view/search data.

That's actually a tall order that you're asking for.

For the most basic needs, Excel with macros and connections to data-sources like csv files is perfectly adequate. But you want multiple users, multiple forms, data workflows...

In the microsoft ecosystem, the next step up would be using .NET entity- framework with a database like sql-server express (or even localdb). Your application would then consist of a C# or VB .NET desktop application using wpf or forms.

I think you want something in-between Excel and a full blown .NET application. That's a pretty narrow market.

<comment> le-mark I'd also add, that there are _a lot_ of "database as a service" services around now, when coupled with a javascript frontent, essentially fulfill the role of "front end to a database" that Access was essentially.

</comment></comment><comment><USER19> Yeah LibreOffice - Base! Take a look at My Visual Database, VFront, nuBuilder, Kexi, Brilliant Database, MyTaskHelper and many many more. Each of them has different uses and there are web technologies as well.

</comment><comment><USER20> As others have pointed out, there are lots of products that fit something like this description. The challenge with Access and other app builders is summed up in Dietzler's Law for Access (from [http://nealford.com/memeagora/2013/01/22/why_everyone_eventu...](http://nealford.com/memeagora/2013/01/22/why_everyone_eventually_hates_maven.html)):

"Every Access project will eventually fail because, while 80% of what the user wants is fast and easy to create, and the next 10% is possible with difficulty, ultimately the last 10% is impossible because you can't get far enough underneath the built-in abstractions, and users always want 100% of what they want."

This is why the product I'm working on, Fieldbook ([https://fieldbook.com](https://fieldbook.com)), avoids the "app builder" approach and focuses on just being a spreadsheet-like information tool that supports querying and relational modeling.

</comment><comment><USER21> Borland Delphi was the modern MS Access clone. Ever have seen how fast you can build an DB app with that? I'm sure the newest version of Delphi is still as good today as the 2001/2003 version at that time ;) On Mac it is Filemaker or not?

<comment><USER22> Pricing killed Borland/Delphi. Unattainable to regular developers and small businesses.

<comment><USER23> Agreed. They finally have an "express" version but even that was $199. I'm sorry but I'm not going to pay that much money for something that I may never even use, especially for a stripped down version of it.

</comment></comment></comment><comment><USER24> Modern XBase clones like Flagship (Clipper clone, sort of), Harbour project (ditto), and many others come close. You still have to do some programming, but it is not too difficult for an IT-savvy non-programmer to pick up. Clipper apps still run many small businesses in India (I know for sure) and likely many other countries too. Data entry in such apps is extremely fast once the operator gets used to the app. They did have a few useful features like drop- down lists, incremental search in that (programmed), etc.

Some of these clones will have a DB CRUD language similar to the original dBASE, some of them might have SQL support too. I know that some years ago, many of the dBASE competitors (and dBASE IV or V itself, plus Foxpro) had somewhat decent SQL support (though not with all the features of a full- fledged RDBMS).

Some medium to large LOB apps have been built with XBASE tech too, in the past. I worked on a somewhat big one several years ago, for a switchgear products company. It was like parts of an ERP. It was in Foxpro for Windows on Novell Netware, and we used the SQL in it heavily. I remember writing tons of SQL reports near the end of the project (after the other CRUD work was done), and getting a bit bored with that at first, until I worked out that there were some patterns of permutations / combinations in the kinds of reports needed (by country, by region, by product category, by product accessory, by date, by order's commercial terms, etc. etc.), and then enjoyed the work a bit more, by working out how to do it systematically, changing one parameter at a time, so as to reuse as much of the previous report's SQL code as possible :)

<comment><USER25> Company I work at still has their core HR, payroll, security, inventory, customer service, and other systems in a Visual FoxPro application backended by a SQL database.

<comment><USER24> Long back, I reverse-engineered the dBASE .DBF data format (with only a few hints from some mag or book, plus the use of a hex editor (DEBUG.com)), and then wrote programs in Turbo Pascal to read .DBF files and process them further, generate reports, etc., for a management / marketing game project that I worked on for an Indian conglomerate. Did this without Internet access. That was actually my first freelancing gig and first job. Heh.

</comment></comment></comment><comment><USER26> Did you take a look at Libre Office Base [1]? It seems similar to MS Access, though I haven't used it.

[1] [http://www.libreoffice.org/discover/base/](http://www.libreoffice.org/discover/base/)

<comment><AUTHOR> Interesting! I was thinking more along the lines of a web application, but it's nice to see an (actively maintained/developed?) somewhat-literal clone of Access.

</comment></comment><comment><USER27> FileMaker Pro has been around forever and is still supported with new versions as far as I know.

<comment><USER28> Not that searching is difficult but I'll put the link here anyway: [http://www.filemaker.com/products/](http://www.filemaker.com/products/)

1) I didn't know that Filemaker was still around.

2) I didn't know that it is an Apple subsidiary.

3) Pity there's no Linux version, I'd use LibreOffice Base if you're in Linux as someone else here has pointed out.

<comment><USER29> That's incredible - I remember FileMaker from the 1980s. Look at the functionality of that app and the great design of the site! If that were a startup run by a bunch of hip Millennials out of San Francisco, it'd be worth a couple billion dollars, easily. (Instead we get one-off, single purpose hosted apps like Trello, and FileMaker languishes in obscurity.)

<comment><USER28> It is incredible, isn't it? You have become more cynical with old age like myself – but I think there is some truth to what you're saying.

</comment></comment></comment></comment><comment><USER30> We're doing exactly this at Sonadier ([https://www.sonadier.com](https://www.sonadier.com)). We distill the app- making process down to a simple form builder, while giving technical users the ability to write client and server-side JavaScript for extra interactivity. We're doing a full design refresh in the next few weeks, and that update includes a visual workflow builder. We do have a pretty in-depth permission system already built in.

Further down, someone mentioned that a big problem with Access is the proliferation of "autonomous, undocumented systems" built by different teams. I think we shine here - since we're web-based you can host all your forms on one account. In addition, you can share specific create/read/update/destroy permissions with any other organization on the platform - we want to make data exchange painless.

</comment><comment><USER31> Not an MS Access clone, but a good 4GL easy database tool I like is called DataFlex [0]

Very easy to use and you can create basic applications without additional programming. Although of course it helps if you know how-to write code.

There's an embedded database that you can use out of the box. But you can also use any of the main SQL Database engines.

For building commercial applications you have to buy a developers license.

For building your own non commercial applications you can use their free personal license. [1]

Disclaimer: I use the language professionally and run an open source website that has free tools and code examples in DataFlex.

[0] [http://www.dataaccess.com](http://www.dataaccess.com)

[1] [https://www.dataaccess.com/Resources/Licensing/DataFlex- Pers...](https://www.dataaccess.com/Resources/Licensing/DataFlex-Personal- License-980)

<comment><USER32> That's crazy, I used DataFlex briefly over 30 years ago.

Had no idea it was still going.

<comment><USER31> Yep, but it has changed quite a bit since then.

30 years ago there was only console mode, albeit in different flavors (unix/DOS). Nowadays the main product is Windows oriented and also has a Web offering. You can still buy a console mode linux version, but it hasn't had updates in over a decade. Yes it runs and works on recent Linux versions, no I would not recommend spending any money on that.

Your 30 years old data files however could still be read. You might need to migrate it to a newer format if you want to extend and change things, but it would still work.

</comment></comment></comment><comment><USER33> JOIN tables, sparse tables, deeply nested JOINs - all this is needed to code link-following in the relational model. So you need an ORM to handle the JOIN pain for you, but relational db query perf degrades as your joins get deeper, so the ORM needs to make hard choices around caching and database query round tips - but the ORM doesn't have enough information about the UI to make these choices - you end up needing to code the app logic into the ORM via caching and query optimizations. And now you're writing code, that's not links and forms anymore.

At ClojureNYC last night I gave a talk about literally this! Here are the slides: [https://github.com/hyperfiddle/hypercrud.browser/issues/4](https://github.com/hyperfiddle/hypercrud.browser/issues/4)

<comment><AUTHOR> Dustin, wow. I can see a lot of work went into your talk. I read along for about 80% and you make some great points. Hyperfiddle looks impressive - <USER2> signed up to the dev mailing list.

As an aside, do you think traditionally built apps should be moving away from SQL and towards immutable stores like Datomic?

<comment><USER33> yes! Data driven UI (which is what this thread is about) will never succeed on sql.

</comment></comment></comment><comment><USER34> I started off my developer career as a MS Access developer, developed CRUD applications that helps a business. MS Access is a very versatile tool and I love it. I even prefer it over Excel. I once made a MS Access application for a client that wanted a web based application as a upgrade to the existing excel solution.

Many alternatives were had as a replacement for one of the apps in MS Office. I did test out LibreOffice's Base. It did not seem to be a proper alternative for the purpose of making a standalone application. The whole application in 1 file.

Access has flaws too in terms of backing up data. That is the biggest drawback and in the web era, Access seems like a relic. VB6 has limits in terms of making a full fledged UI. But it is functional.

The closest successor i think would be a SQLite+electron app. I have not worked on it to see how it will turn out.

</comment><comment><USER35> I wonder if the small business market is just not that profitable. In that space you are typically dealing with companies and people that are extremely price sensitive. (This is just a educated guess here, but I would be willing to bet that small business customers "cost" more in support costs, too.)

Something like Access is, pretty strictly, a small business play. When you move into the "medium" part of SMB, they are probably going to have complex enough needs that Access isn't going to cut it.

I'm guessing that you can make the small business market work, when it's an add-on to the medium-sized business market, but that it doesn't really work well by itself, at least as far as technology companies go.

Can anyone think of any technology companies that have done well, while focusing on just small businesses as customers?

</comment><comment><USER36> Although not an exact replacement to Ms Access the types of products marketed by big tech to "technical BA's" appeal to that requirement.

Building apps with clicks not code is the utopia these people are seeking, so the vendors will do everything they can to appeal to that.

There are literally heaps in this category, but one that really started it all is Salesforce and their force.com product, they are selling the dream like no- one else.

More frequently coming up now is MS PowerApps and MS Flow coupled with either SharePoint lists or Microsoft's Common Data Service because they are included for free in the Enterprise Office 365 SKUs.

Dynamics 365 offers a lot in this space but is more pricey (the $10 team license is good value though). Zoho Creator is another example too.

</comment><comment><USER37> We have created something that combines form builder, process flows, and if- then trigger rules at taskputty.com - we market it as a "build your own CRM system" but any crud or data flow style app should be doable.

We value as much feedback as possible. Single user is free, and we are completely flexible on price - we just would like to see more people using it.

It is loosely inspired by Trello.

</comment><comment><USER38> In addition to everyone's replacement suggestions, I feel like it's worth noting that Access still exists and is part of some Office365 distributions.

For small-ish companies that aren't very technical, I would think the Office suite still has a strong attach rate. Regardless of whether or not Access is the best tool for the job, inertia is powerful.

</comment><comment><USER39> I think a lot of the common use case for things like Access were in storing customer databases - I'd imagine that a lot of applications that previously would have been done in Access are now done in CRM platforms like Salesforce - either because Salesforce and / or partner tools directly provide the functionality, or because you can go a pretty long way defining custom objects and fields.

</comment><comment><USER32> Try Glom (gnome) or Klexi (qt)

[http://www.glom.org/](http://www.glom.org/)

[http://kexi-project.org/about.html](http://kexi-project.org/about.html)

</comment><comment><USER24> Somewhat on this topic, does anyone know if Magic (the 4GL-ish software) is still used, and how it is these days? I had first heard of it when I got to know that a previous company that I worked at, were using it, commercially, for their clients. It was a somewhat unusual (AFAIK) software in that it was supposed to be table/menu-driven, and had maybe (in that early version) only something like 14 operations, using which, the manufacturers claimed, one could build pretty much any common business application. I found that interesting but never got a chance to work on it or try it out.

The company behind Magic was an Israeli one, Magic Enterprises, IIRC.

Update: I googled, this is their site:

magicsoftware.com

and they do have a free/trial version. Will check it out a bit later.

</comment><comment> hashim-warren Does Airtable fit? It does for me

<comment><USER40> I think the OP is looking for something more suitable for creating simple crud apps.

Airtable has forms [https://support.airtable.com/hc/en- us/articles/206058268-Gui...](https://support.airtable.com/hc/en- us/articles/206058268-Guide-to-forms) but it doesn't have the same UI form builder kind of thing.

</comment></comment><comment><USER41> Try goms ([https://github.com/artpar/goms](https://github.com/artpar/goms))

These type of softwares are now increasingly known as BAAS - Backend as a service. You can also find other similar products on the github readme.

This is still in development, and I am using this as backend for two of my other projects. The goals are similar to what you have written, plus more.

<comment><AUTHOR> This is nice! I hadn't heard of this category of services before today. I particularly like the idea of events in goms. Thank you.

</comment></comment><comment><USER42> Microsoft makes Dynamics CRM which can do all of this and is extensible with its own Workflow and business rules engine, form Javascript, and .net plugins for any more complex server side logic.

Don't let the sales, marketing, and services part distract you.

</comment><comment><USER43> fieldbook.com seems to check a lot of your boxes.

it has plenty of rough edges but has a solid relational model and is fun to use.

my only complaint is that api access is really expensive (making it cost- prohibitive to most HN readers) but the main product is cheap/free.

<comment><USER20> Fieldbook co-founder here, thanks for the mention. If anyone has a particular need for lots of API calls, message us and we might be able to work something out!

<comment><USER43> That's great to hear, I'll follow up via email.

Great product.

</comment></comment></comment><comment><USER44> I came across this one recently:

[http://www.matssoft.com/product/](http://www.matssoft.com/product/)

Doing well in the enterprise sector in the UK. Recently acquired, though for relative peanuts:

[https://www.youinvest.co.uk/articles/stockmarketwire/123954/...](https://www.youinvest.co.uk/articles/stockmarketwire/123954/netcall- acquires-matssoft)

Then again, I tend to be very skeptical of such tools, having seen them in action in the 00s, where they were very poor as a medium/long-term solution that ultimately hindered, not helped.

<comment><USER3> Looks interesting, but no pricing..."call for demo". Ugh, hate that.

</comment></comment><comment><USER45> Office is everywhere. Therefore Access is everywhere. Even if there is (or was) a better piece of software, it wouldn't get any exposure or use (unless it was web-based, perhaps?).

Every day, some random employee starts tracking items or documents in Access as a personal tool, and then more people in the organization hear about it, features get added, and then the company starts running on it, then it begins to fail and they migrate over to a 'real' ERP system.

</comment><comment><USER46> 4th Dimension (4D): [http://www.4d.com](http://www.4d.com)

Started as a Mac only RDB in the '80s. Now runs on Mac and Win, as a single user, from a server, or can be compiled as a standalone app. Rich development environment, includes web server, PHP, SQL and a lot more. There is a small but vibrant community of developers but is accessible to anyone with some technical experience.

</comment><comment><USER47> There are lots of them, they're usually just very tailored to a specific type of business so you've never heard of them.

</comment><comment><USER48> I was never a big fan of Access, it was no so great compared to Delphi, Paradox and even systems like DBase, Clipper, etc. There is a clone of Delphi around, based on Free Pascal called Lazarus.

But honestly this whole thing has moved to the web these days. Something like Django is probably the easiest and fastest way to do a CRUD app these days.

</comment><comment><USER49> One of the most easiest to approach I think was ClarisWorks/AppleWorks database, simple table DB nice form and report builder. Versatile but definitely limited so users weren't lulled into a feeling they could do everything with it, enough to keep it useful.

Pretty much a FileMaker light. (same company)

</comment><comment><USER50> There are thousands (tens of thousands) of ERP/CRM systems that include an Access clone as a subset.

</comment><comment><USER51> May not be exactly what you're looking for, but take a look at [https://www.genexus.com/products/genexus?en](https://www.genexus.com/products/genexus?en) [disclaimer: used to work there three lifetimes ago]

</comment><comment><USER52> I'm working on a product like this at the moment to solve exactly those problems. On Twitter @h_carver if you want to chat more! Or if you want to wait 6 months and find out why I shouldn't have been pursuing it ;)

</comment><comment><USER53> In time SSD will kill SQL and CRUD so there is no need for another RDBMS.

<comment><AUTHOR> Forgive my ignorance, but SSD? Do you mean solid state drives?

<comment><USER53> Yeah, I mean solid state drives.

</comment></comment></comment><comment><USER54> Sharepoint fills the gap in many organisations. CRUD forms pretty quick to create off a sharepoint list/sql database.

</comment><comment><USER55> guide wire is interesting in the insurance industry. it's built using it's own platform and sold how business users or analysts can write rules using a rules system. but the rules system is just a bunch of if thens with 2 windows for the "if/then" parts.

</comment><comment><USER56> I could remember using FileMaker Pro back in the day for a few systems.

</comment><comment><USER57> i am workibg on exactly this, but not just an access clone but DDD point and click for the web. Any suggestions?

</comment><comment><USER58> rbase still exists. [http://rbase.org](http://rbase.org)

</comment><comment><USER59> Search no more: [https://www.contentful.com/](https://www.contentful.com/)

</comment><comment><USER60> Apple's FileMaker Pro?

</comment><comment><USER61> MS Access is just a FileMaker clone, and FileMaker is still going strong, so I fail to see the problem.

<comment><USER62> FileMaker seems to have a web based solution too.

</comment></comment><comment><USER63> Google Forms!

</comment><comment><USER64> LibreOffice Base?</comment>


Please use git pull --rebase - <AUTHOR> https://coderwall.com/p/7aymfa <comment><USER2> While the idea of rebasing history while pulling in new changes may appeal to some users or uses, I disagree with the absolute "one true way" sounding note of OP's article.

Git supports first class merging, and it is git's default behavior. It enables us to port over entire strings of commits related to a feature to other branches, or enables us to revert (un-merge) these strings of commits. Heck, --rebase doesn't even allow one to pull when there are uncommitted changes in the working directory.

On the other hand, --rebase is neater when it comes to the modern mantras of "commit frequently", "no feature branches", "deploy master to production". So in short this sounds more like an editor or a tab v/s spaces flame war.

<comment><USER3> what's the idea behind no feature branches?

<comment><USER4> There are "feature branches", and there are "patch sets with four patches and three merge commits that are there just because the submitter did a bunch of pulls while working on it."

If you're dealing with a large code base with many submitters, you _have_ to demand that individual submissions apply cleanly. That is isomorphic to demanding that they be rebased.

<comment><USER5> I am personally a proponent of rebasing, but I'm reading through the recent Hacker News threads to get a sense of the arguments on both sides.

> If you're dealing with a large code base with many submitters, you have to > demand that individual submissions apply cleanly. That is isomorphic to > demanding that they be rebased.

To play devil's advocate for the merge perspective: wouldn't this also be achieved if the commit author had merged master into his branch first before submitting? It will apply cleanly because conflicts were fixed during the merge, rather than because it was rebased.

</comment></comment></comment></comment><comment><USER6> I humbly submit that this is a holy war. I personally am on the side of "history is just another part of the project to be maintained," but tread carefully friends; there's dogma at work here.

On one hand it's good to preserve things exactly as they happened. How else will we blame Dumb Steve guilt-free when someone branches from an arbitrary hash to give a one-off release to an angry customer, thereby bifurcating the state handling logic that allows the machine to be certain that it's not emptying a crucible on a crate of orphaned puppies? Think of the puppies!

On the other hand, it's good to align commits to units of work. It's cool that you've forked the project to handle massively concurrent input caused by edge case X (sorry, I used up most of my creativity on the last paragraph), but really I just want your cool configuration parsing piece. Can I cherry-pick that, please?

Git was designed to give you the choice. Do you care about preserving the ability to perform an arbitrary audit, or do you care about treating development as a series of portable patches? You decide, and then do what's right for you.

</comment><comment><USER7> While this makes sense when dealing with a central repo (which I agree is the vast majority of use cases), it's inaccurate. You're rewriting history so that it looks like your work happened on top of $REMOTE's work, when in reality it was the other way around. This becomes a problem if you're working with multiple remotes, and which remote you pulled from, and when you did it becomes an actual concern.

Concrete example: if I'm the maintainer of wonnage/foo and bar submits a pull request from bar/foo, using git pull bar --rebase doesn't make a whole lot of sense.

<comment><USER8> Of course, that's absolutely correct. But that's the _minority_ use case, at least in my experience. Git's default is set up that way because of how the Linux kernel maintainers work, which isn't how most organizations who use git work.

Even though git is distributed, most orgs have a central repo that they use as the source of truth. When contributors pull from this central repo, IMO they should be rebasing, not merging. When the maintainer pulls from other people, yes, he should of course be merging.

The merge commit that a contributor implicitly creates when they resync with upstream (without rebasing) is ugly and confusing. It provides no useful information and only serves to clutter the project's history, not make it clearer.

<comment><USER9> A topic branch workflow is tremendously useful even without separate people in the "developer" and "integrator" roles. For example, we have about 20 people regularly developing code and about five of us "integrate", first to 'next', then to 'master' when a feature has stabilized. We don't explicitly pass an integrator token so there is a possible race to the integration branch, but since we only merge there, it's actually pretty rare in practice. If you lose the race, the polite thing to do is discard your old merge, fast-forward, and repeat the merge. This preserves first-parent.

[http://git-blame.blogspot.com/2012/03/fun-with-first-parent....](http://git- blame.blogspot.com/2012/03/fun-with-first-parent.html)

</comment></comment></comment><comment><USER10> Um.. No.. if you use rebase regularly, you're doing something very wrong.

In this case, the problem is that development isn't being done on a branch. One of the most important features of Git is how easy it is to fork & merge - there's no excuse for doing your work on master.

Work on a branch, merge your branch into master when it's finished. History is completely accurate, you only get one merge commit.

Don't mess up history just to work around bad workflow. Fix the problem at its source.

<comment><USER11> Indeed when you do work on a feature branch, you shouldn't rebase.

But when you're working on master, or a branch that's also remote, then you _have_ to rebase. If you don't then you get completely meaningless merge commits. If 3 people merge when they just want to push a commit it then you're history becomes a tangled unusable mess.

<comment><USER12> Then those three should've worked on their own feature branch. In fact, one could consider a local copy of master (or, commits made on master on one user's machine) as a feature branch, all named 'master'.

Another thing, a developer doesn't need to obsessively pull every couple of minutes. If they're fixing a bug and deciding against using a branch for that (seeing that it could be just one commit), they only pull twice; once before they start working, and again when they're done and want to push to master.

If there's more than one person fixing the same bug simultaneously, then it's yet another process bug.

</comment></comment></comment><comment><USER13> Perhaps better stated as "please, oh please, actually pay attention to history" - there are times when rebase is appropriate and times when merge is better.

<comment><USER14> Yes, but I used the title for people to actually start using rebase. Caring about history beyond avoiding useless merges and broken commits is another step I'd like at least my co-workers to take ;)

</comment></comment><comment><USER15> Rather than always using

      git pull --rebase

you can set up your git config to always rebase when pulling.

      git config master.rebase true

sets it up for master of the current repo

      git config --global branch.autosetuprebase always

sets it up for all new branches.

<comment><USER16> I would recommend that you do not do this. I rebase probably 80% of my pull requests, but sometimes you do want a merge commit. Instead, I setup an alias for git pull --rebase

This also helps when pairing with someone else. The process of handling a rebase conflict vs pull/merge (regular pull) is quite different.

<comment><USER17> if you want to do a merge commit sometimes, but pull --rebase most of the time, why not make pull --rebase the default, and do a fetch && merge when that's what you want?

<comment><USER18> Because what if you 'already' created a merge?

Example: I am working on a local branch feature/xyz. I decide I am done my work and merge feature/xyz -> master. I get ready to push and realize I am 5 commits behind origin/master. How do I fetch them now?

If you use git --rebase it will clobber your feature branch merge commit. On the other hand if you do a fetch & merge this also probably is not what you want (you will have a merge-commit on top of your merge commit, dawg). git rebase -p is probably the best option in this scenario.

<comment><USER19> I would ignore everything base698 says below.

In this case, you have a merge commit from a branch on to master, which would look like:

        A-B(master)----F (merge commit)
            \         /
             C-D-----E (topicA)

Once you find out your master (B) is behind, because say there's G-H-I on origin, you'd want to rebase onto that. So you use the 3-argument form of git rebase --onto:

git rebase --onto origin/master C~1 E

Which would take C's old base, C~1 (B), and replace it with origin/master, but only up to E.

Or, if you still had the branch around that you merged into master (which you do, in many forms, including the reflog, even after you delete the branch).

git rebase --onto origin/master topicA

I wrote a blog post on the different uses of git rebase --onto: <http://krishicks.com/blog/2012/05/28/git-rebase-onto/>

<comment><USER18> Ah awesome, I love there are so many things to learn about git.

I knew about git rebase -p and its nuances, but haven't known about the --onto until now. The 3-argument form of git rebase --onto in your blog post was great, thanks!

</comment></comment></comment></comment></comment></comment><comment><USER20> I like this philosophy for small, easily testable commits (e.g. minor bug- fixes). However, I _never_ recommend others to use this workflow.

I feel like rebasing is the type of feature you really need to understand to use. If you understand the concept and how to apply it, you can do powerful things. If you don't, you'll munge your repo and end up begging the local git guru to bail you out of your mess.

While I don't enjoy looking at a commit history with a bunch of useless merges, it's better than encouraging users to perform an operation they don't understand.

<comment><USER21> No kidding. Nothing makes you miss svn more than an inappropriate rebase. I've done it twice now, & sorely regretted. Heck, once, I was bit so badly by it that I actually said something positive about Rational Clearcase.

</comment></comment><comment><USER22> As a quick illustration, this is what can happen to the commit tree when just one of your team members doesn't rebase by default:

<http://pastebin.com/cnPbg0vm>

</comment><comment><USER23> So it definitely keeps history nice and pretty, and I use it for simple commits all the time.

However, sometimes I do 'git pull --no-ff' explicitly, because I want a more- complex multi-commit sequence of operations to stand out as a unit of work.

I really wish git had a primary concept of such a thing. I understand that hg might, but haven't had an opportunity to get that far into an hg project yet.

<comment> X-Istence What do you mean a primary concept?

<comment><USER23> The use case that comes to mind first is 'git bisect'. I love that feature, but I also love to leave a messy trail of commits in my history. In other words, I expect that there will be commits in my history where a full test run might not work, or maybe even things might not compile.

Of course, that sort of thing royally messes with 'git bisect'.

If git had a primary concept of "here's a synchronization point", then it'd be much easier to build tools like 'git bisect' (and even 'git log' etc.) around those sorts of paradigms. That'd offer the best of both worlds -- rich, detailed history showing how something got done, but also points at which it was believed that all was good in the world.

A push is (should be?) a natural synchronization point, for example.

<comment><USER24> Some form of nested commit would be useful for this I suppose - it would be arranged with something like an interactive rebase, that would squash a sequence of commits into one (for the purposes of log and bisect and the like), while leaving the original ones still accessible. This would give you your neat history for most purposes without losing the original commit comments and original sets of individual changes.

This is of course a bit like how branches are merged together ordinarily, at least if you don't go around deleting them the moment you're done with them. And sure enough it looks like you can sort of persuade git bisect to treat ordinary branch merges like this:

[http://stackoverflow.com/questions/5638211/how-do-you-get- gi...](http://stackoverflow.com/questions/5638211/how-do-you-get-git-bisect- to-ignore-merged-branches)

</comment></comment></comment></comment><comment><USER25> This has been mentioned in another comment, but not a top level one, so here it is again:

Rebasing multiple commits means putting commits into the history that do not correspond to any actual historical version. If you manually test each commit to ensure that the merged version still compiles and runs, or you're sure that the changes don't conflict and don't get unlucky, then you have something akin to a patch set, a semantic rather than actual history that is easier to read and perform operations like git bisect on. But otherwise, you can end up with broken commits in the history that, when retrieved for bisection or other purposes, obscure whatever is actually supposed to be observed.

Regardless of whether merging or rebasing produces 'better' history, if you're lazy, merging lets you stay that way without creating _broken_ history.

</comment><comment><USER14> OP here,

I do prefer feature branches (especially git flow: <https://coderwall.com/p/d1pkgg> ), but for day to day 'agile' development in a small team we don't use them often. YMMV.

But for pulling changes working on local branch git pull --rebase (or autorebased branch) is many times more readable (and avoid ugly merge bubbles in history).

Branch when you need branches, merge when you mean merging, rebase when you're just updating your codebase from shared repository. Keep your local (not pushed/pull-requested yet) branches dirty (commit often!), rebase them into a clean, obvious history before you share them.

Remember - commit history is for other people to __READ __.

</comment><comment><USER26> Rebase only if you treat it like a centralized version control system.

Using it all the time breaks a lot of good DVCS workflows.

</comment><comment><USER27> If you're going to rebase every pull, you may as well just use SVN.

<comment><USER28> Git has benefits over Subversion besides the crazy commit graphs. I'm not sure there's really any reason to be using SVN when you could be using Git in the exact same style, and have the benefit of offline access to the repository.

Actually, I'd be interested in hearing about any sort of layers on top of git that make it work like SVN (ie: same commands, same workflow, etc.) It would probably help convince some people to move away from SVN.

<comment> mh- such a layer would be difficult to provide in a way that isn't misleading, if the hypothetical subversion expatriate currently uses any functionality involving multiple _(SVN)_ branches.

</comment></comment></comment><comment><USER29> No rebase please. Let's keep the history accurate.

<comment><USER30> That's just it. It _does_ keep the history accurate, if you're literally just trying to grab updates from upstream. Unless you're actually working on, or merging, a separate branch then normally rebase is what you want.

<comment><USER31> It does NOT keep history accurate. You have absolutely no guarantee that all rebased commits work as intended or can even be built. The only thing that can be rebased safely is a single commit, for the rest you should learn to live with a messy history. It doesn't really matter anyway as long as you have procedures to prevent criss-cross merges.

<comment><USER30> If you require that each individual commit meets semantic criteria then you can still require that to occur during a git rebase by rewriting the commit. Which you should probably be doing anyways, if you're pulling breaking changes from upstream.

</comment></comment></comment></comment><comment><USER32> Be careful though, rebase doesn't preserve merge commits. If you want to rebase after a merge you need

        git fetch && git rebase -p

I recommend using git-up[1] which solves everything in a single command.

[1] <https://github.com/aanand/git-up>

<comment><USER18> This is very good advice!

git --rebase will clobber local merge commits (e.g. when closing off a feature branch & getting ready to push the merged results).

I threw together a quick custom action you can use with Sourcetree to utilize git rebase -p. Interested folks can nab it here: <https://gist.github.com/dgourlay/5465540> Install instructions here: <http://www.derekgourlay.com/archives/478>

I think I may need to give git-up a look over though.

Thanks!

<comment><USER5> > local merge commits (e.g. when closing off a feature branch & getting ready > to push the merged results

Why not rebase the feature branch onto the master branch? Then the merge from feature to master will be a fast forward commit rather than a merge commit.

Developing this way one can mostly avoid actual merges. And the repository history is simple and linear afterward. I've been working this way for a while and I have found it effective.

      % git checkout feature
      % git rebase master
      % git checkout master
      % git merge --ff-only feature

(-ff-only isn't needed, but I like to confirm to catch mistakes)

Any commits that you have made locally (and haven't pushed anywhere public) are safe to reorganize in this way, and it results in simpler history.

<comment><USER32> If your workflow is based on very small feature branches, that's fine, but when your branch is more heavy on changes it's good to preserve the merge commit (and be able to undo it).

<comment><USER18> Yes this is precisely what I had in mind, for larger features I personally prefer to see merge commits and not rebase the branch onto master. I believe it is one place where merge commits definitely add value and make sense.

</comment></comment></comment></comment></comment><comment><USER33> Rebase is nice if you have very careful code review policies. Otherwise, if you don't have humans carefully reading every merge, it is a huge waste of time.

Rebasing also increases the number of conflicts you will have to resolve. I've seen this 'always rebase' advice over and over in the last few years, it's stupid advice that betrays a lack of understanding about how git works. There is no advantage whatsoever unless you also squash your commits, and even then there is no advantage unless you are submitting to a project with very careful code review practices (Linux kernel, a project that uses the gerrit code review tool, etc).

</comment><comment><USER34> Or just use mercurial which tends to do the Right Thing by default more often.

<comment><USER35> In what way do you think is mercurial's "Right Thing" a different "Right Thing" than what git does (by default)?

<comment><USER34> In the way whereby nobody ever complains about usability issues like this one.

</comment></comment></comment><comment><USER36> Or use git-smart (<https://github.com/geelen/git-smart>). It adds three commands to git. One of them 'smart-pull' which "will detect the best way to grab the changes from the server and update your local branch, using a git rebase -p if there's no easier way. It'll also stash/pop local changes if need be."

<comment><USER2> While such wrappers around git always pique my interest and and are created with noble intentions, I am yet to find a team of developers who use such tooling around git. There are dozens of wrappers and workflows around git that have been created in the last 3-5 years and frankly it only complicates the shared vocabulary that developers use when communicating with one another. Also, distribution of such wrappers is usually in the form of rubygems which, although a low-barrier distribution mode, is complicated to use with rvm or rbenv of existing projects .

<comment><USER37> The only git-related tool I like is tig - it's an interactive git log, where you can scroll through commits and view diffs (and lots of other things) without having to copy+paste or use awk or whatnot. This tool (git-smart) seems like... I don't know. For me, I'd rather have my team suffer the learning pains of git than rely on a tool that, in some cases, will fail and leave them even more helpless than they were when they struggled to learn git.

I do recommend checking out tig though; that's the one that I have kept. It's also not a gem, it is available through yum or apt (and probably pacman, brew, etc).

<comment><USER2> Yes, I am actually guilty of using `tig` for a long time too. :-)

</comment></comment></comment></comment><comment><USER38> "to keep the repository clean"

Seems like not a worthy objective. Has anyone here ever had a project saved by a tidy commit history?

<comment><USER39> Totally agree. At best this rebase talk is navel-gazing, and at worst it's a technique that turns Git into a complicated, scary place for those just want to get work done.

I have introduced git and hg to many people, but I've always tried to tie it into what people do already. Without source control, practically everybody did the same thing: They'd work a little bit, they'd save, they'd work a little bit, they'd save... etc. Using branching for organizing work and a nice cheat- sheet of a few git commands, most non-technical people will be off-and- running.

It all works until the programmers make it complicated with the rebasing. The price of the tidy commit history is the loss of confidence of the rest of the team. I'd rather have the people.

Case in point: <https://vimeo.com/60788996>

<comment><USER40> It's only complicated because people don't realize how it works. Half the people in this thread advocating to use rebase aren't saying when it's ok and when it's not ok and why.

When it's ok: You are working on your own line and the commits you've made are not in a central repo.

Why: Git commits are a hash tree and when you change one commit it changes all the SHAs that come after it. This makes git see your commits pushed remote as different then the ones that are local. The commits have the same changes so it puts duplicate conflict markers everywhere.

Most people love it once they realize how it works.

A lot of people use version control also as a backup in case their hard drive fails. Because of this they are scared of staying on a topic branch for very long, so they push then rebase often leading to conflicts which are scary.

<https://en.wikipedia.org/wiki/Hash_tree>

</comment></comment></comment><comment><USER41> I've been telling people lately to always fetch and merge --ff-only separately, which is more commands but less confusing behavior. If you've got merge.defaultToUpstream set to true, you can alias ff = merge --ff-only. That way you can be careful about rebases, and don't have them automatically happening behind your back. So the workflow is:

        % git fetch # can never fail with a conflict
        % git ff    # tries to fast-forward
        # if fast-forward fails, then
        % git rebase origin/upstreambranch

</comment><comment><USER42> There is history and there is cleanness, as Linus Torvalds explained in <http://lwn.net/Articles/328438/>.

The git way of doing what the OP wants to do is to develop all code on local branches. They're cheap and you can have as many of them as you want.

Just never commit directly to master and set it to track upstream/master. Synchronize with upstream by pulling into your local master, and then rebase, merge & diff your local branches at will.

</comment><comment><USER43> Mislav has a great article on this topic: <http://mislav.uniqpath.com/2013/02/merge-vs-rebase/>

</comment><comment><USER44> From the article:

"When working on a project you usually synchronize your code by pulling it several times a day."

Do you? Am I alone in thinking that seems like a really bizarre workflow?

<comment><USER14> From my experience it is common for a group of developers co-working on some feature to share codebase very often.

Also in an actively developed project there are likely to be many new commits every single day, and you want to be up to date with remote codebase to ease the pain of merging your features into it.

If you rebase your work onto master often you'll greatly speed up the release of your feature when it is ready. You'll also avoid late surprises when something you depend on elsewhere in codebase change.

You can also notify your co-workers about inconsistencies between developed features and detect incompatibilities early.

It also works in macro scale - projects released often with small changes shorten the feedback loop and can be adjust properly for their requirements.

</comment></comment><comment><USER45> Can't agree more, I'll push it even further...

Use G2! which does pull --rebase magically on your behalf.

<http://orefalo.github.io/g2/>

<https://github.com/orefalo/g2>

</comment><comment><USER46> I try to avoid rebasing everything all the time because it changes the commit dates which can be confusing when you are tracking some particular changes.

</comment><comment><USER47> why not changing your config for the no-feature branch to avoid that people forgot the --rebase arguments

git config branch.master.rebase true git config branch.develop.rebase true

This will make any pull be a pull --rebase on the master/develop

</comment><comment><USER48> This is a TERRIBLE rule: they have no clue how git works.

Read: <http://goo.gl/ONw7Q>

<comment><USER49> To quote the page you linked:

> People can (and probably should) rebase their _private_ trees (their own > work).

</comment></comment><comment><USER50> Is coderwall some sort of troll site, like the the Swedish Lemon Angels recipe in How to Play With Your Food?

I keep seeing bad advice posted there and popping up on HN.</comment>


ChompStack aims to bring restaurant owners to the mobile Web - <AUTHOR> http://www.readwriteweb.com/biz/2010/07/chompstack-aims-to-bring-restaurant-owners-to-the-mobile-web.php

<comment><USER3> ChompStack was previously discussed here: <http://news.ycombinator.com/item?id=1492184>

I really like the simplicity and focus of their idea. Even the smart folks here on HN were suggesting they get into POS systems, online ordering and restaurant reviews. I'm glad they didn't take everyone's advice.

Now to dispense some advice (oh irony!):

The "Pro" pricing is too low - $45 / mo for a restaurant chain with over 10 locations is a rounding error. Restaurant chains of that size are probably spending over $100,000 per year on advertising.

I'm sure the pricing tiers will morph as the product develops anyway - <USER2> of locations doesn't seem like the best sole differentiator.

Good luck to ChompStack, I hope it succeeds.

(My restaurant marketing budget estimates were poorly calculated using this link <http://aaronallen.com/articles/restaurant-digital-marketing/> and this link <http://www.restaurant.org/research/facts/> )

<comment><USER4> Thanks for the advice! That original thread provided us with tons of much appreciated feedback.

Right now we're focused solely on mobile websites as it's a big pain point for most consumers that is largely unaddressed by most restaurants.

Agreed on the pricing tiers. I'm not totally happy with it at the moment, and I think it's something we'll have to adjust over time.

</comment></comment><comment><USER5> The question is, will a restaurant owner who was being sold a crappy Flash site know that it is important or at least desirable to be on the mobile web?</comment>


Amazon.com reviews is broken? - <AUTHOR> http://www.amazon.com/converter-Adapter-Lenovo-ThinkPad-0B47046/dp/B00E39GCP6/ref=cm_cr_pr_product_top?ie=UTF8 <comment><USER2> I see the same thing you see.

I'm not sure how their system works but is it possible that the company that listed the product (or Amazon) completely changed the listing to a different product (updated all the information) without actually deleting the listing and creating a new one? So, it kept the old listing's information?

Maybe a database issue or something else where this and another listing have gotten swapped or share some type of identifying number or something?

Just shooting in the dark, but I've seen this issue on a few Amazon products. Those smarter than I am will likely chime in with much more concrete possibilities.

</comment><comment><AUTHOR> BTW, this is what I see: [http://imgur.com/k7ax9t6](http://imgur.com/k7ax9t6)

The product is an adapter.

The reviews are for a solar pump!</comment>


India prays for rain as water wars break out - <AUTHOR> http://www.guardian.co.uk/world/2009/jul/12/india-water-supply-bhopal <comment><USER2> This is a quote from the article: "India's vast farming economy is on the verge of crisis. The lack of rain has hit northern areas most, but even in Mumbai, which has experienced heavy rainfall and flooding, authorities were forced to cut the water supply by 30% last week as levels in the lakes serving the city ran perilously low."

Heavy rainfall and flooding followed by severe drought. This is a standard pattern across India, not just in Mumbai. Indian villages always have had water storage ponds - in fact most Hindu temples have a pond attached to them, which serves to recharge the ground water level in the whole village.

What happened in the last 40+ years is a complete dismantling of traditional village governance, initially replaced with State-government appointed government bureaucrats (almost all of whom didn't reside in the village they were supposed to administer and rarely even visited it) and then much later, an elected village body that has few real powers, and still answers to a State-appointed bureaucrat.

It was all done with the best of intentions. But it ended up centralizing rural administration - destroying the village in order to save it. Simple tasks as desilting the water storage ponds were neglected, and eventually many of those ponds were encroached upon. This is true everywhere in India, in major cities as well as small villages.

So it is not simply just nature that is the problem here.

<comment><USER3> The article's not being told something about the real failure here, whatever that may be. India has monsoons, and anyplace with dependable monsoons and enough land to build reservoirs should never run out of water.

BTW, if you've never experienced a monsoon, I can't recommend it enough. Most westerners try to travel in the dry season. That's understandable, but they're missing out on one of the great wonders of the world. It's just unbelievable how much water the atmosphere can hold and how fast it can get rid of it.

<comment><USER2> India built a vast distributed system of small reservoirs - also known as village ponds or temple ponds. The fact that the rural system of governance was dismantled (and they realized the problem, and tried to reassemble it in a pale imitation) led to the neglect of these ponds, among other issues.

<comment><USER3> Thanks. I expected something like that. Local people have a strong incentive to make sure a local pond works. The people who run a centralized government have an incentive -- mostly their own thirst for power over others -- to make sure they control it, and little incentive to make sure it works.

</comment></comment></comment></comment><comment><USER4> Water is the very reason of the Kashmir issue between Pakistan and India and why they will keep fighting over it - land has very little to do with it, its all about the water and who controls the flow.

I visited the Himalayan region just about this time last year and the glaciers have melted away at a very alarming rate. Our driver, who's been taking tourists to the region for over 30 years told us that he has never seen the snow pack and glaciers gone at such elevations. His taxi driver estimation was 50% less snow pack over the last 3-4 years.

<comment><USER5> Geopolitically, water may be important, but it is unlikely that a fair resolution to the water issue will resolve the Kashmir issue. Starting in 1947 during partition/independence both India and Pakistan have claimed Kashmir. Now it is a very emotional issue and one that is often seen has having 'national pride' attached to it.

<comment><USER4> I agree - Though during the partition era, one of the key issues of the region was water and its control, thus both countries laying claim. (There are more issues of course, but the strategic control of water was one of the main factors.)

Indeed, 'national pride' blinds folks in both countries. I do not see any resolution of the matter anytime soon as the water shortages become more acute over time, as clearly illustrated by the story.

</comment></comment></comment><comment><USER6> I grew up in India and I half joke that I don't know how to swim because I grew up in a place where drinking water is hard to come by, forget the swim part.

At least where I grew up, water was always hard to come by. If you ever jumped into our water well, you would die at half way to the bottom from heart failure. It's probably half a mile deep :-)

</comment><comment><USER7> I'm not affiliated with this, but if you want to contribute, consider a donation to this charity: <http://www.wateraid.org/>

</comment><comment><USER8> Fate of entire civilization is dependent on monsoon rains. In my opinion, there is hardly any way to provision supplies in vast amount. Ground water tables, dams are all dependent on monsoon. Only way is to keep in check the transmission leakages.

</comment><comment><USER9> Man that's heavy stuff.

So many people and such a basic requirement for life being scarce, that's going to be major trouble if there isn't relief in the immediate future.

Doesn't stuff like this fall under the red cross ?

<comment><USER10> I'm curious what relief will look like. When the population increases at alarming rates I'm wondering if there is any sustainable solution other than relocation places to areas with more water. Are there any clever ways to permanently increase the water supply?

<comment><USER11> If there is no water you have to pipe it in. The only other thing I can think of is to suck it out of the air.

<comment><USER9> desalination plants & water trucks ?

</comment></comment></comment></comment><comment><USER12> Water shortages, and yet people still think paper bags are better than plastic ones.

Paper is worse for the environment in every way. It uses far more water, land, and energy. And it's not reusable and barely recyclable.

<comment><USER13> How? Care to elaborate on that?

<comment><USER14> Processing wood to create paper uses water. Recycling paper uses water. Growing the trees in the first place uses water. Paper bags are not reused more than plastic ones so they end up in landfills, where they take forever and a day to breakdown (paper decomposes very, very slowly in an anaerobic environment -- you can date the layers of landfills by taking a core sample and just looking for dates on the 20-50 year-old paper scraps that come up in the sample.) Paper bags are heavier and bulkier than an equivalent capacity of plastic bags so it takes much more energy to deliver them from the production facility to the end-user.

The only downsides to plastic bags are the fact that they are mostly produced from a small amount of fossil fuel (until bioplastic versions get cheaper) and that they are lightweight and therefore tend to blow around and get captured in unsightly places like trees when they are improperly disposed.

</comment></comment></comment><comment><USER15> The problem is India is the heavy water pollution. The country receives plenty of rainfall.</comment>


Nokia 6.1 Review–The best answer to "What Android phone should I buy?" - <AUTHOR> https://arstechnica.com/gadgets/2018/07/nokia-6-1-review-the-perfect-phone-for-your-friends-and-family/ <comment><USER2> How do I get something like this with a snapdragon 845? Arm CPUs have taken big steps and there is a big difference between the latest and older CPUs like this.

</comment><comment><USER3> To this day, there is no official way to unlock the bootloader of any Nokia/HMD phone. Despite their hollow promises.

<comment><USER4> This really irks me. On the bright side, they are doing really well with on time updates but hey, allow me to do what I want to do with my phones, at least offer root somewhere deep down in settings so that normal users dont mistakenly enable it.

<comment><USER3> The standard exuse is that this would be dangerous and result in warranty claims. But other vendors have managed to cope with that. Either they build more robust phones (Google?). Or they register your device id when you request an unlock code. I would accept that, albeit grudgingly.</comment></comment></comment>


Ask HN: What are some amazing open source projects that you have found recently? - <AUTHOR> <comment><USER2> Valhalla is an open-source routing engine, like for from traveling from point A to point B. I think Tesla uses it as the basis for their in-car navigation system. It produces routes very quickly and has a pretty robust costing model (cars can travel on different roads from bikes, bikes can travel different places than pedestrians, right turns are easier than left turns, sharp left turns are worse than slight left turns, etc). It can produce turn-by-turn instructions and gpx output. It also does map matching pretty well (converting messy GPS data to an actual snapped-to-streets path), traveling salesman solutions and a few other things.

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

</comment><comment><USER3> Ripgrep ([https://github.com/BurntSushi/ripgrep](https://github.com/BurntSushi/ripgrep))

It's so good and fast that it quickly has become an essential tool in my workflow.

</comment><comment><USER4> I'm moving away from apps created by someone else to the ones I can fully control. Here's a good list:

[https://github.com/Kickball/awesome- selfhosted](https://github.com/Kickball/awesome-selfhosted)

<comment><USER5> Me too!

This github repo, along with r/selfhosted [0] and this [1] are everything you'd need.

I've been keeping track [2] of the things I've had to do to whenever I used to switch my VPS providers. Its not perfect - I don't restrict ssh, nor do I restrict the database access, but I mention that, and you can choose not to do that.

[0]: [https://www.reddit.com/r/selfhosted/](https://www.reddit.com/r/selfhosted/)

[1]: [https://selfhosted.libhunt.com/](https://selfhosted.libhunt.com/)

[2]: [https://github.com/itsmehemant123/basic-vps- setup](https://github.com/itsmehemant123/basic-vps-setup)

<comment><USER4> I'm wondering - why bother with Zsh? Modern Bash is quite advanced - is there any killer feature worth having it installed on all machines? I remember trying it out 10 years ago and it was always kind of "well, that features are nice to have" \- but it turned out I rarely used them in the end.

<comment><USER6> The big thing for me is programmable autocompletion. I can autocomplete things that the shell itself doesn't even know about, like git branches and aws-cli commands - _including_ autocompleting paths inside an s3 bucket.

<comment><USER7> Bash has programmable completion as well. See for example: [https://github.com/scop/bash-completion](https://github.com/scop/bash- completion)

<comment><USER6> The last time I looked into this, bash's programmable completion was both an order of magnitude slower and didn't allow tab-completion. Has that changed?

<comment><USER7> _didn 't allow tab-completion_

What does this mean? I didn't know there was any other kind!

I don't know if it's slower, I haven't used zsh in a while, but the completion support for git (e.g. branches) is pretty fast for me.

<comment><USER6> When I last used it, I could partially type a command, press tab, and the completions would display below the line I was on. It did not modify the input line or the cursor position

In zsh, I press tab and the rest of the command is inserted onto the line I'm typing. If there are multiple options I can continue to press tab to cycle through them. I just have to press enter on the one I want.

Again, maybe it's changed, but the last time I used bash I wasn't able to do this.

<comment><USER7> Ah, ok. No, it definitively inserts onto the line.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> Tachyons [https://tachyons.io](https://tachyons.io)

Netdata [https://github.com/firehol/netdata](https://github.com/firehol/netdata)

<comment><USER9> If you like tachyons check also [https://tailwindcss.com/](https://tailwindcss.com/)

<comment><USER10> How is it better/different from tachyons?

</comment></comment></comment><comment><USER11> I was really impressed with Concurrent Ruby ([https://github.com/ruby- concurrency/concurrent-ruby](https://github.com/ruby-concurrency/concurrent- ruby)). OpenSC2K is also really impressive ([https://github.com/rage8885/OpenSC2K](https://github.com/rage8885/OpenSC2K)).

</comment><comment><USER12> Helm, a cross-platform, open-source audio synthesizer: [http://tytel.org/helm/](http://tytel.org/helm/)

</comment><comment><USER13> I've been moving away from web apps and using native macOS replacements where possible, so I was happy to find Evergreen, an open source feed reader which is in active development

[https://github.com/brentsimmons/Evergreen](https://github.com/brentsimmons/Evergreen)

<comment><USER14> Another interesting macOS native app, for note taking: [https://github.com/glushchenko/fsnotes](https://github.com/glushchenko/fsnotes)

</comment></comment><comment><USER15> A WhatsApp to Telegram bridge as a service. Read more here: [https://blog.shrimadhavuk.me/posts/2017/12/31/Telegram- WhatA...](https://blog.shrimadhavuk.me/posts/2017/12/31/Telegram-WhatApp/)

<comment><AUTHOR> Awesome.

</comment></comment><comment><USER16> [http://yacy.net](http://yacy.net), world-wide peer-to-peer decentralized web search network.

</comment><comment><USER17> Mine would have to be Vesper Framework [0] and TypeORM [1]. They both appear to be mainly developed by pleerock [2] and both appear to be in active development. I've been writing a bunch of TypeScript (Angular 5) at work and we have been testing GraphQL as well so this is just combination of a lot of tech I really like to work with. I have a project for my dad that I'm building out in Vesper for the backend and I might just use Ionic (as a PWA) with TypeORM so I can share all my entities and types between the two projects. I understand that the combination of all these technologies (NodeJS/TypeScript/Angular/GraphQL/EntityObject) is a little niche but I've had a blast working on it and it has a good amount of overlap with my job (save for our backend being java) so it's like killing 2 birds with 1 stone.

[0] [http://vesper-framework.com/#/](http://vesper-framework.com/#/)

[1] [http://typeorm.io/](http://typeorm.io/)

[2] [https://github.com/pleerock](https://github.com/pleerock)

</comment><comment> Const-me [https://www.geometrictools.com/](https://www.geometrictools.com/)

[https://renderdoc.org/](https://renderdoc.org/)

</comment><comment><USER18> I quite enjoy using/assisting this -

[https://github.com/Netflix/conductor](https://github.com/Netflix/conductor)

</comment><comment><USER19> Nvc, a vhdl simulator written in C.

I can't wait to spend some time with it, and dream of throwing Modelsim/Questasim in the trash.

<comment><USER20> I love iVerilog, so I sure hope this is developed enough before I'm forced to use VHDL for a project.

</comment></comment><comment><USER21> [https://www.scuttlebutt.nz/](https://www.scuttlebutt.nz/)

</comment><comment><USER21> [https://beakerbrowser.com/](https://beakerbrowser.com/)

</comment><comment><USER22> I regularly star things on github I find interesting, Currently, I have 400+ things I've starred, and I'd guess they are probably interesting to other people as well:

[https://github.com/jezell?tab=stars](https://github.com/jezell?tab=stars)

</comment><comment><USER23> [https://servicebot.io](https://servicebot.io)

[https://github.com/service-bot/servicebot](https://github.com/service- bot/servicebot)

Pretty easy way to sell app subscriptions

</comment><comment><USER24> [https://gobuffalo.io](https://gobuffalo.io)

</comment><comment><USER25> GraphQL Scraper. Turn websites into graphQL end points

[https://github.com/lachenmayer/graphql- scraper](https://github.com/lachenmayer/graphql-scraper)

</comment><comment><USER26> Just posting the last few I've added to my github list.

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

[https://github.com/ARMmbed/mbedtls](https://github.com/ARMmbed/mbedtls)

[https://github.com/ch11ng/exwm](https://github.com/ch11ng/exwm)

[https://github.com/DexterLagan/lsh](https://github.com/DexterLagan/lsh)

[https://github.com/hellerve/programming-talks#creative- codin...](https://github.com/hellerve/programming-talks#creative-coding)

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

[https://github.com/TechnologyClassroom/SetupNotes/tree/maste...](https://github.com/TechnologyClassroom/SetupNotes/tree/master/GNULinux)

[https://github.com/ocornut/imgui](https://github.com/ocornut/imgui)

[https://github.com/alseambusher/crontab- ui](https://github.com/alseambusher/crontab-ui)

[https://github.com/fyhertz/libstreaming](https://github.com/fyhertz/libstreaming)

[https://github.com/OCSInventory-NG/OCSInventory- Server](https://github.com/OCSInventory-NG/OCSInventory-Server)

[https://github.com/OCSInventory- NG/UnixAgent](https://github.com/OCSInventory-NG/UnixAgent)

[https://github.com/su8/pinky-bar](https://github.com/su8/pinky-bar)

[https://github.com/jakewmeyer/Geo](https://github.com/jakewmeyer/Geo)

[https://github.com/sevagas/swap_digger](https://github.com/sevagas/swap_digger)

[https://github.com/gavinlyonsrepo/bashmultitool](https://github.com/gavinlyonsrepo/bashmultitool)

[https://github.com/joereynolds/salutem](https://github.com/joereynolds/salutem)

[https://github.com/jarun/ddgr](https://github.com/jarun/ddgr)

<comment><USER27> Ha wow, I never thought my toy project (salutem) would make the cut!

Glad you like it and I'm open to suggestions for improvements :D

</comment></comment><comment><USER28> Publii Static CMS - [https://getpublii.com](https://getpublii.com)

<comment><USER29> Open source?</comment></comment>


Nintendo makes a profit on every Wii sold from day one - <AUTHOR> http://www.gamespot.com/news/6157690.html

<comment><USER2> This is an old article but it's a long held Nintendo policy. They took the same route for the Gamecube and N64. The N64 really suffered as nintendo chose RAMBUS ram which rose in price near fabrication and they had to halved the memory to 'make money on day one'.

Because the Wii is largely an upgraded NGC it was easy to make money from day one as hardware R'n'D costs were a lot lower.

If you live in North America then there is a shortage of Wii's because the dollar is weak and Nintendo can make more money in Europe. Europe recently passed N. America in terms of number of gamers and money spent on games so I don't see this 'shortage' issue changing for quite a while.

Having said all that Sony are not in a bad position either. the PS2 and PSP are still selling stong. the PSP has recently picked up in N America and Japan (more then just the latest Final Fantasy can explain) and PS3 will continue to be refined to make it cheaper and more reliable.

<comment><USER3> >If you live in North America then there is a shortage of Wii's because the dollar is weak and Nintendo can make more money in Europe.

North America != USA. In Canada, not only is our dollar not weak, we have plenty of Wiis to go around.

<comment><USER4> Is this incorrect? [http://www.google.com/search?hl=en&q=1+Canadian+Dollars+...](http://www.google.com/search?hl=en&q=1+Canadian+Dollars+in+US+Dollars&btnG=Google+Search)

Or am I misunderstanding that your currency has approximately the same buying power as ours?

Also, I bought 5 Wiis and resold them the day after Christmas last year. For the smart consumer, they're not in short supply.

<comment><USER5> yes it is at now par, but it wasn't always: [http://finance.yahoo.com/currency/convert?from=CAD&to=US...](http://finance.yahoo.com/currency/convert?from=CAD&to=USD&amt=1&t=5y)

</comment></comment></comment></comment><comment><AUTHOR> I know this is an old article, but I think it's interesting in contrast to the admission by Sony in their annual report that they've lost $3 billion selling PS3s.

The Nintendo business model makes a lot more sense to me.

<comment><USER6> Except the part about (possibly artificially) not having enough supply for an absurd amount of time. You can only sell software to people with the hardware, it makes sense to get the hardware out there.

<comment><USER7> Scalability problems are not just for the web :)

<comment><USER6> Correct, but with billions of dollars at stake it seems like they should have been able to figure it out. They made almost $5 billion in cash last year. This isn't a little startup trying to do something scrappy. If I was an exec I would be concerned why my company can't figure out how to make enough widgets 1.5 years after launch.

<comment><USER8> I submit that they're meeting demand precisely. They still are winning the sales wars, in all markets, every month. The idea of a "shortage" is a myth.

Plus, they're being smart and shipping units to Europe instead of here, given that they make more yen on the forex.

<comment><USER6> Every time I walk by the Wii shelf at Target it's empty. They sell for more than retail on eBay (and being bid on heavily). Demand isn't being met.

<comment><USER9> But is meeting demand 100% always the best goal to have? An increase in production is an increase in cost. Spending $10 million to sell 1 million units over 2 months is better than spending $20 million to sell 1 million units one month and 500k units the next.

<comment><USER6> Without knowing the actual costs, it's impossible to answer. Usually consumer electronics get cheaper when you make more of them.

I would have bought one if not two (for a gift) if they were available. Now I'm not buying any. They not only lose out on the unit sale, but all subsequent accessory and software sales. So even if making an extra 500k per month cost them marginally, they have 500k more possible sales for all their Wii software and accessories.

I don't really care that much, it's just the first time I can remember this happening in CE. Companies usually wake up and fix supply issues. Nintendo of America is as confused as I am:

[http://www.joystiq.com/2008/04/24/nintendo-of-america- passio...](http://www.joystiq.com/2008/04/24/nintendo-of-america-passionately- upset-about-wii-supply/)

<comment><USER7> Yeah but they're selling them here (In europe) for a lot more cash instead.

<comment><USER6> Then raise the price. They are selling higher than list on eBay still, which shows things aren't quite balanced.

<comment><USER10> Perhaps Nintendo believes that if people think the Wii is cheap but scarce, then they will be more likely to buy at the earliest opportunity -- unlike the PS3 or 360, which can be picked up at any time?

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> I've heard Nintendo is having problems moving software titles for the Wii because so many people are content playing Wii Sports.

Can this be validated by actual data or am I just rumor-mongering?

<comment><USER12> The picture is changing quickly. In the fall there was an article about attach rate. It was something like 7 games per Xbox, 5 games per Wii and PS3. In December, Wii outsold Xbox 8 to 7 (I had to read the statistic twice because it's 8 games per system _sold that month_, not 8 per system in existence).

[http://www.destructoid.com/wii-owners-bought-8-games-per- sys...](http://www.destructoid.com/wii-owners-bought-8-games-per-system-in- december-67294.phtml)</comment></comment>


Prime Numbers, Factorization, Their Role in Encryption and Linux Factor Command - <AUTHOR> https://www.putorius.net/factor-prime-numbers-encryption.html <comment><USER2> It's worth being a little careful of some of the utilities available in Linux _(et al)_. For example:

        $ primes 1154487209300 | head -1

        > 1154487209303

        $ factor 1154487209303

        > 1154487209303: 89669 12874987

In fact, this command is interesting:

        $ factor $( primes 1154487209300 | head -n 200 ) \
            | grep " .* " \
            | head -n 30

YMMV, some care required.</comment>


The Talk Show Remote from WWDC 2020, with Craig Federighi and Greg Joswiak - <AUTHOR> https://daringfireball.net/2020/06/the_talk_show_wwdc_2020 <comment><AUTHOR> Much as I would like to give Gruber credit for asking about the developer relationship with the App Store at the top of the interview, the question really felt like a softball. I know he's got a relationship to preserve, but Hey is one hell of an elephant in the room to let pass without a follow-up question.</comment>


Elop: Windows Phones just aren't selling well - <AUTHOR> http://www.wpsauce.com/2012/06/elop-windows-phones-selling.html?utm_source=twitterfeed&utm_medium=twitter&utm_campaign=Feed%3A+WindowsPhoneSauce+%28Windows+Phone+Sauce%29

<comment><USER3> I really enjoy the wp7 platform - developing apps is a cakewalk compared to iOS / Android and fragmentation is nonexistent. As a user of both iOS and wp7... wp7 just has a better overall user experience, it's not massive - <USER2> it's many small incremental improvements that add up.

Here's their problem: the carrier / retail ecosystem for WP7 sucks in the US. It's clear that they don't have any carriers truly on board except for AT&T... which is easily the worst carrier in my area (Chicago) in terms of both reliability and pricing.

Verizon has ONE crap Windows Phone, the HTC Trophy - possibly the worst Windows Phone available. So that's a no go. Sprint also has a single crappy phone. T-Mobile has a whole two phones - Lumia 710 (a crap version of the Lumia 900), and the HTC Radar - which is actually pretty nice, but hobbled by only 8GB of built-in storage. Even then, go to any of those stores and you'll have a rep trying to sell you an Android phone when you walk in the door. Check their websites and you'll see WP7 phones are at the very bottom.

Priority #1 should be fixing their retail/carrier ecosystem. The platform is fantastic, and there are some damn good phones too - but you're screwed unless you're on AT&T.

</comment><comment><USER4> I bought one.

To be honest, after the week I've had with it, I wish I hadn't now.

Had to resort to fiddling with a micro SIM adapter and my emergency Nokia 3310 I've had for about 10 years two times this week because it went flat in about 6 hours of doing nothing.

The 3310 makes me feel warm and fuzzy still even after all that time and bear in mind the battery is 10 years old, lasts about 5 days on standby.

<comment><USER5> In many US states, you have 14 or so days to return any cell phone.

<comment><USER4> I'm in the UK. We have the same law. Unfortunately I've had the device for 3 months.

<comment><USER6> You probably know this, but for anyone else reading in the UK, the 14 day 'cooling off' period applies only to things bought remotely ('sight unseen'). If you had a chance to look at it before you bought it, it's yours, no backsies. :-)

</comment></comment></comment></comment><comment><USER7> I'm on Verizon. I'd like to buy a Windows Phone, or at least think about buying a Windows Phone. The OS looks good, but every Verizon Windows Phone sucks.

Not sure what they can do about that.

<comment><USER8> This. I'm looking for a decent Windows Phone for about a year now. Something similar to HTC One X or Galaxy S III. Instead, they decided to make even cheaper devices.

<comment><USER9> Right now, they can't make WP7 device on par with One X or GS3. Not because nobody is willing, but due to compromises MS has chosen, when they developed WP7.

Do you remember, that the big selling point of WP was that you do not have problem with system upgrade? That you do not have to wait for system updates from vendors, because MS can push them directly?

Well, it turns out, that they can do it because they support only one design - one SoC (Qualcomm Snapdragon), two screen resolutions ("big" 800x480 and "small" 320x480), etc.

So basically, all phones are the same, just in different cases, with different logos. One one hand, it gets you direct system updates. On the other hand, it loses the competition in hardware, that pushes vendors to bring new products to the market. What's in it for NVidia, Samsung, TI, when they cannot use Tegra, Exynos, OMAP in WP7 devices? They will use android, where they can try to better up the competitors.

That's why we have One X and GS3, but WP7 is stuck in MSM8xxx land.

</comment></comment></comment><comment><USER10> He blames sales reps at carrier stores for not pushing customers to buy WP7 devices as they do with iPhone and Android. Wrong, Mr. Elop. The reps aren't getting paid by Apple or Google to sell their devices. Their devices are actually so cool and desirable that the reps evangelise it themselves. A WP7 device is neither cool nor compelling--not even the sexy Lumia. I'd rather have an N9.

</comment><comment><USER11> I'm probably selling my Lumia 900 (after AT&T sends me a new one since my current one has issues with the capacitive buttons) and getting a Galaxy Nexus straight from Google. I missed flashing new ROMs and kernels every month like I did with my Nexus One.. Plus it seems WP7 devices are going to get left in the dust when WP8 comes out.

<comment><USER12> I can't tell if you are ironic or not.

</comment></comment><comment><USER13> I really like my HD7 simply for the OS. The hardware is actually old and that's the unfortunate state for most of the Windows Phone "selection". The bigger problem is that all of the good phones are on one network.

</comment><comment><USER12> He certainly seems to have the marketing thing pinned down.</comment>


Resize and Style Google Chrome Scroll bar without Extension - <AUTHOR> http://www.gtricks.com/google-chrome-tricks/scroll-bar-without-extension/ Thanks to this guide now I have scrollbar looking like Plan9 Acme's one. The default scrollbar colors are very hard to see especially when your eyes are tired. With this settings I never miss the position in document.<p>::-webkit-scrollbar-track-piece{ 	background-color:#99994c; 	-webkit-border-radius:0; } ::-webkit-scrollbar{ 	width:12px; 	height:8px; } ::-webkit-scrollbar-thumb{ 	height:50px; 	background-color:#ffffea; 	-webkit-border-radius:0; 	outline:1px solid #99994c; 	outline-offset:-1px; 	border: 1px solid #99994c; } <comment><AUTHOR> Thanks to this guide now I have Plan9 Acme like scrollbar in Google Chrome and Chromium and it's easy to see where you are even in the end of hard day:

        ::-webkit-scrollbar-track-piece{
        	background-color:#99994c;
        	-webkit-border-radius:0;
        }
        ::-webkit-scrollbar{
        	width:12px;
        	height:8px;
        }
        ::-webkit-scrollbar-thumb{
        	height:50px;
        	background-color:#ffffea;
        	-webkit-border-radius:0;
        	outline:1px solid #99994c;
        	outline-offset:-1px;
        	border: 1px solid #99994c;
        }</comment>


Ask HN: UI prototyping tools? - <AUTHOR> I want a simple tool to help me prototype data tools that I build for myself and clients. I'm a fullstack/data engineer, not a designer so I don't have Adobe or Sketch.
I find myself using "google drawing", but wish I could drag'n'drop Bootstrap 4 elements into place without writing code.
I basically want the free version of Atom for UI prototyping.
Ideas? Links? <comment><USER2> The tool you're looking for is called Figma: [http://www.figma.com](http://www.figma.com)

It's far better than Sketch, imo, and has a free tier.</comment>


Letter 76: Shirking Routine - <AUTHOR> https://stoic.substack.com/p/letter-76-shirking-routine <comment><AUTHOR> Stoic Designer is a newsletter I've ignored writing for awhile and I'm trying to make it again part of my routine. It's intended to be a brief meditation applying stoicism to design work.</comment>