Show HN: Alan – a low-code application platform - <AUTHOR> https://alan-platform.com/pages/tuts/introducing.html <comment><USER2> I've long thought that this is the way applications should be built. 90% of what we do as app developers could be automated away. This looks really promising.

That having been said, I'd like to echo some of the other comments here. You need better docs.

As an app developer, I want to see some things right away:

1\. What's the server written in? Can I see the code? It isn't clear which of your Github repos contain the server. If your server is proprietary or secret, make that clear.

2\. I'm not going to install VirtualBox. Just give me a binary that I can install so I can see what's going on.

3\. I want to see what a finished app looks like. Either do a video, or better yet, put up a demo site. Don't make me install the Hours app just to see it.

4\. What is the Alan Connect app? I want to see it before I install it.

5\. Give me a way to escape the system. I get that I don't need to write code, but for some things, I really do. In what language do I write custom functions? How do I customize the UI?

I understand that I could slog through the docs to find the answers for all these things, but your adoption rate will go way up if you make it easier. When I evaluate new software, if I can't find the answers to the big questions in 20 or 30 minutes, I move on.

<comment><AUTHOR> Thanks for the feedback, this is exactly what we're looking for here. Perhaps some of this is "how to launch a platform 101", but we can't guess all the concerns everyone may have. Also, we're not necessarily looking to really kick start adoption for a wide audience right now. The platform lacks maturity on a number of levels to properly support that.

We'll continue to work on our documentation and clarify some of the things you mention here. A grab bag of quick responses:

The server is in-house, written in C and C++ and (at this moment) closed source.

If you're on Linux or MacOS you can simply run the server from the command line: [https://alan- platform.com/pages/tuts/reference.html#starting...](https://alan- platform.com/pages/tuts/reference.html#starting-a-server-from-the-command- line)

We don't support custom functions, but we do support custom applications that run alongside the stack. They can be written in anything, and we have tools to quickly develop such systems in JS, TypeScript and C++. They're not part of what we're making available to community users right now, so documentation is still a bit limited.

We understand people want to see the UI, but it's not the key selling point. Pretty apps isn't what you'd use Alan for (although you could). We try to focus on the modeling language, as it's hopefully unique and cool enough to draw the right audience in.

<comment><USER3> > We understand people want to see the UI, but it's not the key selling point. > Pretty apps isn't what you'd use Alan for (although you could).

In my humble opinion, I would suggest rethinking this.

I imagine you don't intend to sound that way, but a response like this might suggest to people that you don't value user experience or good design, which would rule a lot of otherwise-interested people right out. For any serious project, how it looks and how it feels is _every bit as important_ as how it functions. (Even for B2B or internal-only needs, this regularly remains true).

If I can't build a gorgeous, industry-leading well designed app in Alan, then there needs to be clear information about how I would do that outside of Alan while using your platform. Otherwise, Alan is just for disposable apps / throw-away apps / Excel-replacement apps, and for any serious work, I'm eventually going to have to rewrite the whole app in something else anyway so I might as well start there first.

<comment> core-questions > Otherwise, Alan is just for disposable apps / throw-away apps / Excel- > replacement apps, and for any serious work, I'm eventually going to have to > rewrite the whole app in something else anyway so I might as well start > there first.

There's no reason to be so elitist. Disposable applications can become important in business, they're often the duct tape that holds a small or medium sized company together. If they can be written more quickly and with more functionality than in MS Office apps, there's a very legitimate and actually very large use case for Alan.

<comment><USER4> Only by the niche that is aware they are writing throw away applications.

No one "asked" for Excel applications, Excel was there, and applications started getting written in it.

Alan has to be installed on-purpose, it can't be used accidentally like Excel was. Part of the (global) utility function is how something looks.

</comment></comment></comment></comment></comment><comment><USER5> Some feedback: * "low code" is confusing When I started reading I thought low code, meant low "level" code, something like assembly or rust. After reading a lot in the page I saw it meant not writing imperative code. I think the term Model Driven Engineering would be more appropriate: [https://en.wikipedia.org/wiki/Model- driven_engineering](https://en.wikipedia.org/wiki/Model-driven_engineering)

* How do I model business rules? How do I model a State machine?

      I want to specify that once an order has been created I want to send it to the procurement department.

* How do I connect with external APIs systems?

* You mention that you have an ERP system based on this platform. Can we look at that code? Can we have some testimonials?

Kudos: * It's good that you are doing a declarative approach to business software... this is still most of the software we use and I don't think it's a solved problem.

* On using a Graph database I think this is better to model complex domains. However which graph database are you using? Neo4j, Dgraph, OrientDB or is an inhouse graph database?

* On the name

<comment><USER6> > "low code" is confusing When I started reading I thought low code, meant low > "level" code, something like assembly or rust.

I expected that as well from the title but at the very start they link the meaning of the term so that those of us that don't know what it means can quickly find out on Wikipedia.

I think it's best to do like they are doing and link the Wikipedia article.

<comment><USER7> It would also be helpful to use the spelling from Wikipedia: "low-code" vs. "low code" are very different in my mind.

<comment><USER8> Agreed, to me "low-code" is a lot more clear.

<comment><USER9> instead of "low-code" maybe "meta-level" or "super-level" programming ... :)

<comment><USER8> or just go with "declarative" programming, since that's kind of a term of art? or "intent-driven"?

</comment></comment></comment></comment></comment></comment><comment><USER10> > See it with your own eyes

I'd love to. You need to show it on this page.

Even if a screenshot (or screen capture, or some code) is pretty useless, it helps give the right context, and tells me this is actually a thing, and not just a hope.

This [0] should be front and center.

[0] [https://alan-platform.com/pages/tuts/helloworld1.png](https://alan- platform.com/pages/tuts/helloworld1.png)

<comment><AUTHOR> Thanks for the feedback! Luckily you found the tutorial :) It's indeed a real thing, so a screenshot has been added!

<comment><USER10> Awesome. Good placement, too.

</comment></comment></comment><comment><USER11> Hey Koen, congrats on you and Corno making front-page on HN!

I can definitely confirm for others reading this that it indeed has been something like 10 years in the making; I was working with a prototype of it 8-9 years ago and found those data models so nice that I actually reimplemented the core idea in a repository on GitHub, though it didn't really go anywhere except for my own web site. I have also been able to reimplement it in TypeScript more recently, so that there is a non-Turing-complete subset of algebraic data types (though maybe I'll be able to add a fixpoint operator, who knows) as _runtime objects_ with highly specific TypeScript types that are inferred from the functions you use to construct them. So then a parametric TypeScript construct,

        ValueOfType<typeof mySchema>

embraces values that match the schema that you just specified. You can use this trick to write functions like

        myHTTPRouter.get('/objects/by-id/:objectguid', {
          params: {
            objectguid: {
              type: 'guid'
            }
          },
          async handler(params) {
            // inside of here, params has type {objectguid: string},
            // and VSCode knows this, because params is ValueOfType<schema> where
            // the schema is specified in the `params` key above.
            return response.json({success: true})
          }
        })

It's a really fun perspective on programming to have these schemas available at both runtime and compile-time, very DRY.

<comment><USER12>
          // inside of here, params has type {objectguid: string},

Should that be {objectguid: guid}? If not, where did the string come from there?

<comment><USER11> I don't think TypeScript has a native GUID type, but if I am wrong about that please tell me as it will make my code more type-safe.

The `string` type here comes from a mapping that the router is using. That is, the router ultimately type-evaluates a `ValueOfType<{type: 'guid'}>` to `string`. But because it's a runtime object, the router can also, at runtime, validate that URL param, "did they actually give me a UUID?" \-- and sanitize it, e.g. "convert all UUIDs to lowercase."

(In fact the benefit of having this TypeScript type at runtime is even bigger than that. With Express.js, the router can rewrite the route param so that the route doesn't even match if you don't provide a UUID, which matters because there is often a lot of accidental ambiguity in HTTP APIs -- but here you can embed the UUID regex into Express paths. The router can then also do some other trickery like confirm at initial load time that all params in URLs match params in this `params` dict, and it can convert all of its routes to OpenAPI/Swagger docs so that you can define another route which just gives you your OpenAPI JSON. Literally in what I have written the above would be a type error because the `Router` class would complain that `params` has the wrong type because the `objectguid` descriptor needs a key called `doc` which is a string for parameter documentation for OpenAPI.)

</comment></comment></comment><comment><USER13> Kind of amusing that it is named after Alan Turing when one of its major features is not being Turing complete by default.

This effort for very high level code for building applications reminds me of Eve[1] as a non-traditional programming language (now not actively developed AFAIK, so more suitable for study than actual use). Both languages are designed to be accessible to people who aren't developers and making it simpler for people solving problems.

Love how Alan is trying to close the gap between requirements and actual code. At least for me, one of the things that has bugged me about writing in a language such as Java is tracing code to requirements. For Java the first thing to think of to solve this is discipline and complete documentation. I mean there are things like using a traceability matrix[2], but are there better ways to find or represent the relationship between requirements and code. There have been things commonly proposed to programmers such as Test Driven Design, but they are for making sure that the requirements are met by at least some of the code, not for tracing code back to requirements. Are there better ways to manually checking? Perhaps formal methods for tying requirements to every bit of code in a project, or anything else. Maybe languages and platforms like Alan are the way forward on this issue for a lot of things. Counterpoint, I don't know of any real effort from me or anyone I have worked near to trace code to requirements, the effort has been only to make sure requirements are satisfied, it doesn't seem to have caused any issues, so maybe it is only worth it for safety critical code.

