16 karma · joined September 12, 2017
If smartphone SoCs were viable server platforms then you would buy them directly from the manufacturer instead of scavenging them from a landfill.
The entire idea is based around the cognitive dissonance of buying fully functioning hardware at low or no cost when the reason for the low cost is the fact that it's not fully functioning.
https://hackage.haskell.org/package/base-4.10.0.0/docs/Contr...
Asking what a monad is is like asking what an iterator is. It doesn't tell you very much what it actually does because it depends on the implementation. The iterator is just an interface. A bunch of functions that have to be correctly implemented according to certain rules.
It all first started with lazyness. FP developers wanted a new modern language developed from the ground up. It should be a pure language. The haskell developers soon realised the evaluation order of a pure language must not necessarily be fixed. Eventually lazyness was born. Lazyness was a unique and very appealing feature for a purely functional programmming language. However as soon as a haskell program had to leave it's protective shell and interact with the real world lazyness turned into a double edged sword! FizzBuzzes were printing their buzzes and fizzes out of order! Chaos ensued and haskell developers returned back into the shell. After long years of work they have finally discovered it! A mechanism to force the evaluation order of a program to be partially sequential again! It is a new type of container that allows you to put another type inside it. However sometimes the only way to access the contained value is by giving the container a function that takes a the boxed value as input and returns another container with a boxed value inside! The value never escapes the box. And so was the (IO)monad born! You can now take two IO actions a and b and turn them into c which is a combination of a and b where the output of a is piped into b. Not only can we send messages to the outside world, we can also finally receive them!
Everyone was happy in haskell kingdom until the imperative migrants started writing monad tutorials... (including this one)
This story is fiction by the way.
As a bonus for all the wasted time. another crappy analogy: A cage inside a bird is given a machine that puts birds in cages. The regular tool called functor that only replaces what's inside the cage would give us a bird in a cage in a cage! The special tool gives us what we actually want! The tool named monad gives us a bird in a cage! No nested cages!
https://github.com/ssbc/patchwork >You have to follow somebody to get messages from them, so you won't get spammed.
Doesn't that make it completely pointless because updates are still centralised? It merely shifted trusting a single provider to trusting each user which is not a scalable solution. The value add is so low you might as well just use IPNS and make people subscribe to IPNS addresses.
>Yes, you will be able to make regular unencrypted phone calls to any phone number. You will also be able to communicate securely by using the phone dialing application and messaging application, that can run on the Librem 5 phone, Android based phones, and iOS based phones, and any computing device.
The FAQ is at the bottom of the kickstarter.
>People buy fast, sexy, bleeding edge smartphones with GREAT CAMERAS (not surprised the whole website decided to omit this, it's probably terrible). Companies that make these phones thrive (see: Apple, Samsung, etc. ) while companies that focus on things only a handful of programmers like (for free)wither away into obscurity, see: the Ouya, Firefox OS, opensolaris, etc.
The demand side is high enough. The kickstarter already reached 800k USD which is 50% of their funding goal. Remember they are using off the shelf components that have already benefited from economies of scale. Selling a few thousand units is enough for them to turn a profit. If they tried to compete with high end phones like the essential phone does then their needed budget would instantly increase by two or three orders of magnitude but the demand wouldn't increase by the same amount because there are already successful competitors.
I don't really know why you think everything needs to be the best and "disrupt" everything else to be profitable. It's basic economics.
$600 * x (variable revenue) = $1000000 (estimated fixed costs for R&D) + $200 * x (variable costs for components & assembly) | - $200 * x
$400 * x = $1000000 | / $400 x (variable revenue) = 2500
So I estimate they only need to sell 2500 units or capture 0.00016% of the market. It might be hard but it's certainly doable.
By the way the phone can be plugged into a monitor and keyboard to act as a full linux desktop. That sounds interesting to me even if it didn't focus on privacy and freedom.
Mapping objects to tables is a solved problem. The only noteworthy challenge is subtyping but it has easy solutions. I'm surprised how well it works even if you have an old crusty database with an archaic table structure. Compared to serialising objects to JSON or other formats that have no concept of identity it's downright trivial. However mapping objects to tables is the primary thing an ORM really does. Usually it implements lazyness for correctness so that your code while inefficient still works as intended.
What an ORM however does not do is write queries for you. Databases are remote devices, you can't just treat remote objects as if they were local (like CORBA did) if you care about performance.
Remember: You still have to write your queries but usually the ORM still helps you writing queries by providing a query builder or has it's own query language. The point of the ORM is that you don't have to manually marshall rows into objects, it's not a tool to avoid queries. It's right there in the name: Object Relational Mapping. It does not say AutomaticQueryGenerator or something related to queries.