[1] Eve: [http://witheve.com/](http://witheve.com/) [2] Traceability matrix: [https://en.wikipedia.org/wiki/Traceability_matrix](https://en.wikipedia.org/wiki/Traceability_matrix)

</comment><comment><USER14> How do you compare yourself against other "low code" platforms in the 4GL landscape?

[https://en.wikipedia.org/wiki/Fourth- generation_programming_...](https://en.wikipedia.org/wiki/Fourth- generation_programming_language#Low_code_development_platforms\[9\]\[10\])

<comment> le-mark I would also like to see this comparison. Another thing is; HN is really the wrong audience for this. Technologists here will spin up a vm/container with their stack of choice. Indeed; ruby and rails, django, node, all fill the void 4GLs did decades ago.

Finding and reaching users for this type of tool is the challenge imo. Implementation is the easy part.

<comment><USER15> I dunno. This is exactly the kind of thing I come here for. Even if I never use it myself, it's an idea I've thought about myself, so it's good to see someone else made it.

</comment></comment></comment><comment><AUTHOR> Hi, Alan is a new approach to "low code" for the rapid development of data centric applications. I'm one of the developers of the platform.

> Instead of the traditional relational database + 3GL or 4GL language, the > core of Alan is a data modelling language that automatically generates full > stack applications.

If you'd like to know more, we'll be monitoring this HN post and we have a forum: [https://forum.alan-platform.com](https://forum.alan-platform.com)

<comment><USER16> Sounds a bit like naked objects?

[https://en.wikipedia.org/wiki/Naked_objects](https://en.wikipedia.org/wiki/Naked_objects)

[http://downloads.nakedobjects.net/resources/Pawson%20thesis....](http://downloads.nakedobjects.net/resources/Pawson%20thesis.pdf)

</comment></comment><comment><USER17> I am not sure I get it right, but is this supposed to be a modern MS Access?

If it is, I think it is a very welcoming innovation. I believe there are a lot of use cases in business that are currently under-engineered into Excel or over-engineered into complete web apps, SAP or salesforce applications.

BTW, it is a mystery to me why MS Access itself, that is still around, lost this post.

<comment><AUTHOR> You could look at it like that. But because data modeling language underneath is so much more detailed and powerful, the default UI is also much more useful than what you get in Access or any other relational database. The basic target audience is similar, but Alan scales a lot better to more complicated applications.

As you say, we see Excel being stretched to doing things it cannot do, and on the other hand custom apps being built for things that don't need to be so specific. There is a place for low code the way Outsystems does it for instance, but we believe a lot of businesses would be better served by something like we're offering here.

</comment></comment><comment><USER18> How do you take this from here to the next step?

Let's say I want to develop a multi user todo and I've followed the examples and now have some Users who log in entering a password.

Someone points out that I shouldn't be storing passwords in plain text so I want to store them hashed.

Despite there being hints in the documentation that this is possible (migrations shows the password hashed), it's not clear how to carry out this kind of change.

A walkthrough of making a change would help convey the use case much better than just templates of "this incantation produces this output".

<comment><AUTHOR> Well, in this particular case passwords are always hashed. So the platform deals with that for you. Other changes to the data model need a migration, which is covered here: [https://alan- platform.com/pages/tuts/migration.html](https://alan- platform.com/pages/tuts/migration.html)

<comment><USER19> It looks like you're using SHA256(username||password) in this example. Even if it's only an example, why use a homebrew password hashing scheme based on an unsuitable hash function and bad ad-hoc salt handling, instead of a strong standard password hash with built in salt handling? And what code/specification is required to use a secure algorithm, like bcrypt with a random salt?

People often copy from such tutorials and will then end up with insecure password storage.

<comment><USER20> As someone who's not a developer but still occasionally looks through these "build an app" tutorials, password/authentication portions always worry me. I wish I could know that best-practices were shown as far as storing/encrypting user data/passwords.

</comment></comment></comment></comment><comment><USER21> This is very interesting. I'm looking through the Hours [0] code. Instead of:

        'Week Day': stategroup (
          'Monday' -> { }
          'Tuesday' -> { }
          'Wednesday' -> { }
          'Thursday' -> { }
          'Friday' -> { }
          'Saturday' -> { }
          'Sunday' -> { }
        )

I think it would be nice if you could just write something like:

        'Week Day': stategroup ('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday')

Or even something like %w() from Ruby:

        'Week Day': stategroup %w(Monday Tuesday Wednesday Thursday Friday Saturday Sunday)

I also see a lot of "'Yes' -> { }" and "'No' -> { }" stategroups that are quite verbose. So it would be nice if you could just do:

        'Active': stategroup @default: 'Yes' %w(Yes No)
        'Subsidized': stategroup @default: 'Yes' %w(Yes No)

Or even a "Boolean" shorthand instead of 'Yes' and 'No':

        'Active': stategroup @default: 'Yes' Boolean
        'Subsidized': stategroup @default: 'Yes' Boolean

Also 'can-create:' and 'can-update:' seem to always have some shared logic. Instead of:

        can-create: user +'Roles'?'Manager'|'Yes'
            || user +'Roles'?'Project Manager'|'Yes'
        can-update: user +'Roles'?'Manager'|'Yes'
            || user +'Roles'?'Project Manager'|'Yes'
            || equal ( user , $ >'Project Group'>'Owner'>key )

You could do something like:

        can-create: user +'Roles'?'Manager'|'Yes'
            || user +'Roles'?'Project Manager'|'Yes'
        can-update: &can-create || equal ( user , $ >'Project Group'>'Owner'>key )

[0] [https://github.com/M-industries/Hours/blob/master/interfaces...](https://github.com/M-industries/Hours/blob/master/interfaces/model/application.alan)

</comment><comment> jf- Tutorial has some issues. "from_scratch.migration" should be "from_zero.migration", and visiting server_ip:7584 gives an invalid address error. This is after downloading the virtual box image, installing Alan connect, doing the build steps, importing the built image and starting it.

Edit: Looks like the Alan connect app needs to be restarted after adding the image. Clicking "advanced" nothing was running, it's fixed after reloading.

<comment><AUTHOR> Thanks for catching that. Did I mention we're still moving fast and breaking things? ... Sorry. The tutorial text should be fixed, will be looking into the Alan Connect app.

<comment> jf- No worries! Nothing is ever perfect on launch day.

It's a nice app you have here. My gut instinct is that you will need to allow under the hood customisation if you want it to really catch on. Your potential customers will be afraid of getting 90% of the way to their goal and realising that the last 10% is impossible.

<comment><AUTHOR> Thanks for understanding.

You're not alone with that gut instinct. We haven't run into that problem though. Also, that last 10% can probably be achieved using a custom side app, or a custom front end. We didnt cover that in detail in the introduction, but the options are there. Also, current traditional approaches aren't guaranteed to get you near 100% either. They may hold the promise of getting there, but we're usually dealing with clients who understand that most projects don't make good on that promise.

</comment></comment></comment></comment><comment><USER22> As much as I like the idea. There seems to be a fair number of requirements. I don't particularly feel like installing an 'alan' server, or an 'alan' connector just to test out my application.

Is there any reason why 'alan run' couldn't do these things for me automatically and run it on my local host?

<comment><AUTHOR> Well it could. We find in practice that it's easier to just have a server running "somewhere" (locally if you have the resources) and push applications to it. But if the feedback shows that the first-run experience needs to improve that's definitely an area we would be looking at.

<comment><USER8> My experience has been that it's valuable to have an easy way to spin up a local server/runtime stack, for a wide variety of reasons.

<comment><USER23> I agree. I think people would be far more likely to try it out if you could kick off a dev server from the CLI without having to fire up any extra processes.

</comment></comment></comment></comment><comment><USER24> How are you going to differentiate against Mendix or ServiceNow?

At the moment their offering seems to be much more mature. Niche strategy? Price? Open Source community? Grow faster (needs more money)?

<comment><AUTHOR> They have a head start in getting to the market. We need more time to reach their level of maturity, but we believe we have the core concept and technology to surpass them quite a bit. For the really large projects our focus on the core specification already makes a difference.

</comment></comment><comment><USER25> I like that this picks up where excel drops off. But I would like to see some concrete examples. Someone here mentioned a video, that would be good, or even just a list of several specific use cases.

</comment><comment><USER26> It's interesting to me that the positive HN response seems to show that programmers do (publicly) like CRUD generators and RAD (rapid application development) but only if there's no front-end.

I don't buy that it's actually better without a UI or that you can't make a UI for configuring complex models (it's hard but has been done many times before). But like I said, programmers seem to accept it more readily without the UI so maybe that's the trick to programmer popularity for these types of systems.

<comment><USER27> Actually, in the early days we thought about whether to go text-based or not, for instance going for a boxes-and-lines type of modeling environment.

We concluded that for serious modeling, 80% or more of what one does is giving names to concepts, leading to the usage of a lot of text any way. And that boxes-and-lines introduces a lot of 'clutter' which is probably meaningful, but not in a strict enough way to do anything useful with it: x/y coordinates of boxes and lines.

That's next to there being a lot of tooling available when going text based (editors, versioning, etc), which is more of an added bonus in the short run.

In the end, we will probably evolve in the direction of using a projectional editor, making it possible to have some boxes-and-lines modeling environment as well.

<comment><USER26> Most model editors for CRUD aren't boxes and lines, since as you say moving around and connecting boxes isn't generally useful. So I'm not sure why you were starting with that UI.

To me, projectional editing is the most sensible type of programming. Unfortunately projectional editors have not had as warm a reception on HN, because programming is narrowly defined by complex text editing. Anything with a UI and programmers are afraid they will be accused of being users. It's dumb, and most won't realize it or admit it, but that's what it comes down to.

<comment><USER27> The boxes-and-lines is a very common way of visualizing tables and relations or types and subtypes and/or components. Also in most other so called low-code platforms. That is why it was under consideration: familiarity. I agree it is not very useful though.

Projectional editors can of course show the model as text and in other formats as well, like boxes-and-lines. You wouldn't be able to permanently place them in any specific spot then, so moving them around would at most be supported during a viewing session.

</comment></comment></comment></comment><comment><USER28> Any thoughts of totally revamping the syntax of this declarative language? Perhaps borrow some inspiration from Ruby or some other humane english-like programming language?

What's the point in forcing non-coders to write "-> {}" multiple times for no reason?

As for Ruby, you can be like Matz and strive for happiness by minimizing syntax and maximizing readability.

</comment><comment><USER29> On this page: [https://alan-platform.com/pages/tuts/bottom- up.html](https://alan-platform.com/pages/tuts/bottom-up.html)

The ASCII art isn't rendering correctly. (In Chrome on a tablet.)

<comment><AUTHOR> Damn, I was so proud of that. You should bookmark it so you can enjoy it on a big screen later ;)

<comment><USER30> Also broken on my 24" monitor (Chrome on Windows)

<comment><USER8> Same for me, widescreen FF62 on Windows 10 FWIW

</comment></comment></comment></comment><comment><USER31> Back in the peak years of ERP (90s), as a fresh graduate i started my career in a company called BaaN. It was one of the big two SAP (Germany) & BaaN (Netherlands). To give a sense of its capability, it is the product that Boeing chose as its ERP, Boeing being the most complex challenge for any ERP!

BaaN were pioneers in this kind of 4GL thinking and made some revolutionary stuff!

The product since then is sadly now a living a zombie life with its existing customer base. The link below gives a sense of what they provided.

[http://www.baanboard.com/node/46](http://www.baanboard.com/node/46)

</comment><comment><USER32> I feel like there should be a link to a demo application more easily accessible. I'm interested in what type of things I could build with it, is the only way to check that out forking the tutorial repo and building it etc?

<comment><AUTHOR> Right now it is. Getting it to run should be pretty straight forward. We should do a video demo though, so perhaps check back later this week.

</comment></comment><comment><USER33> I liked the developer experience right off the bat -- the way the data structures are modeled couldn't be more elegant.

However, this put a crimp in my enthusiasm:

"[Alan] defines all possible states of the data, and in effect all possible states of your application"

We recently finished refactoring a complex algorithm that got away from us because we coded it as a state machine rather than a plain vanilla algorithm using good old sequence + iteration + selection. The state machine version may have been easier to write, but the old fashioned algorithm was so much easier to reason about and maintain.

<comment><AUTHOR> Both approaches have their place. If the problem you're solving is best served by an "old fashioned algorithm" you can hook up a side application to your core system. The interface you define between the side app and core ensures your data never gets into a weird state because your algorithm didn't cover a case. For instance, for some projects we hook up to the Preactor planning system specifically to use their algorithms.

</comment></comment><comment><USER34> The oldest project I know of that tried to do something similar was Naked Objects, which later became Apache Isis (the Java version at least).

What's the difference between Alan Platform and Apache Isis?

<comment><USER27> We definitely have had experience with Naked Objects before this. I can tell you the main difference between Alan and Naked Objects is the modeling language under the hood. Which in Alan's case is a specific for its use, whereas in Naked Objects, it is something like Java or C#.

</comment></comment><comment><USER35> How do you deal with performance issues with this kind of abstraction?

<comment><AUTHOR> Because we continuously reuse use a fairly limited number of patterns we get to optimize the hell out of them. At a generic level, not specific implementations, but you can still make them fast.

There are some other mitigating factors, like:

\- the datastore is fully in memory

\- you can spin up multiple datastores to share the load

You also don't tend to accidentally run into a performance issue. The constructions that cost more (e.g. nested derived collections) or are risky (kicking of derivations at a high interval) are known beforehand. You tend to know already if you're going to use a lot of memory or expect high CPU load.

<comment><USER35> But you are releasing the server binaries for people to run on arbitrary hardware. Surely different CPUs and machine profiles move the performance thresholds on various dataflow implementations?

</comment></comment></comment><comment><USER36> Do that relationally, win the world.

<comment><AUTHOR> Graph databases are much more powerful and a better fit for our modeling language. However, the platform can create a live SQL database mirror if you need that kind of thing.

<comment><USER37> Can your graph database update multiple models at once in a transaction?

<comment><AUTHOR> One database runs one model (multiple databases can be connected to each other via interfaces). One transaction can update any number of properties, collections, etc.

</comment></comment></comment></comment><comment><USER38> How does this compare to [http://jasonette.com](http://jasonette.com) (besides the obvious platform differences)?

<comment><AUTHOR> I don't know jasonette in detail, but you should think of Alan primarily as a way of building and iterating on apps with lots of guarantees about data quality and matching specs, not necessarily a way to build an app quickly.

<comment><USER39> How does it compare to the current low-code/no-code platforms such as Caspio ([https://caspio.com](https://caspio.com)), Zoho Creator([https://zoho.com/creator](https://zoho.com/creator), or ZenBase ([https://getzenbase.com](https://getzenbase.com))?

<comment><USER40> Not exactly a fair comparison because zenbase is NO code, one more step further. With zoho, one must also learn a rather strange proprietary programming language called Deluge.

</comment></comment></comment></comment><comment><USER41> It would be nice to have a simple example application code and demo.

Something like TodoMVC seems like a reasonable place to start.

<comment><AUTHOR> Out tutorial runs you through setting up something small, and example code lives on GitHub: [https://github.com/M-industries/AlanProjectTemplate](https://github.com/M-industries/AlanProjectTemplate)

</comment></comment><comment><USER42> Any thoughts on pricing model yet? I see it's free for personal use. Who do you view as your competition?

<comment><AUTHOR> We're still feeling out the market here, to see where we can take it. It will probably stay free for personal use and then grow from there with services like hosting, etc. Pricing model for businesses is something we're looking at from case to case currently.

Competitors include Mendix, Outsystems etc., when it comes to low-code and serving citizen developers. Excel as well. On the other hand there are still a lot of custom implementors out there that try to solve similar problems for businesses.

<comment><USER43> Really interesting framework. And the docs are super easy to understand; nice work!

I'll be interested to see where it goes with pricing. It's hard to start building on a platform if you don't know if it's going to become too expensive in the future.

Paid hosting seems like it would work really well for a system like this (though I'd encourage some type of open-core model as well, so people have some escape hatch if the company goes under).

<comment><AUTHOR> Good to hear the docs are clear for someone who hasn't been "living it" for years. I understand it's hard to put your trust into something Alan right now, so we're definitely looking at making more of it available without our direct involvement.

All I can say right now is that you should just give it a go, I bet it will change the way you look at code. If you do eventually want to build something critical on Alan, get in touch with us and we'll get the contracts set up to support that properly.

</comment></comment></comment></comment><comment><USER44> It should have a video showing the code the process and the sort of apps it builds.

I'm not doing the tutorial.

I'm sufficiently interested to give it a 30 second video. If that looks interesting I might look at more involved videos about some aspect.

<comment><AUTHOR> Hey, that's good feedback thanks. We did a little video/gif of the deployment process ([https://alan-platform.com/pages/tuts/getting- started.html#bu...](https://alan-platform.com/pages/tuts/getting- started.html#build-it)). At some point we'll do a full walk through video, but time-wise it's expensive to do.

The flow is pretty bare bones though, so if you're used to a text editor and command line tools it'll be pretty familiar.

<comment><USER44> Well you've launched, so you should be meeting the needs of potential customers.

In your shoes I'd turn around and make a 1 minute video and upload it to YouTube within 20 minutes, showing what your system is and what these data structures look like.

If you have an Apple Mac, the screen recording is built right into QuickTime, just plug your telephone headset into the machine to record some narrative as you go.

Seriously, why launch without showing people what it is? 10 years coding, not willing to spend 5 minutes to record it and show us?

I'm not interested in reading about the deployment process. _Really_ not.

Sell me on what you made.

<comment><USER17> I disagree with your strategic view for what one should do after launch.

I think the focus should be meeting the needs of _actual_ customers. And an intro video for people who are still deciding if they will give a chance is not one of those needs by definition.

Right after launch, you want to iterate the product for your actual users. After-launch is not _growth_ phase, is product/market fit phase. Some friction that filters out customers that are not of the early adopter profile might even be desirable.

The only exception is if you do not have enough customers to get feedback from, then you work on this sort of thing.

An important, if subtle, point is that I am not against _sales_ in this early stage, I am all for it. I am against investment in inbound growth-only tactics. Founders doing early sales can both overcome any deficiency in a landing page, _learn_ about what is the best message, _and_ improve their product along the way.

<comment><USER22> As I understand it, they already have customers, and are trying to promote this to a wide audience though.

In that sense trying to appeal to people that would potentially use your system sounds like a great idea.

</comment></comment></comment></comment></comment><comment><USER45> It looks cool, but I have no idea how to use it. You guys need to give a proper tutorial page, where you show how to from 0 to working app.

</comment><comment><USER39> How would you handle workflow? A simple example: email manager when a timesheet has been supported for approval.

<comment><AUTHOR> We'd set up a derived collection of "timesheets that need approval" and export that to an emailer system. Every time a new entry shows up in that collection the emailer will send out an email to the respective manager (whose email address would probably also be part of the data exposed to the emailer system).

So, in essence, you hook up a separate system to a part of the data (we have a system ready made for this particular use case), and the datastore will push all changes in that data to this system.

</comment></comment><comment><USER46> All states should be defined? Then how to write an app takes two numbers and returns the sum?

<comment><AUTHOR> Check this for an example: [https://github.com/M-industries/AlanProjectTemplate/blob/mas...](https://github.com/M-industries/AlanProjectTemplate/blob/master/interfaces/examples/application.alan#L116)

<comment><USER46> Thank you for the example. I just don't want to be picky but that is church encoding. To represent a number, say 1234567, you will need million items in a list.

<comment><AUTHOR> Ah, like that. It's a fair point, but you're interpreting the model at too low a level. You don't have to model all possible values of scalar types (number, text) because the implementation of all possible values is known. I.e. you're writing a model that will drive the behavior of the application in terms of business rules, with specifications that matter to users of the application.

</comment></comment></comment></comment><comment><USER47> Apologies for off-topic..., but can someone explain the logo to me? is it a head with legs??

<comment><USER17> I believe it is a head with a shirt collar. But at first glance, I thought it was a beer mug.

<comment><USER48> I'm disconcerted after reading this thread, seeing that some people somehow think that "low code" means "low-level code" (really?) and mistaking a collared shirt for legs. I'm going to assume it's because this post was made early in the morning and no one has had their coffee yet.

<comment> a-nikolaev Your application is awesome!

However, the logo to me did look like a blood bag with some yellow liquid in it and two tubes sticking out at the bottom. (When shown on white background, you cannot see hair on the guy's head - [https://alan- platform.com/pages/tuts/introducing.html](https://alan- platform.com/pages/tuts/introducing.html) ) Anyway, the program looks very intuitive in its purpose and goal!

<comment><USER49> Yes, a blood bag is exactly the impression I got. I was like "oh, okay. this represents the 'lifeblood' of development" or something.

</comment></comment></comment></comment></comment><comment><USER50> 'M-Industries'?

Any relation to the defunct Microsoft Oslo/M-Language model-driven development platform?

<comment><AUTHOR> Nope, no relation. It's a long story for some other day ;)

<comment><USER50> Did you at least take a look at any of the Oslo stuff? There were some solid ideas in there.

</comment></comment></comment><comment><USER51> Great idea. We were looking for something close to Alan for converting an internal app

</comment><comment><USER52> I have to know .. any chance the name was inspired by Alan Kay? :]

<comment><AUTHOR> Nope, different Alan ;) You'll figure it out.

<comment><USER41> Alan Turing? Because it's _not_ Turing complete?

</comment></comment></comment><comment><USER53> How come the "behind the scenes code" is unavailable?

<comment><AUTHOR> In your project, you write specifications. These are read by the runtime components (database, web client) and this specification fully defines their behavior. There is no project specific code, everything you can write in your data model is supported by the runtime components. You can look under the hood at that level, the runtimes are built in C(++) and TypeScript etc., but it's completely generic. In fact a lot of that codebase is generated.

</comment></comment><comment><USER54> Somebody should implement this with Ruby DSL over RoR.

</comment><comment><USER55> As an Alan, I'm not sure how I feel about this.

</comment><comment><USER56> is this based on the concept of StateCharts?

<comment><AUTHOR> It isn't based on that concept, but certainly there are similarities with StateCharts and probably some other projects as well.

</comment></comment><comment><USER57> An oKay name ...

<comment><AUTHOR> Not _that_ Alan though ;)

<comment><USER42> Seems odd, given _" It's declarative and not Turing complete"_

<comment><USER58> What? Alan Turing also created non-universal Turing machines. :-P

</comment></comment></comment></comment><comment><USER59> "Alan" is presumably named after Alan Turing yet this not Turing-complete...

That is an odd naming scheme...

Whats next? a Lisp called "NoBrackets"?

<comment><USER60> It is Turing-incomplete. Turing gave us the concept of computational completeness, which requires the complementary incompleteness in the same breath.

</comment></comment><comment><USER51> Great stuff!!

<comment><AUTHOR> Glad you like it :)

</comment></comment><comment><USER61> Tutorial links to [http://127.0.0.1:4000](http://127.0.0.1:4000) :(

<comment><AUTHOR> Thanks for catching that... Sorry!

This is the correct link: [https://alan-platform.com/pages/tuts/getting- started.html](https://alan-platform.com/pages/tuts/getting-started.html)

</comment></comment><comment><USER62> your tutorial page goes to [http://127.0.0.1:4000/pages/tuts/getting- started.html](http://127.0.0.1:4000/pages/tuts/getting-started.html)

<comment><AUTHOR> Sorry, go here instead: [https://alan-platform.com/pages/tuts/getting- started.html](https://alan-platform.com/pages/tuts/getting-started.html)

</comment></comment><comment><USER63> How does this compare to Google App Maker? And MS Power Apps?

<comment><AUTHOR> I guess you could compare it to the model driven Power Apps. However, Alan's modeling language is more powerful. Especially the concept of state groups that allows you to specify complex business rules in the application model itself.

It's the process of laying down the rules for the data in your application that drives development in Alan. Unlike Google App Builder, you don't start from a drag and drop UI builder. Although a drag-and-drop UI builder is something we might want to add at some point. For most applications though, the generated UI is plenty powerful, because what it needs to support is perfectly specified in the datamodel.</comment></comment>


Show HN: Terminal-based application launcher for Unix-like systems - <AUTHOR> https://github.com/lchsk/xstarter <comment><USER2> Can I use this instead of dmenu? dmenu is so slow!

<comment><AUTHOR> Hi Yes, this is thought of as an improvement over dmenu and similar :) It uses cache so imho it's much faster.</comment></comment>


Why Nobody Understands Your Visualization - <AUTHOR> http://petewarden.typepad.com/searchbrowser/2010/05/why-nobody-understands-your-visualization.html <comment><USER2> Back in 2003 I tried introducing many of these techniques to our customers to look at their data in new ways. No one, not even the phd's among them had a clue how to use the visualizations.

We investigated and found that very few people even understood our basic charts (time series etc). An even bigger issue is that ~ 1/100 customers had the ability to take the numbers from a chart and use the numbers to change the way they did things. In other words few people could understand the charts, and even fewer could understand the charts and convert that into actionable information. To reiterate, these were basic time series charts.

We ended up writing a system to interpret the charts for them in plain language (making action easy), and highly annotating the charts with colors and indicators so they became able to be interpreted without any cognitive load.

I've completely gone away from all of the advanced visualization tools given my experience, and before introducing them again I would need strong evidence that it's actually working for our customers.

</comment><comment><USER3> This reminds me of abstract reasoning questions from IQ tests. You know the kind of thing: you're often given the first three diagrams in a sequence, and you have to infer the logic behind the sequence and choose the correct fourth diagram from a multiple choice; or perhaps you need to find the odd one out.

But such questions are usually not really abstract at all; rather, they rely on learned cultural ontologies for classifying shapes and transformations, a language for describing circles, ovals, squares, rectangles, rotations through right angles, mirroring and symmetry. To my mind, these tests largely measure conformance to a cultural perspective on the world.

<comment><USER4> Phrased another way: IQ tests are for testing how well you do at IQ tests :)

</comment></comment><comment><USER5> Ultimately, a visualization is an attempt to communicate some pattern(s) in the data. Visualizations can suffer from the same issues as other forms of communication:

\- _inadequate information_. Readers can't draw conclusions from information you don't include. Commonly missing information: labels, scale, definitions, context for the data.

\- _information overload_. Readers can't figure out which specific conclusions you're trying to communicate if there are many possible conclusions. Highlight the things about the data that you want to bring out using words, colors, arrows, or visualizations of subsets of the data.

\- _muddled presentation_. A blurry graphic is as difficult to understand as writing filled with misspellings and poor grammar. A busy graphic is as difficult to understand as a long, babbling diatribe filled with unnecessarily complex vocabulary. An ambiguously labeled graphic is as difficult to understand as writing filled with ambiguous pronouns.

\- _inability to dig deeper_. Readers can't figure out if your conclusions are sound if they can't look at the details. Interactive visualizations (based on the complete data set) allow users to see how each bit of data fits into the overall picture, and to test your conclusions on subsets of the data. If all you present is a static graphic based on a restricted data set, it's harder to check if you've cherry-picked data.

\- _unfamiliarity with the language or conventions_. Someone unfamiliar with programming will have a hard time understanding certain HN posts, even if they're well written. Someone unfamiliar with bar graphs will have a hard time understanding a visualization based around them, even if it's a good visualization.

\- _boring subject matter_. You can make the greatest visualization in the world, but if the audience doesn't care enough to look at it long enough to understand, your point won't get communicated.

</comment><comment><USER6> The author misses a large point, and it sort of confounds his other arguments. While form and representation are absolutely important, so is context. People cared about his facebook visualization because the subject matter was of immediate interest to us, given the current news cycle. A visualization has to be part of a compelling story.

Not all visualizations are great, and not all well-made visualizations express a compelling narrative. And not all visualizations, regardless of how well- made and compelling, are right for a target audience. Relevance is different than form; let's not confuse them.

<comment><USER7> I agree with you that your underlying data has to be on something people care about. It's necessary but not sufficient, since the same visualization without labels and coloring sank without a trace when I released it a week before.

</comment></comment><comment><USER8> That car data plot is an example of a multidimensional parallel graph. Too bad he didn't go into more depth on this since he showcased this visual representation in his blog post. Some more info you get your feet wet is here: <http://filer.case.edu/~dbh10/eecs466/report.html>

Parallel graphs were a starting point on multidimensional al visualization. They are useful only to a certain point of complexity, then they are counterproductive as it takes more time to analyze the graphs than to view a number of simpler graphs side by side or in series. Newer techniques involve radial visualization, such as

[http://www.infovis- wiki.net/index.php?title=Radial_Hierarchi...](http://www.infovis- wiki.net/index.php?title=Radial_Hierarchical_Visualization)

Something to consider with your animations is the cognitive load of animations of complex visualizations. See the following paper:

<http://geoanalytics.net/GeoVisualAnalytics08/a15.pdf>

<comment><USER9> It's proper name is "Parallel Coordinates", popularized in the 90s.

Pro: \- Spacing saving. Cartesian space is expansive as the X/Y axis can quickly take up the entire 2D plane. Turning the axis parallel to each other saves a lot of space hence the possibility for multi-dimensionality.

Con: \- Messy. A normal dot in X/Y scatter plot is "stretched" into a line. So a lot of crossings/overlaps. \- Order of the axes matters

Interactivity can help reduce the visual complexity, through axes reordering, or highlighting (also called "brushing"). Also, after little bit training, people can easily develop the ability to recognize patterns in Parallel Coordinates, just think how you learned to read the regression lines in scatter plots : )

<comment><USER10> The actual plot in question is interactive. You can select regions on each axis.

</comment></comment></comment><comment><USER11> I've been on the lookout for a blog chronicling bad visualizations. Something like Regretsy for charts and infographics, but perhaps with more constructive critiques. Surely something like that must exist?

</comment><comment><USER9> there's a world to steal from the cartography and typography traditions, not only because these are already established "visual languages", but also their subtlety and respect to the viewer.

it is a shame that today's infograph designs are mostly going after 3D-rainbow-eye-candies, screaming too much of the designer him/herself.

</comment><comment><USER12> A great book to help you come up with the appropriate visual representation for what you're trying to say for your given audience is _Back of the Envelope_ by Dan Roam.

It ends with a somewhat unfortunately chosen example, but the actual advice is quite good.

</comment><comment><USER13> I love that automobile visualization featured at the top, because it seems so promising, only to become increasingly disappointing as you try harder and harder to make sense of it. The low performance only makes matters worse.

<comment><USER14> The biggest problem is it's best read right to left.

<comment><USER15> There's also an odd reversal near the middle; number of cylinders is roughly correlated w/ displacement, which is roughly correlated w/ weight, which is roughly correlated w/ horsepower, which is roughly... oops, inversely correlated w/ 0-60 acceleration time. Hence the lines looking like they got twisted in a bunch between the horsepower axis and the acceleration axis.

I think interaction is a very under-utilized aspect of visualization; if that car visualization hadn't had such abysmal performance, being able to play with it might have been very informative. I think interaction is more powerful than time (but probably harder to design effectively).

As it was, I noticed several interesting new (to me) points:

\- Quantization of number of cylinders is obvious, but I didn't expect displacement turn out to be so quantized

\- The highest acceleration cars didn't have the worst fuel efficiency

\- The oldest cars (1970) appeared to include the ones with the worst fuel efficiency.

I've been trying to figure out a better way of laying out the weight/horsepower/acceleration axes, given that weight*acceleration=horsepower (with the addition of some noise due to different measurement techniques, etc.)

<comment><USER14> Well you're gonna have that twist anyway, unless you flip a couple columns. I sort of prefer having it in the middle. But then i didn't really mind the visualization so maybe I'm the wrong person to ask.

</comment></comment></comment></comment><comment><USER16> So far it seems that every state I click on has "Megan Fox" in the interests list. I wonder if he cherry-picked his data. :P

<comment><USER5> She apparently _is_ that popular, at least on Facebook. She has about 6.7 million likes.

For comparison, the Bible is at 2.2 million, Kobe Bryant is at 2.4 million, Starbucks is at 7.2 million, and Obama is at 8.4 million.

<comment><USER16> According to the Facebook statistics page [0], there are over 400 million users on the site. The same page states that about 70% of those users are from outside the US. That suggests that 30% of Facebook users (about 120 million) reside in the US. Let's assume that the entirety of her fan base is within the US. That means her fans only represent (at the _most_) approximately 5.59% of US Facebook users. I wish I had data per state so I could pin this down more thoroughly (wrt to ratios of Megan Fox fans to state populations), but going on just what I have seen so far I am admittedly suspicious of the gentleman's data.

[0] <http://www.facebook.com/press/info.php?statistics>

<comment><USER7> The gentleman himself here!

You're right to be suspicious, there is a bias towards the more popular pages, since they show up more frequently on people's crawlable public profile pages. Only 20 liked pages are shown for each person, and FB apparently pick the most popular.

</comment></comment></comment></comment><comment><USER17> This can be summed up as being because "you want to make infographics only because they're trendy, but have no idea what your're trying to say, or why, or how to say it effectively."

Fixing labels, simplicity, interactivity, animation, etc., won't solve the problem with the whole conception being wrong, useless, or boring.</comment>


How stereotypical enviroments impact gender participation in CS (2010) - <AUTHOR> http://jonathanherzog.com/node/129 <comment><AUTHOR> Google also mentions this study in one of their re:Work guides - [https://rework.withgoogle.com/guides/unbiasing-evaluate- subt...](https://rework.withgoogle.com/guides/unbiasing-evaluate-subtle- messages/steps/introduction/)

</comment><comment><AUTHOR> Full PDF of the study: [http://depts.washington.edu/sibl/Publications/Cheryan,%20Pla...](http://depts.washington.edu/sibl/Publications/Cheryan,%20Plaut,%20Davies,%20&%20Steele%20%282009%29.pdf)</comment>


How do McDonald's debit card payments get processed in under a second in Italy? - <AUTHOR>

Hello fellow HN readers, I have a question that has been puzzling me for a long time now.
When you pay with Debit Card at a McDonald's in Italy, your payment get "processed" in under a second. By "processed" I mean that, after you have confirmed your PIN code, you receive confirmation and you are prompted to retrieve your card in under a second.
How does McDonald's do that? I haven't seen any other retail store or merchant that can achieve the same result, all the others take a lot more than 1 second (and in some cases more than a minute).
Does anyone have good reading recommendation to learn more about bank transfer protocols or systems?
Thank you all for your inputs!
Marco <comment><USER2> Hi Marco, I own a credit card company/bank/gateway and I can answer that:

They are using a small protocol (XML or plain ISO8583) over a somewhat fast connection (X.25, GPRS, 3G or the store's internet - ADSL, etc). Connections are always kept alive for a certain amount of time.

The bank side of processing is very simple and shouldn't take long. Keep in mind that the data used to authorize a transaction is minimal. After the authorization is given, the bank will process the actual payment, which is a two-step job with the first step being executed minutes after the purchase and the second one usually at night.

I wouldn't recommend you digging too much into banking standards without a specific purpose. There are just so many and almost no one strictly follows them. This is a good start: [http://www.aba.com/Pages/default.aspx](http://www.aba.com/Pages/default.aspx) and [https://www.pcisecuritystandards.org/](https://www.pcisecuritystandards.org/)

<comment><AUTHOR> Thank you very much Eduardo! You are the first that gives me a possible technical explanation.

McDonald's are in most cases wired with ADSL or faster connection, since they serve free wifi in the store. I would guess they use the same connection for the POS.

My two guesses were:

1) Fast connection with fast standard and maybe custom software to keep the channel open. 2) Pre-authorization, given the small sums paid and the low probability of frauds.

I do also think that McDonald's might have a specific agreement with a gateway or a bank. They use Ingenico's POS, so I ruled out custom hardware.

I will update the thread if I find anything interesting! Thank you again!

Marco

</comment></comment><comment><USER3> This is just an un-researched hunch, but I believe that for the small average sums transacted at McDonalds, the merchant (or the bank) takes on the fraud risk. Thus, they instantly approve your transaction, as long as the number of fraudulent transactions never overshadow the convenience of instant payment and short queues. That's why they don't ask for a signature under $20 in some places.

<comment><AUTHOR> This was one of my hunches...

</comment></comment><comment><USER4> I'm not sure about McDonald's Italy system, but one that's frequently used in places with low/expensive cellular signal, and/or a big number of small transactions, used deferred debit.

Basically, it consists of updating the system every certain period of time, with the list of the revoked numbers, and assuming that the rest are cleared by default. Then, every time the process runs, it submits the transactions while obtaining the revocation list.

This makes every transaction as fast as a look up on a local database table, and it is for example how it works at certain toll booths in Spain.

</comment><comment><USER5> In Australia we have a system called EFTPOS that does that nationally. It's the default way to pay with a card.

[http://en.wikipedia.org/wiki/EFTPOS](http://en.wikipedia.org/wiki/EFTPOS)

<comment><AUTHOR> Very interesting! Thank you for the reference.

</comment></comment><comment><USER6> it's not about mcdonalds, it's about the banking system. this also applies to turkey as well. every payment we make by our credit cards or debit cards are processed right in that moment. nobody waits for the night, nobody wonders if there's any more amount will be charged for anything. you see the amount, enter your pin, bank transfers money from your account to merchant's account and it's done.

<comment><AUTHOR> This is completely true, the point of my question was how fast this is done at McDonald's. Almost every merchant that accepts debit card payments in Italy has very long wait times for authorization (>10 sec), while McDonald's are instantaneous (<1 sec).</comment></comment>


Confronting anti-Asian discrimination during the coronavirus crisis - <AUTHOR> https://www.newyorker.com/culture/culture-desk/confronting-anti-asian-discrimination-during-the-coronavirus-crisis <comment><USER2> I think you'll see discrimination against any national whose country is having big trouble with the virus. Like Italians and Italy.</comment>


Richard Stallman talks online freedom in The Guardian - <AUTHOR> http://www.guardian.co.uk/commentisfree/2010/dec/17/anonymous-wikileaks-protest-amazon-mastercard <comment><USER2> RMS provides a misleading definition of the term DDoS as he's adopted the view of the use of LOIC as part of the right to protest. In his eyes the groups aren't conducting a DDoS because they're simply protesting and they're consenting to use the tool.

Try telling that to Amazon. Wikileaks aside, if that happened to your site would you accept that this isn't a DDoS and is just the work of some people exercising their right to protest? Of course not.

The source of a DDoS is mostly irrelevant (beyond being distributed), it's the impact that matters, the success in the denial of service to others. The people that are using LOIC aren't protesting. They're (for the most part and certainly in the UK where the Guardian is based) committing a crime.

<comment><USER3> You are not making an argument against his main point. Why is this different then a street protest in front of a store?

The reasons, he's saying, that it shouldn't be illegal is because it requires the consent of many individuals to work. If many individuals decide that they have a reason to disrupt a service, then they probably do. If you argue against this logic, then do you also argue against right to assemble? If not, then what is the difference in your view?

<comment><USER4> A big difference is that when you protest in the streets, you take up one person's worth of space. So you need a lot of people to make an effective street protest.

But when you have your computer support a DDoS, it's generating, say, a thousand times more traffic than you would if you were normally visiting that site. And you don't even have to do anything once you start it. I would argue that if you organized 10 million people to repeatedly refresh their page on a site, that would be ok. They're doing the same thing that people who genuinely want to visit the site do (opening the site in a browser). It would take a ton of people to be effective, and it requires recurring effort.

But when you use the leverage that computers give to make it take orders of magnitude fewer people and no recurring work, it's too easy for a small group to be disruptive. If a few thousand KKK members used Anonymous's technology to DDoS the NAACP website, would you be ok with that?

</comment></comment></comment><comment><AUTHOR> "The Ministry of Truth has been privatised."</comment>


Cracking the Brain's Codes - <AUTHOR> http://www.technologyreview.com/featuredstory/528131/cracking-the-brains-codes/ <comment><USER2> There is probably not going to be any singular common code for all brains, this is pattern recognition in a fatty sponge that grew from a single cell. There will be families of similar neural networks in roughly the same locations according to where the input/outputs are. My best intuition is for some people who have "savant"-like powers are they were fortunate to grow exceptionally useful networks for their needs.

If you're a bio-hacker with a penchant for hardware upgrades, I think that you don't need to wait for anyone to discover "the encoding" to install an interface to your mind. Just do it, and like everything else in your brain, you'll spend a few weeks training your mind to use the new sense and digital motor skills. Bio-feedback technology is already here.

<comment><USER3> I pretty much agree with this sentiment. They point out that information seems to directly correlate with synaptic structures, so if that's true then it's pretty doubtful that we'd be able to come up with a codified syntax for the definition of memories, and then readily implement the syntax upon a living creatire in a healthy (and cost-effective/legal) way, at least insofar as directly enforcing synaptic structures known to provoke the recall of memories.

Meanwhile, preparing experiments for creatures not yet alive is an altogether different game. Growing a structure, by controlling chemical pathways, or physically restricting the movement of neurons trained or genetically modified to fire according to pre-defined external stimuli seems to be what the article is driving at. But what good will that do me, if I'm already alive? Maybe a tiny lobotomy for me, and then drop in a blob vat grown cells, that brain slug their way into place? Would I still be me after that?

<comment><USER2> That would be a pretty macabre experiment. But I would guess that you would still be you, but with the after effects of a stroke. The larger the volume of the cut, the larger the damage. That would be the a form of brain transfusion ---an installation of living blank media. I am unsure of how you would mentally direct the brain to use the new resource.

<comment><USER3> Well, ideally, the "new resource" is also genetically matched living brain, and given the plasticity of brain tissue, and maybe by way of a novel as-yet- uninvented means of coaxing, the two would mutually recognize the severed gap between the two pieces, and heal back together. I mean I'm not a brain surgeon, so I'm operating with possibly a great deal of very wrong assumptions about how the brain recovers and heals from lacerations.

Would it be like trying to mend a spinal cord injury, which we still haven't quite mastered? Or since it would be surgery, would the brain take to it like rejoined pieces of healthy brain tissue, after the removal of a malignant tumor? I suppose a lot of that would depend on the quality of the custom grown tissue, and the technique of the operation.

Either way, nerve cells are essentially highly specialized finicky amoeba, with dendrites acting as elaborately decorated pseudopods. They don't quite "swim" like white blood cells, but sort of creep along, and test each other out, delicately and selectively. And apparantly human cells can specialize to the point where a single cell can recognize key concepts of individualized external human identities (the article mentions Jennifer Aniston and Luke Skywalker).

So, in the sense that dendrites are pseudopods, and pseudopods are, along their external surface, celluar membranes (lipid bi-layers, decorated with embedded proteins), the proteins are the specialized structures that ultimately drive the behavior of the cell to direct it's psuedopods this way or that way. It's a mixture of chemical reactions all the way down, even if there is a layer of very fundamental electrical processes mixed in, due to the deliberately maintained PH value, and shifting electrolytic potential of the chemicals involved.

There was an article describing brain behavior as analogous to a swarm of ants. This makes sense, since ant communities guide their collective behavior by tagging their territories with scent, which gets reinforced with increased ants marching along pathways. So, at the end of the day, some kind of transplant process would probably require an arm of research tackling the micro-scale and nano-scale structures and living behavior of the tissue, but also the chemical aspects of how neurons sniff each other out, and decide to stimulate each other through the electric polarity fluctuations of their electrolyte juices.

</comment></comment></comment></comment><comment><USER4> Starts with the assumption that brain / brain activity = conscious self.

I am not aware of any evidence that this is the case. (That is not to say that I think the two are unrelated, I just think this assumption ought to be challenged, rather than taken for granted).

<comment><USER5> >Starts with the assumption that brain / brain activity = conscious self.

It's not assumption that there is nothing more to the mind than the material brain. This is based on very strong empirical evidence.

We have about 100 years worth of Neuroscience.

We also have fundamental physics and laws of chemistry. There is no reason or evidence to believe that something magical is happening in the brain, or that somehow particles which behave according to the laws of physics outside of the brain, somehow don't, when part of the brain. We have a very good understanding of all the fundamental forces that govern the physics of our everyday experience.

> I just think this assumption ought to be challenged, rather than taken for > granted

Challenge it then. What is your reason to believe the laws of physics are broken in the brain or that the mind is more than the material brain? Is there even one shred of evidence for that?

<comment><USER6> I would just add that the mind probably is partially an outgrowth of the entire connected body system rather than just the brain in isolation. The feedbacks between the hormonal system, parasympathetic/sympathetic nervous system, and various other influences in the body have definite effects on the function of the mind, assuming that mind encompasses behavior.

There's a fascinating course on this topic available from The Great Courses:

[http://www.thegreatcourses.com/tgc/courses/course_detail.asp...](http://www.thegreatcourses.com/tgc/courses/course_detail.aspx?cid=1597)

<comment><USER5> That's an interesting theory. I could see how that could, in principle, be true. There's no reason why the neurons that make up our nervous system wouldn't play a part in creating the mind.

<comment><USER6> This came up today and reminded me of this thread so I thought I'd post it here: [https://news.ycombinator.com/item?id=7957057](https://news.ycombinator.com/item?id=7957057)

</comment></comment></comment></comment></comment><comment><USER7> If you wan't a good intuitive understanding of the neocortex then I seriously suggest reading up on Sparse Distributed Representations. A theory refined by Gerard Rinkus and Jeff Hawkins.

<comment><USER2> Is this akin to Kurzweil's [Pattern Recognition Theory of Mind][0] that estimates about 300 million pattern recognizers in the brain?

[0]: [https://en.wikipedia.org/wiki/How_to_Create_a_Mind#Pattern_R...](https://en.wikipedia.org/wiki/How_to_Create_a_Mind#Pattern_Recognition_Theory_of_Mind)

<comment><USER7> Honestly, for me at least, the ideas that Kurzweil puts forwards are repetitive of the same things Hawkins discusses in his book [On Intelligence][0]. Sparse Distributed Representations are a newer idea that Kurzweil hasn't yet discussed. Actually there was a Google Talk that Hawkins gave about Sparse Distributed Representations and Kurzweil was present.

[0]: [http://en.wikipedia.org/wiki/On_Intelligence](http://en.wikipedia.org/wiki/On_Intelligence)

<comment><USER2> For anyone else following along there is the [Sparse Distributed Representations][0] write-up at Numenta's GitHub.

[0]: [https://github.com/numenta/nupic/wiki/Sparse-Distributed- Rep...](https://github.com/numenta/nupic/wiki/Sparse-Distributed- Representations)

</comment></comment></comment></comment><comment><USER8> I liked this article after reading it. Before I read it, I thought it would be yet another _Technology Review_ article by a staff writer, a superficial look at unreplicated research, but I find as I reach the end of the article that the two co-authors are both leading researchers on the topic and the second co-author is Gary Marcus, a psychology professor who is a diligent author of popular books about psychology to explain the latest findings from neuroscience-based psychology to the public. This is worth a read. It's not the last word on the subject, as the title alone should make clear, but it's a good introduction to the current research program and the complications it is discovering as scientists seek to develop a deeper understanding of the function of the human brain.

</comment><comment><USER9> > _What matters most is not precisely when a particular neuron spikes but how > often it does; the rate of firing is the main currency._

I'm not too sure about that.

My gut feeling is that at least half of the information in the brain is encoded in the exact timing of the spikes. In a model that takes time into account, certain neurons function as a "coincidence detector" sensitive to certain events.

e.g. your brain deduces which direction a sound is coming from by analyzing the delay difference for the sound input from each ear to arrive to the brain. Specifically, sound-orientation detector neurons read from neurons of different lengths to each ear. You know the sound is coming from front-and- left if the coincidence-detector neuron that has a short lead to the left ear and a long lead to the right ear fires.

<comment><USER10> There are clear examples where spike timing matters a great deal and the Jeffres model of sound localization, as you point out, is a great example of this. However, spike timing codes seem to be more prevalent in the periphery; rate codes dominate in central structures, and in particular the cortex.

The receptors of sensory afferents faithfully report the timing of individual events (of photons, pinpricks of the skin, etc) with single spikes. But after a few synapses the pattern of spikes looks much more like a (noisy) rate code. The origin of the noise, whether it even _is_ noise, how the temporal code is transformed into a rate code, and many other questions along these lines are active research topics.

All that aside, Koch is well aware that there is evidence for both rate and temporal codes. As he wrote, "spikes mean different things in different contexts."</comment></comment>


You don't want many options - <AUTHOR> http://tonsky.me/blog/options/ <comment><USER2> I find the criticism of cprop a bit bizarre. Configurations of apps have many use cases. Some people package config files with the app on the classpath others use fs. Some do a combination of the two. Others use environment variables. Any practical configuration lib should be able to handle these use cases if the need arises.

The fact that the author finds it odd that cprop parses edn and calls it "type coercion" like it's a negative is strange. What would the author prefer? max- connections-num to be a string? If you want strings put quotes around the values.

> This is backpressure: your home-grown configuration system resists being > extended, and it's a good thing.

Or there's the real world where you need to address a business concern to get things working where someone asks a reasonable request to be able to override a setting with an environment variable. Luckily your configuration library already handles this and you can go back to doing interesting work instead of bikeshedding your home-grown system that resists change.

</comment><comment><USER3> "See, if you don't buy a good mattress, you will resist the temptation to oversleep. Win !"</comment>


Why the iPad isn't for me - <AUTHOR> http://www.macworld.com/article/150474/2010/04/ipad_not_for_everyone.html?t=

<comment><USER2> Neither is it for me. I'm sending mine back. Things I don't like: (a) Eye strain, (b)It doesn't provide enough utility for me to justify another device in my life, and I don't want another media consumption device. In short, it's another toy. (c) An awkward device angle when touch-typing and trying to read what I'm typing.

<comment><USER3> That the iPad is consistently classified as a media consumption device seems an attempt to trivialize its significance by people who consider themselves power users. I agree that currently the use cases of most applications fall into this category, that it is expensive and I doubt you will ever do application development on a device of its form factor, but it is clearly not just a media consumption device. A few example applications are the two very nice musical instruments the Korg iElectribe [http://www.korg.co.uk/products/software_controllers/iPad_iEl...](http://www.korg.co.uk/products/software_controllers/iPad_iElectribe/sc_ipad_ielectribe.php), which sells for $10 while its HW equivqlent is around $450, and the MiniSynth Pro <http://www.yonac.com/> a fully functional FM synthesizer. Neither of these applications would have been possible prior to the iPad. Others are the drawing applications Brushes <http://itunes.apple.com/us/app/id363590649?mt=8> and SketchBook Pro [http://itunes.apple.com/us/app/sketchbook- pro/id364253478?mt...](http://itunes.apple.com/us/app/sketchbook- pro/id364253478?mt=8). I also like the touch and hand drawing interface to OmniGraffle a diagramming application <http://itunes.apple.com/us/app/omnigraffle/id363225984?mt=8>.

I think the majority of creative or power user applications will be for those with a complex control surface, such as the examples above. The large touch interface of the iPad is much simpler to use than a traditional mouse keyboard. Also when compared to Wacom drawing tablets [http://www.google.com/products/catalog?hl=en&rlz=1G1GGLQ...](http://www.google.com/products/catalog?hl=en&rlz=1G1GGLQ_ENUS240&q=wacom+tablet&um=1&ie=UTF-8&cid=1545184928933896623&ei=o5nES4G3EsL78Aax6bCtDw&sa=X&oi=product_catalog_result&ct=result&resnum=6&ved=0CDIQ8wIwBQ#ps- sellers) it is competitive, at the iPad low end the iPad is about $200 more, though not quite as functional, the iPad does not have pressure or stylus tilt sensitivity but it is portable. If you are interested in developing these types of applications you have to have one. If you do not have one you will never see were the deficiencies are or know which problems to solve. The device as only been available for 10 days. I would expect it will take a year or two before the application space has been adequately sampled.

Another obvious short coming, or opportunity, is with file synchronization and management. I am currently using dropbox, <https://www.dropbox.com/> with ReaddleDocs <http://readdle.com/products/readdledocs>, which works for reading. If documents are generated on the IPad you have to use iTunes, eMail or an application specific server for document synchronization. Neither of these is adequate.

The typing problem you mentioned can be solved by a case that holds it an an angle, such as <http://www.goincase.com/products/detail/CL57512>. The number of viewing and use positions for the device is greater than that for a laptop. Also heavy duty typing can be handled with a bluetooth attached keyboard though for my needs the the onscreen keyboard has been adequate.

<comment><USER4> I would caution against using the music creation applications as good examples of iPad applications. Firstly, musicians rarely skim on their gear, if an iPad and a $10 App will do the same job as a bit of hardware costing twice the price more than half of them will buy the hardware. I've not used a synth very much but I doubt a touch screen provides an adequate replacement for the musical keyboard, nevermind the more natural feel of real buttons and knobs. Finally, any reasonably serious musician will buy a sound card priced in the hundreds of dollars, they will not be happy with a 3 1/4 inch analog output from one of their primary tools.

<comment><USER5> _any reasonably serious musician_

Snobbish bullshit like this is a bigger threat to creativity than anything the iPad does or doesn't do.

<comment><USER6> Haven't spent much time around musicians, have you? Any reasonably serious musician will have a no compromises, no excuses approach to sound quality, and that includes paying top dollar for the absolute highest quality gear you can get. Thousands -- or even tens of thousands -- of dollars is not an uncommon asking price for a single piece of kit, like a speaker or a mixing desk (knobs only; no GUI bullshit; mixing is about listening and feeling, not pointing and clicking). If it's top quality then there will be musicians and sound engineers clamoring to pay. You may pay twice the price for a 1% increase in sound quality, but a serious musician can hear that 1%, and it will drive him nuts. You may think it's snobbish, but that's reality in the pro music world.

<comment><USER5> You don't understand. I'm not saying that musicians don't care about sound quality. What I am saying is that judging _seriousness_ by the price of your gear is a giant pile of bullshit.

More specifically, I'm saying I think doing so is a part of what keeps people out of making music--the idea that you have to be "serious" about it by spending a lot of money on recording gear or it somehow doesn't count. Far too often it's just the opposite: people just blow money on the gear because buying things is fun and they tell themselves they need it to make better music. And hey, maybe people will end up buying some iPads for that stupid reason, too. The point is that the cost of the gear and "seriousness" are not so directly related. I don't mean there is never a relation, only that you can't really draw this kind of generalized meritocratic conclusion about the art and artist from something so independent of their actual merit as the tools they use.

 _You may think it's snobbish, but that's reality in the pro music world._

Again, I wasn't saying that desiring the best sound quality is snobbish. What I think is snobbish is assuming that only professional musicians are serious, or that someone who involves an iPad in their musical process is somehow inherently less serious than one who doesn't.

</comment></comment></comment></comment></comment></comment><comment><USER7> With respect of iPads for moms and grandparents, I am also a bit doubtful. Since a lot of web sites probably don't work as expected (ie no Flash, among other things), wouldn't that be confusing to the noobs? I am waiting for the first review from an iPad-Mommy.

<comment><USER8> My wife is dubious. She doesn't like the lack of Flash. She doesn't like trying to type on the software keyboard.

Her parents, definite technophobes, were intimidated by it. The first thing they wanted to look at was a slideshow on smugmug.com, some pictures of their granddaughter. Also Flash. They looked at me incredulously as I explained to them that you couldn't view the slideshow on the iPad. They tried to use the navigation on the website, but the navigation links were small and adjacent to the shopping cart link. At the height of their frustration, I pulled out my MBP so they could watch the slideshow on it. The thought of explaining to them how to set up their iPad to sync photos gives me chills.

OTOH, my 3-year-old LOVES it. She can use a mouse and a trackpad, but she has to concentrate and make deliberate movements. On the iPad, she flies. She can get to her favorite apps and watch her videos in a flash. There are lots of downsides to having this device in a toddler's hands, and I'd never let her use it unsupervised, but that's an aside from the usability issue.

<comment><USER7> Funny you mention your 3-year-old. I have been thinking exactly that, that there might be a way to create fun apps for babies and kids.

I am firmly against wooden toys and want to give my kid a computer asap (OK, nothing against wooden toys, but you get the idea).

So I wondered if the iPad is durable enough for a kid. Ultimately I expect cheaper variants to appear, with special kids durability (of course not from Apple, but maybe Android or sth like that).

Would be interested in hearing more stories about kids on pads.

<comment><USER9> As is, $500 for a 3-year old's toy seems a little crazy. By her a leap-frog instead? But cheaper, more durable options would make a lot of sense.

<comment><USER8> My kid has a leapfrog, but that doesn't curb her curiosity about other devices.

I don't know how it is with others, but my kid is fascinated with all my computers. My netbook, my MBP, my Droid, my Touch, and now my iPad. I don't discourage her curiosity. We had a VIC-20 when I was a kid and later a Commodore 64, and that's probably the reason I love programming to this day.

What she wants most of all is for her parents to sit with her as she discovers. The iPad is _really_ good for that - the best computer I own for that use case, I think. I can't stand the Leapfrog for long, but watching her with the iPad is fun. It helps that I have the chops to build little apps to distribute on my own devices.

<comment><USER9> I don't have kids, but I'd feel exactly the same about letting her explore and try out things.

What I was saying was that if it was a disappointment for you, but your 3 year old loved it, it's probably not worth keeping. Child curiosity can be appeased for less than $500.

Now if you loved it as well, it's a different story.

<comment><USER10> > Child curiosity can be appeased for less than $50

Definitely. My daughter loves play-acting with her toys (most of which are just cheap plastic things from Toys R Us). Pencils and crayons with reams of paper last for quite some time. Blocks, balls, and mini versions of adult things (e.g., toy phones, kitchen appliances) that let them play pretend, are all great hits.

In my experience, the specific toys (i.e., the ones that have clearly defined "play" scenarios) are the ones that get great attention for an hour, and then are left at the back of the closet until we get rid of them.

Computer software is similar - my son loves any building/open world type game (simcity, bridge builder, the sims, harvest moon), but usually loses interest at games that have very specific goals (most platform type games, although mario and the lego games seem to be exceptions).

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> I think it's a wedge device. It will not be an overnight sensation. More so, the first viable larger format touch experience in the beginning of a steady and gradual increase in this kind of UI playing a major role in how we interact with information and media. Apple has planted roots creating enough momentum for the space to begin growth in earnest. We'll see steady improvements to the iPad, new competing tablets, touch screen desktops, and so on. It's started...the iPad is simply a tipping point. Not a singular revolution in itself.

</comment><comment><USER12> > _Just think about it on an airplane. I could load it up with movies and > watch for an entire flight, thanks to the iPad's excellent battery life. Of > course, because of the lousy keyboard I can't use it in place of a laptop, > so I would have to carry the iPad and my MacBook. How is it that, for years, > I've pined for a lighter laptop, and now I'm considering carrying an extra > pound-and-a-half just to watch videos on an airplane?_

Or, don't. The iPad goes with you into the seat. Apple's wireless bluetooth keyboard goes in your carry-on, and stays there until the hotel room desk where you might actually do some typing. The rest of your business trip, the iPad lets you reference things, make minor edits, show Keynote on a VGA projector, and keep up with email and news.

(And for printing at the client's location, you do the same thing with your iPad you do with your "real" laptop: email the client the file for them to print because their IT won't let your laptop see their printer queue.)

<comment><USER13> Good point. Also, the iPad + charger + Bluetooth keyboard is only 2.1 pounds. I challenge you to fit 10 hours of mobile productivity in a smaller footprint.

For anyone that travels a lot and writes, the iPad is a godsend. Please see [http://www.dailykos.com/storyonly/2010/4/11/856114/-My- iPad-...](http://www.dailykos.com/storyonly/2010/4/11/856114/-My-iPad-as-a- tool)

<comment><USER14> Apple just solved the battery issue in their laptops: <http://www.apple.com/macbookpro/specs-13inch.html> A less disjointed setup (you don't have to worry about the laptop display falling over like the iPad might if bumped) and a more powerful system. It's 4.5 lbs, but that's still pretty damn light if you ask me.

Price is a big differentiator though. It's hard to compete with $500 + whatever the keyboard costs.

</comment></comment></comment><comment><USER15> My main problem with the iPad is the weight. At 1.5 pounds it is incredibly light, yet at the same time becomes heavy quickly. Unless you are resting it on a table or on your body it gets heavy faster than you'd expect. My top use scenario, reading in bed, is just not comfortable with it. Mine already went back. I think we have about 3-5 more years before tablets are ready for me.

</comment><comment><USER16> > _Download an audio file of Ben Long doing a dramatic reading of this article > (MP4, 10 MB)._

Nice touch. I'd also like to hear it in Shatner.

</comment><comment><USER17> An entertaining read, and for once a strong opinion is combined with some thoughtful explanation as to why the author's circumstances may differ from the reader's.

</comment><comment><USER18> The audio file linked in the article is brilliant. If you have 10 minutes, I'd suggest listening to it instead of reading the article.

<comment><USER19> Seconded. Extremely entertaining, I was not expecting that.

</comment></comment><comment><USER20> I think the most important thing I've gathered from this article among others is that the iPad can do a lot for you and can do it pretty well, but possibly not exactly as you would like it. I think it has one the best sleek form factor to performance ratios out there, with style and ease of use to boot. So it really can't help but produce entertaining and useful software for people (with developer support). Power users who already have multiple desktops/laptops may struggle to justify their purchase, but in a large household I don't think people will be questioning the irony of the device when they're too busy using it.

</comment><comment><USER21> Am I the only one who found, when set at an angle using the apple case, that I can type at about 80% of my regular typing speed?

<comment><USER22> Same, and when I hooked up a bluetooth keyboard for the first time and propped it up like a regular screen I type at 100% speed. The Apple bluetooth keyboard and this thing are almost the same size, so on trips I'll be able to answer long emails, write blog posts, and maybe even reply to HN with ease!

It's all about expectations with the iPad. It's not going to be a pure laptop replacement if you do any "serious" work (don't even think about web dev for example, although it would be awesome if Panic released Coda for the iPad), but for about 80% of what I do (especially when traveling) it's absolutely perfect. Combine that with home use, coffee shops, and instant child entertainment and you have a device worthy of your $500.

If it doesn't fit into your life, don't get it! I still don't understand the point of the reviews where they try to do EVERYTHING possible on the iPad. It's clearly not meant for that, stop treating it like it is.

<comment><USER23> "It's all about expectations with the iPad."

My thoughts exactly. Purely as a reading device, it will be fantastic for scientific papers which are usually in hard formatted PDFs. Reflowing them for a small e-ink device sucks and makes them hard to read. Having color is a huge bonus (10 shades of grey in a color coded graph is a royal pain). The iPad + the GoodReader app will let you take hundreds of papers and technical books with you. The fact that it has a pretty good web browser and email app with WiFi is an awesome bonus.

<comment><USER24> Agreed. If you come in expecting an all-singing, all-dancing desktop/laptop/server replacement you'll be disappointed.

If you want a device to read PDFs, play some games, and browse the web it's fantastic.

iPad + GoodReader + 10 hour battery life is bliss.

</comment></comment></comment></comment><comment><USER25> Here's a prototype of my iPad killer! <http://twitpic.com/1fb2ox>

<comment><USER26> The only thing I'd suggest is getting rid of the XP chrome.

</comment></comment><comment><USER27> _" I'm comfortable using a computer, and I don't tend to surf the Web as a form of entertainment"_

This is going to be the biggest factor to determine if a tablet is right for you. I'm comfortable enough at my desk using my computer but I can only take so much of it. Most of my web browsing outside of work is entertainment or at least long form reading. Both areas I think the iPad excels at. I could use a laptop on my couch or in bed but I find that a bit awkward but, most importantly, the iPad blows it away on battery life and screen quality -- and for entertainment purposes it's just easier to do most stuff.

</comment><comment><USER28> I agree with the sentiments echoed in this article. For me, tablets, although useful, are not the revolutionary devices they are made out to be. As I see it they are not the gateway for new types of applications, anything you can do on a tablet, you can do on laptop (personally I like the idea of a laptop with a detachable screen).

I wholly agree with the comments about Kindle too. I can see the benefit in having a Kindle, it offers a relaxing and focussed environment on which to catch up on the one thing I never have enough time - or am to distracted by web/mail/chat - to do, and that is READ.

</comment><comment><USER29> Apple should have forgotten about the iPad and focused on Apple TV. Selling an Internet box with a Boxee like interface and all the content from the studios we seek. Sell various subscriptions. That would be revolutionary and yet will take a years to get there due to the studios getting huge wads of their revenue via cable TV. Who the majority of us hate our cable company and long for substitute like the Apple TV mentioned here.

<comment><USER30> That would be competing with xbox360 and ps3, which do everything that the apple TV is doing and much much more.

I don't think it likely Apple will pay any attention to the AppleTV platform, its a dud.

</comment></comment><comment><USER31> _This is a media consumption device. I'm trying too hard to create things on it_

This is the bit that scares me.

<comment><USER32> Why?

Clearly it should inform your purchase decision, but why should it be _scary_?

No one device is for all people to do all things. So why should a particular weakness inherent in this form-factor be _scary_?

<comment><USER31> It doesn't scare me as a _user_ \- it scares me that yet another device encouraging passive consumerism may become immensely popular. It's sad to become used to hearing "I can't cook/sing/draw/dance/code/whatever" - I would rather live in a world where everyone is a producer of some sort, in a way that content and culture are not monopolised by Big Industry.

Maybe 'scary' was a bit strong - I'm not exactly trembling under my bed ... yet.

<comment><USER32> Even creators must consume most forms of Art. Musicians watch movies; woodcarvers leaf through photo-journals, dancers rarely compose their own music.

Ergo, the machine that a hundred creators are most likely to have in common, is one that consumes well. It seems the only thing we should logically _expect_ is consumption and popularity to go hand in hand.

But what exactly about the iPad acts as a break on creation?

It isn't suited to composing and editing large blocks of text out-of-the-box; but only a couple forms of Art require that.

Notably, the iPad is an arguably better machine for the creation of every art you explicitly called out, save coding.

Does a cook need a keyboard and mouse in the kitchen? Seems a quick-reference that can sit in a recipe-book-holder and doesn't require putting down the butcher knife would be welcome.

Wouldn't a dancer be better off with a machine that is easily picked up, put down, carried through a routine at half-speed and can naturally scrub through an instructional video? (My wife has already used my iPad to do exactly this.)

Wouldn't a singer suitably benefit from an iPad on a music stand, showing instant pitch-feedback (via its microphone) and live-scrolling note chart?

And clearly drawing is more-easily done on a tablet than with a mouse.

As a big fan of creation, I'm downright _excited_ that such a device has come to market that gets more cruft out of the way and brings computing to the natural habitats of other artists.

That only developers with serious tools can code for it, and only at Apple's pleasure certainly isn't ideal. But that isn't so huge a roadblock and the up- side is that we're enabling all these other arts.

</comment></comment></comment></comment><comment><USER33> From the beginning, I knew this device won't go so far. I'm more optimistic with the new HP slate.

When I get a device bundled with Windows 7, with the ability to run any windows application and not only Flash, it's just like tele-porting my computer to this little device.

The iPad OS is a phone OS, whatever powerful it is, it'll be always way behind any desktop OS.

Point 2 is multi-tasking. And about iPhone OS 4.0 multi-tasking, it just made me laugh, it just proved me Apple failed to support real multi-tasking.

<comment><USER34> One guy writes that iPad is not for him and that means that "this device won't go so far"? Selling 300 000 of these on the first day means nothing I guess.

      The iPad OS is a phone OS, whatever powerful it is,
      it'll be always way behind any desktop OS.

A car, whatever poferful it is, it'll be always way behind any train. So?

      And about iPhone OS 4.0 multi-tasking, it just made
      me laugh, it just proved me Apple failed to support
      real multi-tasking.

You laugh, users don't care. Will they be able listen Pandora in the background? Sure they will. Will they receive skype calls, even when Skype is not in front? Sure they will. Will navigation software run in background, even you switch to other app? Yes it will.

Meanwhile enjoy your well thought multitouch suppor of Windows 7 on HP slate and the battery life with real multitasking.

<comment><USER35> > _Selling 300 000 of these on the first day means nothing I guess._

So you can guarantee me that the iPad will _without any doubt whatsoever_ 'take off' _solely_ based on the fact that they sold a ton of product on the first day?

It is by no means a guarantee of anything. It's possibly indicative of a trend, but first day sales shouldn't mean anything other than how successful the product was marketed. How well the product takes off after that is a function of marketing, how well it meets consumer expectations (i.e. it could somewhat miss on consumer expectations, but be bolstered by an excellent marketing strategy), and how much of a market there is for it.

> _A car, whatever poferful it is, it'll be always way behind any train. So?_

Not everyone can afford to have a device for every purpose. Many people have to budget around getting a single device that can do as many things as possible.

> _Meanwhile enjoy your well thought multitouch suppor of Windows 7 on HP > slate and the battery life with real multitasking._

What are you trying to say here? That because he wants 'real' multi-tasking that he's an idiot and should be sent off to use Windows 7 and have poor battery life? Is it such a crime against humanity to want to have a decent multi-touch experience _and_ 'real' multitasking?

</comment></comment></comment><comment><USER36> The responses make for interesting reading.

</comment><comment><USER37> The author thinks third party apps that open browser "sheets" are using an Apple "API". There goes any credibility he had.

<comment><USER38> UIWebView isn't part of the Apple API?

<comment><USER37> It was the "sheets" part that I was referring to, but fair down-voting as it was a trivial gripe!

</comment></comment></comment><comment><USER39> I don't understand why this is worth writing about. The nexus one isn't for me, and neither is the iphone, I didn't run out to blog about it and repeat the same point 200 other people have already made</comment>


Encryption isn't at stake, the FBI knows Apple already has the desired key - <AUTHOR> http://arstechnica.com/apple/2016/02/encryption-isnt-at-stake-the-fbi-knows-apple-already-has-the-desired-key/ <comment><USER2> The FBI wants custom software that doesn't have bad Pin delays and deletion after 10 bad Pin requests. They want Apple to update the Firmware so they can use brute force cracks on the Pin to guess it so there are no consequences for entering a bad Pin and no delays. So the FBI can blow through all possible combinations to get access to the phone.

<comment><USER3> I don't understand how that isn't classed as a back door.</comment></comment>


Larry Tesler on the History of Scrolling Direction on the Mac - <AUTHOR> http://daringfireball.net/linked/2011/07/25/tesler <comment><AUTHOR> (the original story is here (<http://www.ixda.org/node/30565#comment-82659>) but since I found it from Gruber I thought he deserves some credit)</comment>