Symbian Won
shkspr.mobi
shkspr.mobi
But by the time Nokia took over Symbian it became apparent that they saw Linux as the future OS for high-end devices and Symbian was to be relegated to mid-level devices.
When Microsoft release that memo that killed Symbian, in Brazil its marketshare was INCREASING, there was a lot of people learning how to code for it, many people saw it as a good future, because with it you could make blazing fast CHEAP phones, iPhones were crazy expensive, and android was a slow buggy mess.
Thing is... iPhones are STILL crazy expensive, and android STILL is a slow buggy mess if you buy a cheap one.
I am yet to find a smartphone I like as much I liked symbian based phones, that are phones first, smart second, and work great for actually phoning people.
I only moved to Android when forced to.
The difference between then and now is that modern smartphones use sensor fusion, combining cellular, WiFi, and GPS signals to generate a location. The end result is more accurate output, at the expense of battery life.
Do you have sources? GPS is passive, yes, but the signal is very weak and several orders of magnitude below the noise threshold. Keeping receiver circuits enabled for a long time costs battery power as well. WiFi information can be obtained entirely passively as well, as AP's transmit their info regularly.
I think the difference rather comes from lots of bloaty background services on Android.
Modern devices do the sensor fusion on CPU but it's just polling the GPS chip for coordinates as required, which handles all the actual signals processing stuff.
Oh, I remember it was near impossible to get access to service manuals Level 1 & 2 (just for understand how to repair/replace few parts on my N82), and fully impossible get its Level 3 & 4.[0]
AIKON service centers had monopoly on repairing devices.
All my hopes are now leaning into Cosmo Communicator( https://www.indiegogo.com/projects/cosmo-communicator - please take care, I have jumped into this with "I will loose my money" mentality - I still dont trust, they will realize the linux part, but hope dies last), it reminds me of beloved Nokia Communicator and if they realize my conditions (camera, calls, mms, sms - gps already works same as bluetooth ) I will give my foot a very long swing and remove my Android phone (even if heavly modified) from my life.
https://www.pine64.org/pinephone/ https://shop.puri.sm/shop/librem-5/
Also, F(x)tec are making a keyboard based mobile device along the lines of Cosmo and N900.
No disrespect to the team, it just seems like taking sufficient care of this is a bigger job than they have the resources for.
But I'm glad I backed the kickstarter, and would do the same for something similar in order to diversify a very un-diverse market.
I'm not sure which Java on phone you are referring to, the Android Java or the older J2ME. The older J2ME apps ran well in limited resources, but was also incredibly complicated to develop due to device fragmentation.
I'll have to try the pinephone next, but I have much higher hopes for it.
https://en.wikipedia.org/wiki/Nokia_E61
I actually looked recently at trying to buy another E61 in good condition, and how much trouble it would be to kludge up access to my email through it. I figured it would be more productive for email than my current mainstream smartphone setup.
I have to resist the urge to look into this open-sourced Symbian... :)
That said, it was small, smaller than an iPhone SE. And it had a hardware keyboard. I'm not against fancy apps and stuff on my phone but, besides calling reliability, the first thing I want is to be able to type small things.
I must confess I was unhappy that it even had a touchscreen: a nightmare when it was raining. I guess I just loved the form factor and its promises.
I'm thinking of making this an ode. The E6 ballad. Sorry for that long little-informative comment...
And adding Python support for S60 (PyS60) was the best gift by Nokia for users as it brings Symbian devices to be "on-the-go handheld devs tool for developing apps without desktop PC".[0]
Has you ever know that there is fully functional Blender-like 3D mesh editor & animator app written in Python for S60 (PyS60) directly on Symbian smartphone?[1]
>And adding Python support for S60 (PyS60) was best gift by Nokia
Yeah installing python interpreter in S60 on my Nokia N70 ME, motivated me to checkout Python programming book from my college library. As I was reading it in the class during break, the top-ranking girl student came across and asked me "Why Python, isn't it a dead language?"(circa 2006-2007) I assumed she must be right, I didn't write python until several years later; I bet she's using Python in her job now.
• iPhone's capacitive touch screen vs Nokia's resistive touch with stylus requirement was too much of a friction (pun not intended). 1 year after iPhone's release, Nokia released 5800 marketed as iPhone killer; guess what? it had f'in stylus with resistive screen.
• Then when android happened, which was poor man's iPhone; Nokia hugged Windows Phone OS. Which never became a thing as it lacked Google apps (Google killed it, MSFT would have done the same to Google if places were interchanged). Other comments have detailed possible leadership sabotage related to the MSFT deal, which I agree with.
I guess beside its resistive screen, Nokia 5800 has much more power than iPhone 3G:
- J2ME apps;
- Python for S60 apps (+ Pys60 IDE);
- Qt4 apps;
- Voice input;
- Built-in voice recorder;
- Video recording;
- Frontal camera for video calls;
- 3.2 Megapixel camera with zoom & flash;
- 35 hours of work in music player mode;
- Changeable battery;
- And much, much more.
Here is good comparison list (in Russian).[0]
Btw, you can also add native 3G video calling via front camera to that list, my Nokia N70 did that years earlier in India. Not many westerners seem to know about this feature in my earlier discussions.
[1] https://knowledge.insead.edu/strategy/who-killed-nokia-nokia...
Stephen Elop, Nokia President & CEO since September 2010.[0,1,2,3,4,5]
Since 2011 Symbian & Nokia starts its degradation under Elop 's "leadership".
[0] https://en.wikipedia.org/wiki/Stephen_Elop#CEO_of_Nokia
[1] https://www.europeanceo.com/profile/stephen-elop
[2] https://www.smartcompany.com.au/business-advice/strategy/how...
[3] https://www.theguardian.com/technology/2014/oct/08/nokia-ste...
[4] https://www.theverge.com/2015/6/17/8796465/grand-theft-elop
[5] https://www.theregister.com/2018/02/15/elop_and_the_fall_of_...
TL;DR: "Operation Elop" organized by Microsoft...[0]
What worked on 1 device didn't on another, there was very limited shared UI, and it felt like it was impossible to target multiple devices.
[1]https://en.wikipedia.org/wiki/Mobile_Information_Device_Prof...
I had a 3660 (friends called it the "communications brick"). There was no wifi and I couldn't afford a data plan but I was able to have the phone dialup via Bluetooth (think "reverse tether") to my Linux desktop. I never got into J2ME: being a fledgling Linux snob in college, I went for Nokia's C++ target and got stuck in the quagmire.
I could never accept the coding standard for curly bracket positioning.
OK, so I had to look.
It's like they saw the two main camps (same line vs next line) and said "let's come up with something everyone will hate":
TInt GetROMSize(TInt /*aDeviceNumber*/, TInt /*aAttrib*/, TBool /*aSet*/, TAny* aInOut)
{
TMemoryInfoV1 info;
TPckg<TMemoryInfoV1> infoPckg(info);
TInt r=UserSvr::HalFunction(EHalGroupKernel, EKernelHalMemoryInfo, (TAny*)&infoPckg, NULL);
if (r==KErrNone)
{
*(TInt*)aInOut=info.iTotalRomInBytes;
}
return r;
}Hahaha, how bad could it be...
... Why the fuck would they need to indent every function by an 8-space tab!?
Now, over a decade later, I understand that they looked at the Symbian standard, and saw that anything goes.
I didn't get very far with native Symbian development. J2ME was just so much easier, and ran on everything under the Sun (pun intended).
Was this just a "using different elements of C++" kind of dialect, or was this an "early Win32 when you had to use pretend-C++ (ATL) together with your real C++, bridging the two with C" kind of dialect?
I feel like a lot of application frameworks developed in the 90s ended up in the latter style, as C++ was just becoming popular around then, and many frameworks chose to "merge into" C++ support from C support, rather than creating a ground-up C++ SDK.
No std::string
Custom exceptions (no explicit try...catch, I think only ints could be 'thrown')
2-phase construction for C-classes.
Explicit lifetime management (to be fair RAII wasn't a thing in 'normal' C++ at the time either)
Link by ordinal
One interesting thing was that there were mandated, and strictly enforced, naming conventions and coding style. For example, above I mentioned C-classes. You had to use these in certain circumstances by inheriting from a CBase class. This gave you a virtual destructor and zero-initialised the memory. R-classes were resources classes mainly for things that needed Open and Close functionality.
I joined straight out of university and probably learned more about softare development in my first 6 months at Symbian than in 4 years of uni. There were some incredibly clever people there.
RAII in C++ dates back to 1984-1989, and Strousop wrote about it in his 1994 book Design and Evolution of C++. And C++98 had auto_ptr<>. Symbian's release in 1997 means it had a weird timing relationship with C++ standardization, but RAII was still enough of a thing at the time to be in that very first standardized STL release.
Also, as example of complex apps, there is code of Lonely Cat Games' X-plore[1] & ProfiMail[2] apps, released to Public Domain by LCG devs in 2015-2016.
Another one Symbian open-source app that I like: `fshell` — Symbian equivalent of bash + telnet + a posix-like set of command-line tools.[3]
And the latest app in development: S60Maps — OpenStreetMap & GPS tracker.[4]
FTR, Actually there is an experimental Symbian OS emulator for Linux & Windows.[5]
P.S.: And off course there are tons of useful stuff collected by "Symbian Archive" wiki.[6,7]
[0] https://github.com/trufanov-nok/SymbianBook_ru
[1] https://github.com/Symbian9/X-plore_free
[2] https://github.com/Symbian9/ProfiMail_free
[3] https://sourceforge.net/p/fshell/code/
[4] https://github.com/artem78/s60-maps
[5] https://github.com/EKA2L1/EKA2L1
and I remember another pain point was feature detection, but can't recall the specifics.
It had MMP files which described the project and the files in it, a then a tool called 'abld' which was a perl script that did the compiling, which actually had two commands to clean... 'abld clean' and 'abld reallyclean' :)
Here is how it did its version of std::string:
http://n-gage.org/symbian-sdk-doc/6.1/developerlibrary/Commo...
It actually wasn't too bad once it was beaten into you by the compiler and code reviews. Non-embedded C++ devs can count their lucky stars.
So I took a deep dive into Symbian with very limited C++ understanding. It took me at least a month to figure that that C++ is not C++ at all.
In the end senior engineers, were put on it. Project went nowhere. And then came iPhone and we went down the Mobile Browser Road (years later Apps I think).
But then they were stuck... breaking ABI was forbidden, so more modern C++ features couldn't be used (easily).
Also, the standard doesn't specify "how exceptions work" even today, in the sense that a lot of what happens when running C++ is implementation dependent.
But I can see what you mean about sticking to pre-C++11 (maybe even pre-C++98 ?) APIs.
And as cumbersome as Symbian C++ might have been, Android Studio + NDK + JNI wrappers still make me wish for Carbide + Symbian C++ + PIPS.
Google just doesn't get it, note that major GDC 2020 Android talks are mostly related to NDK improvements, 10 years later.
NDK is designed for Java => NDK libraries only.
I started a company with friends to write games for phones, before they were smart
Our fist breakthrough was at E3 in LA with a game for Nokia 7650, but we worked on prototypes years before
My first mobile connection was with a Nokia 9000i communicator, I was working for an ISP at the time that gave them to us to test mobile connections, and it felt like a James Bond movie
I learned so much developing on Symbian, especially being a diligent C++ programmer on a system that wasn't really using standard C++
Fast forward 20 years, I work on backends in Erlang/Elixir and never touched mobile development again
J2ME was nice, but limited, I lost hope soon after when iPhones came out and it was clear that the mobile platform wouldn't be fun anymore
In the UK I'd had my Nokia 6680 with front and rear cameras, unlimited 3G, multi-tasking apps, a proper web browser, the ability to install apps, and even some crap ability to watch TV. It also had a memory card for storing and playing music. I had it connected to my Powerbook (17" powerbook was my best laptop ever), and had 3G usable browsing speeds anywhere, wirelessly through bluetooth, and the phone's 3G. It synced contacts, emails, etc.
Coming to the US I got the latest and greatest - a Razor. It had an OS that felt like going back to the 70s. No 3G. No camera at all. No apps or ability to use them. Contacts on the SIM with no decent data. All it could do well was text or call.
Even the first iPhones were well behind the Symbian/6680 combo I'd had for a while in the UK (no 3G, no apps, no multi-tasking, no front camera), and it wasn't until the iPhone 4 in 2010 that I got the front camera back, which meant I had feature parity with what I'd had in the UK in 2005.
This was one of the few Symbian phones to make it to American shores with our 3G bands, and at the time it was notable for having the best camera available.
I loved the device, but the same year the original iPhone came out. On the spec sheet it was worse in every way - no third party apps, no 3g, etc etc. But the market spoke quickly, and the N95 became the last Nokia device I would own.
I always thought it was a shame that the high end Nokia devices failed to really target the US market. Usually they were lacking key frequencies, and/or only available unlocked (without any carrier subsidies). Had Nokia been better situated here, perhaps they could have presented some real competition to the iPhone, but there was no way people were going to go specifically seek out an expensive, high end Symbian phone when AT&T had subsidized iPhones and a massive advertising blitz.
I then switched to a Palm Pixi :D
Every OS should do this, desktop OSes included. For the last 2 decades I've been using personal firewalls on Windows to do just this, now I use LittleSnitch on Mac (I just hope it's going to keep working on ARM macs), AFWall+ and XPrivacy on Android and miss this level of control terribly on Linux (it sort of can be achieved with AppArmor or SELinux but both are nightmares to use).
If only iptables would allow to filter by the executable path and other process parameters - that would be just so awesome. There was such a feature in some 2.x kernel but, sadly, it was deprecated long ago.
The problem going down that route is that implementing this opens a huge can of worms. That stuff is easy to spoof, you have to account for thousands of edge cases. It's not for nothing that the answer to "can I know the full path of the binary that was used to spawn <process>?" is generally "it depends" or "it's complicated". And let's not even bring up what happens for interpreters for instance. Parameters are also often easy to spoof and manipulate, although in this case I suppose the kernel could just keep a protected copy of the original parameters for that purpose.
I completely get why you want that though, and it would be a great feature to have indeed, but I also completely understand why kernel devs don't want to touch that with a ten foot pole.
This is such a killer app it's hard to believe that only recently a linux variation has been developed...
https://github.com/gustavo-iniguez-goya/opensnitch (the original by evilsocket seems to have been abandoned).
Back in the Android 5 (or so) days, I knew what permissions an app I was going to install on my mother's phone was going to ask to be granted _once_, and be done with it. Nowadays, an app might ask for some kind of new permission "on first use", and users on mobile are developing the same habit as users of desktop browsers during the dark ages of expired HTTPS certificates and broken Java Applet signatures had developed out of necessity: "default-ack/OK all the things".
The problem is that these days, even very technical people think that you could realistically expect to lie with dogs, and get up without fleas - i.e., install applications and software you cannot trust, and get away without having something bad (like loss of privacy, or maybe exfiltration of data) happen. All thanks to "modern" security constructs like sandboxing.
But that is not going to happen - sandboxes have been shattered and broken in the past, as they will continue to get circumvented in the future. There simply is no replacement for trust (in an application, its developers, its distributor, and its operator (if any)), and there are no technical solutions that could somehow replace it in full.
Yes, you can make it incrementally less bad to have a hostile agent/app on your machine or phone, but the trouble you're trying to prevent that way will never go away completely.
I guess some people just liked to feel "in control" when clicking away their "Norton Professional Antivirus 95 blocked 17 Viruses from damaging your machine today!" messages back in the day, and some apparently cherish clicking "grant 'Sexy FileManager Free Pro' access to your Photos and Videos" today. Personally, I'm actually rather sick of it, and all the security theatre that "modern" application delivery mechanisms like app stores/mobile platforms or stuff like snaps/appimage/younameit would have you participate in. I'd rather trust my distro's package maintainers to not let developers abuse their users, and have a look at the source if I'm in doubt about the upstream's intentions. I know I can't audit everything, but I feel like I'm much better off with that kind of trade-off, than with the non-solution to the problem I tried to describe above.
Edit: Removed a leftover part of a restructured sentence.
Wanna see a real permission model, look at the BB10 Android Player model. After installation, you could revoke permissions and the player would basically act as if the data from that permission was just empty. App asks for contacts, here's an empty contacts list.
Edit: I just did a small hackathon and ended up having to request full BLUETOOTH Access and LOCATION access to connect to a label printer... how is this long term sustainable.
This is just Android being transparent. "Bluetooth usage may allow apps to track your location." Which is perfectly true.
There has to be a balance between explaining to the user, e.g. that there are multiple ways their location can be tracked, and permission request overload.
I don't imagine explaining to everyday users the details of the Bluetooth protocol is viable.
Trusting 3rd parties to decide what you can trust isn't ideal either. It's what Google and (especially) Apple have for mobile apps now. They decide what you can safely install and we're just supposed to trust them. That's clearly not working.
While you have the added benefit of being able to trawl over thousands of lines of code looking for something suspicious, that's not exactly scalable or even possible for the majority of users. In the end, what exactly are you looking for anyway if not signs that an application is making connections or accessing files that it shouldn't. In that respect, it's far better to have the OS just tell users when an application is doing those things (connecting to the internet, reading their personal files, or activating their cameras). The more transparency in what an app is doing the better because the reality is that we cannot trust every app we install. How could we possibly?
Are you sure you didn't mean "EPOC" pain? Maybe "EPOC32" pain?
;-)
- a Psion owner
Since then, dreamed of some comparable device, basic linux, enough for vi and terminal stuff, wifi/bluetooth and well, happy with the screen. Alas all devoplment of anything close, tend to wack in CPU's that would be classed as a supercomputer of the 5MX time, power hogging colour screens and you end up with devices that will last a day perhaps, but not the month the 5mx would pull with comparable usage with the rs232 adapter.
Hence a cheap terminal, basic local editor wifi device in that form factor and if it could do bluetooth and double as a keyboard for a smartphone, well, a simple device like that would tick my boxes and maybe many others.
It should. Kexts are still allowed, for now. They're almost certainly only a couple of releases away from being deprecated though.
"We expect the deprecation to become effective with the next major release of macOS. There’s no official release date from Apple, but based on the release schedule of recent years it will not be before this fall. Little Snitch 4 will then not be loaded by the operating system, but there will still be an option to allow the loading."
Little Snitch 5 (with NKE) requires a new license.
There is reasonable pricing for upgrades... LS4 bought within a certain time get a free upgrade, older licenses get a reduced price.
You can do that sort of thing with eBPF these days, either at the network level or via process tracing. It's non-trivial still, though. Lots of the various firwewall automation tools have features like this too. It's definitely a solved problem, but not one with a really clean obvious solution yet.
- how do you recognize which applications the packets belongs to? Even if you would get pid in the rules engine (which you normally don't), how do you name it? /proc/$pid/cmdline can be manipulated at will by the process; then you need to recognize additional parameters when you are using applications that run other code, from bash to virtualbox.
- what happens to the connection while the firewall is waiting for the user input in the UI? Linux apps handle long timeouts badly
- what happens to other connections while the firewall is waiting for the user input in the UI? Right now, unfortunately, whey would have to wait too.
- LittleSnitch does interesting heuristic wrt hostname/ip translation - you can get different (or no) hostname via reverse query than the application asked for. You need to monitor what each application is resolving and what answers it get. If you get same IPs for different hostnames for a single application, all bets are off, only application knows which one it connects to (you can eventually learn with DPI, but for that it might be too late). For applications with their own resolvers using DoH/DoT, tough luck.
The first problem could be solved at the level of sandbox runtimes (i.e. flatpak et al), i.e. when you know, that the application is running in the namespace belonging to specific flatpak package, you would present that as that specific application, they cannot lie about that anymore but the price is, that you can handle only sandboxed apps; for scripting and so on you still have to find how to distinguish specific instances. For all the other problems, you would have to figure them out.
iTerm actually ran into this very issue (using the equivalent macOS APIs) and had to treat it as a security bug because the results were controllable in-process as well. And it also ran into the problem of how to deal with interpreters. It basically ended up being all ripped out and the API was redesigned to require authentication tokens rather than trying to figure out a meaningful source for a process.
ETA: and most Linux apps will just sit there blocking in the syscall, or at the very worst, retry/show an error/crash.
You need to implement at least some functionality on the kernel level (what LitleSnitch does with a kernel extension) for this, most of the people who care about desktop apps on Linux (me included) lack kernel developer skills.
[1] works pretty well for me.
[0] https://github.com/nathants/tinysnitch [1] https://github.com/gustavo-iniguez-goya/opensnitch [2] https://github.com/Douane/Douane/
Of course, the naive implementation—giving the app itself control over the system's settings for it—would be a disaster. (I think early iOS had something like that, but quickly got rid of it—right around the time the App Store stopped being so heavily curated.)
I'm suggesting something more like: if you pull up iOS Control Center while an app is open, it'd have either an "app settings" submenu, or merge "app settings" into the view of system settings. Then, within "app settings", you'd have a little privacy-lock, sort of like the one that appears in a browser's address bar—and which would allow you to change very similar things to what clicking said lock allows you to change in a browser: in est, the states of all the system confirmation prompts the app has triggered.
Less on-topic, but contextually-accessible app settings would also allow you to do neat things like provide the ability to set accessibility settings on a per-app basis in an intuitive way, or to start something like Guided Access Mode (https://support.apple.com/en-ca/HT202612) without needing to enable+remember an arcane gesture. I would especially love the idea of being able to change the perceived system font-size/scaling-factor, or the perceived system language/region, on a per-app basis — basically equivalent to Safari's display settings "A" menu. Maybe even a switch to enable that "monochrome to reduce addictiveness" mode, so you can have it on only within social media apps!
Isn't this exactly how Android does it? I long press the app icon, click app info. All permissions, data usage, battery usage, storage usage options and metrics are shown for the app.
Feels so intuitive. Turns the control center into the top bar from macOS or the file/edit/settings bar that many windows apps have. That's so darn obviously the right way to do it!!!!
iptables can filter based on the uid ( -m owner --uid-owner {USERNAME}) then, you have to to create a dummy user and launch your executable as that user (su, runuser, ...)
But that's cool with users. It's not annoying, it's more or less a one time thing, maybe a hint more if the app is a bit more unusual.
The Symbian notifications? That's a "I hate you, user". Especially the secure connection. Why would it ever ask that?
On the other hand, some of those warnings made sense at the time. Mobile internet was so expensive that I never enabled it. Right up there with MMS one of the things that priced itself out of the reach of regular customers. It was like 3€ to send one single MMS, Internet was also in that domain - per Megabyte (I should note here that the country I lived in is technologically a third world country). That changed only later. So a more modern iPhone and Android could design those things differently.
For whatever reason, old Internet Explorers (9? 10? not sure..) do that too...
The current ones will ignore the remember this site probably due to a stupid group policy.
Possibly forgets on logoff
I suppose I should try to sell it to some one who can use it but it is such a beautiful thing that I am loath to get rid of it even though I haven't even switched it on for ages.
I found a version of Firefox that worked very well. Haven't tried it for a year or so though.
> Still the best looking phone ever made..
Definitely!
It's not a success but it hasn't been a failure IMO.
I understand that you can't just straight up copy the functional and beautiful UI from N9, but Sailfish the Sailfish UI was just way too experimental and bare.
How on earth did this not take off ?
Meego being a full rewrite and repackage (qt/rpm whereas maemo was gtk/deb), although it had merits, means development needed to restart from scratch.
Nokia also totally mismanaged dev relations. First it built up dev excitement for Maemo, then announced it was going to be abandoned (for Meego) a few months later.
Meego was a combination of Intel's Moblin (purchased from OpenedHand, a big Linux shop back in the day) and Nokia's Maemo.
Shortly after Intel abandoned the project in favor of Tizen, leaving Nokia holding the bag. Nokia went through the motions until the infamous burning platform memo, driving the last nail.
In some ways, N900/N9 is a parallel with Amiga. Great machine, tremendous excitement by a (small) loyal userbase, mismanaged by development, and now a subject of nostalgia and failed attempts to resurrect the dream.
Monies. Microsoft's offer to Nokia was way too lucrative.
Nokia owned Qt and Samsung didn't want to pay fees or buy Qt outright, so they went with the mostly unknown Linux Enlightenment project (didn't hurt that it's main dev worked for them at the time). Likewise, Nokia owned rights to SwipeUI, so they opted for a remake of the Android UI.
If they'd gone with something like a cleanroom implementation of SwipeUI or webOS, I think Tizen could have been a success. Instead, it just feels like a bad, outdated edition of Android. If users wanted that, they'd just use Android instead.
unfortunately, unlike sailfish, tizen lacks support for android apps. the reason for that is that samsung would loose its commercial android license if they added android support to tizen.
https://en.wikipedia.org/wiki/Moblin
https://en.wikipedia.org/wiki/MeeGo
I believe right now you're best off with /e/ in combination with a Fairphone 3.
Apparently he has always been passionate about open source, and I've always been impressed by his output. I'd love to see /e/ get some mind share on a decent platform.
/e/ referred to [1], not Enlightenment.
I kept my N900 for years longer than most people because it has a quality DAC and, as long as I kept it in airplane mode, it was a good music player for the classical and jazz I listen to on high-quality headphones when traveling. But eventually I realized that the N900 could be totally replaced by simply adding a Bluetooth DAC to the Android smartphone I already have (and I'm glad I did that, because the BTR3-FiiO Bluetooth amp I got sounds even better than the N900).
I recently got a Pinephone, but it’s hard to enthuse about it. So much of the cool things you could go with the N900 – Emacs and the whole OS it brings along, writing your own scripts in the terminal – were due to its hardware keyboard. A modern smartphone that lacks a hardware keyboard is just a pain to hack.
It also lack a bunch of anti-features. No calling the mothership. No advertisements. No constant attempts to get me to register, to send gps information, to get me to do things which I don't want to do but the manufacturer do.
Interface is clean, fast enough, intuitive to use. It has the few apps I want to use like the terminal, fosdem schedule and also a virtual debian machine. All the third-party stuffs still get regular updates.
In the future I don't know what will replace it. The free software phones are interesting but I have my doubts about how practical they will be. On the proprietary side there are the foldables, but it is still a touch keyboard. There are feature phones, but many seems to now days be smartphones in disguise.
OK, but I hope you are aware that even the third-party stuff still uses the 2.6-version kernel and the system SSL libraries, which have not received security updates for years.
Also, an Android phone running LineageOS would not call the mothership, advertise to you, nag you to register (there is nothing to register for), send GPS information anywhere once you configure it to not do so (or you can choose a libre alternative like Mozilla’s location services), or get you to do things which you don't want to do but the manufacturer does. That is why many if not most idealistic N900 owners moved on to LineageOS, while hoping that something like the Neo900 or the Librem 5 or the Pinephone would eventually remove the need for Android entirely.
Data caps mattered in that era, so from a narrow point of view it was the smart thing to offer those features. But to launch a category defining smartphone, that limitation needed to be broken entirely, and that involves work outside of software; namely, timing the launch such that you can negotiate with AT&T to ease the data restriction.
It's like saying RealPlayer 'won' against YouTube. No, they didn't. They just mistimed an idea, and a few implementation details were the same.
I've written more about this type of dynamic here: https://nickpunt.com/blog/category-defining-products/
Everyone else did it better. It's not about who invented it first, its about innovating over other inventions.
Symbian still failed commercially in the market and couldn't compete or innovate with the other competitors.
At least if your ideas where more important to you than 'winning'
I'm not saying Nokia and symbian were better BTW. Just noting how our contemporary value system where, "it makes money"="it's good" is short sighted at times.
Android and iOS "won" because the phones were vastly more capable.
People tend to forget that you had a desktop quality browser in the first iPhone.
Easy of use and better UX is a very valuable "innovation".
Nokia actually had a touchscreen UI called Series90 but that went nowhere, they dismissed touchscreens completely initially, and then went with resistive touchscreens on the disastrous N97
Symbian was probably right about how it was handling of security, but it "lost" by disappearing from the game.
They didn't win commercially.
I realize this is a philosophical distinction, but it really does come down to whether you are attached to the fundamental characteristic of a thing, or the label/name/brand of the thing.
Financially, the brand matters. If Uber fails commercially, but ushers in an age of gig economy transportation, the idea won but the brand did not. As an investor or employee, you care deeply about the brand.
But as someone trying to change the world, you care deeply about the idea coming to pass by any means necessary. Sutherland did not get rich. But do we say he lost because “The Mother of All Demos” was not an Apple II or Macintosh?
Until the end of 2006 when T-Mobile (US) introduced the BlackBerry Pearl; it was at that point Symbian/S60 died in my life when I realized how limited it was and what it could have been, haven't touched one since (the Pearl being eclipsed by the first Androids after that in 2008). They had a shot and a solid following on HowardForums and just sort of blew it and let the competition outrun them.
I carried an iPaq back in 2003/4. It was awful in many ways, but like living in the future with superpowers. I had Google Maps at any time, etc.
I was between jobs when we got married, and my wife and I went on a two month roadtrip for our honeymoon. It was only possible due the iPaq with the combo of Google Maps + a web browser that could access Priceline.com!
Data speed was never an issue, only signal. The good news is that era was where cities started throwing up free Wifi, so it worked out. I'd say that from a UX experience, being one of the few users in 2004 was a better experience than EDGE connectivity or 3G in some areas on the iPhone after it's release!
That was a revolution. Before that, yes, you could run up a massive phone bill.
[1] https://www.apple.com/newsroom/2007/06/26AT-T-and-Apple-Anno...
You mean their fake unlimited plan that resulted in a $60 million fine? That revolution?
[1] https://www.theverge.com/2019/11/5/20949850/att-fine-unlimit...
With prices of about 5 euro per megabyte you lived in constant fear of accidentally using data.
Blackberry failed for much same reason it failed everywhere else - much better phone platforms came out very quickly etc.
So that's why I used a 100 MB modem plan in my smartphone (then 300MB before cheaper regular phone plans became available). Phone calls were 1.5x the pre-paid rate, but using the Internet somewhat freely was better.
BlackBerry came with it's own data plans and they had they used integrate with the mobile providers on a much lower level than just internet traffic.
I really wish I could have a smartphone with similar hardware that I could upload some executable on it written in C.
I still cannot believe there are no minimalist RPi-like smartphone that lets you easily do this. Smartphones today are overpriced supercomputers with asthmatic batteries with hardware that is possibly full of backdoors.
I know there's the pinephone, but I would rather have more limited, slower/cheaper hardware instead.
http://www.vttoth.com/CMS/index.php/projects/13-4-bit-proces...
Edit: I just saw a really neat alternative view in iOS 14 whereas the 'allow access to photos' modal gives the option to pick and choose what photos are 'shown' by the OS.
Actually the problem is most of apps don't give you the choice between [slick UX + loose control over your data] or [ok UX + perfect control of your data].
If I download Instagram and refuse to access my local storage, I guess I won't be able to share a picture from my phone, right?
Not from within the app, but if you go into the Photos app and share a photo from there, you can choose to share to Instagram, and Instagram will get only that one photo.
...basically something like WinRT's broker-processes on steroids - or another use case for Apple's "App Extensions" feature but allowing for complete control of the UX more akin to a Photoshop Plugin than being limited to a small number of prescribed use-cases.
https://developer.android.com/reference/android/content/Inte...
But when you can integrate the picking into your app and avoid trying to learn a zero-permission approach because users just hit OK at install time anyway... why bother? And thus back in the day very little things used this, because there was very little reason to avoid just requesting every possible permission.
That hardly deserves the extremely click-baity headline of "Symbian Won"
"Symbian Won on User Permissions" would be reasonable, and probably get less attention.
Apple was in contrast incredibly developer friendly when they started their store and then Android one-upped them (only 25 usd to join!).
Symbian had shitty developer experience because internally they did not have a "Dev experience and third party app development" stakeholder. They had kernel, seats for various hardware vendors, mobile and wifi standards, but not for third party devs. Nokia itself was blind for its mistakes as in-house they could get whatever source code or access they wanted.
Note that there were non-Symbian mobile phones as well e.g. Ericsson. So Symbian was kind of Android, but no default UI and closed source.
There were also multiple variants of Symbian - S60 was the Nokia UI, but Ericsson and Motorola had Symbian UIQ, in Japan they had MOAP-Symbian
You could choose per app which connection they should be using, or even a group with order of preference. So you could get your work apps to only work over WiFi, some apps always go over VPN, some always use 4G even if WiFi was active. It was brilliant because all these connections could be active at the same time.
Apple and Google are only just catching up to this now with tricks like Per-App VPN but it still doesn't offer the same level of flexibility.
source: I used my Nokia phones internationally by swapping SIMs and there was a huge difference between US and European plans.
>Symbian: Opening a secure connection. Continue?
>IE6: You are about to view pages over a secure connection
Why did early 2000' software had such obsession with asking user about secure connection?was it related to symbian design choices?
“Most programmers come to Symbian OS from some other development environment, and tend to think they’ve already got strings pretty much sussed. After all, there’s not much to C strings to understand, although there are plenty of ways they can go wrong. The Java String and StringBuf classes have about the best combination of power and simplicity that you can get. And the various String and CString classes found in different flavours of C++ environments are usually mastered fairly quickly.
But then they encounter Symbian OS descriptors. If there was anything invented to bring a high flying C++ developer firmly back to ground during their first week of Symbian OS development, it’s descriptors.”
HBufC* heapbasedFred=HBufC::NewL(4);
TPtr fredPtr(heapbasedFred->Des());
_LIT(KFred, “fred”);
fredPtr.Copy(KFred);
I had forgot it was this bad.It's kind of weird that Symbian calls these descriptors, but the actual types and macros don't use that word at all — they are HBufC, TPtr and _LIT.
For the lack of a better word, development in Symbian was "tacky", was like walking on mud, everything took 10x the effort it should.
It was a time when Nokia was the only game in town (think N93, N95) and they thought they could get away with mistreating developers forever.
Funny how they sabotaged their own efforts to make development easier e.g. Python for Series 60, let alone Maemo.
Maybe the compiling times too.
The way to get app was by content aggregators and premium sms sites. Developers were lucky if they got 10% of the purchase price.
So please people, stop complaining about 30% for discovery, security checks, big number of payment methods, tax-consolidation, and global availability.
What has won is capability-based design, and the fact that the review system in iOS is better (but not perfect) compared to Google. The install base is also much larger though, and the amount of personal data on a smartphone has also increased greatly.
The question we need to ask ourselves is the following: do we really need all this data available on our smartphone? Or, put different: do you need to be able to access this data while on the go, 24/7? Do you need to take your smartphone with you 24/7?
Like with browser extensions I don't want access to all pages and tabs. I want [say] access to the `href` attribute `value` of the `link` elements that have attribute `rel` that is `alternate` AND `type` that is either `application/rss+xml` OR `application/atom+xml`
To be described to the user as: "Permission to discover RSS and Atom feeds."
I pay 25 euro, I wait, the platform ppl sign of on it, I update the tool with the new permission.
I then tried to learn Symbian and I found the IDE hard to setup, the API was hard to learn, and I believe it only ran on windows.
At the time I thought to myself “the NeXT/Cocoa API and utilities are so awesome, so easy, so mature that if Apple ever makes it possible to write mobile apps with them, they are totally going to absolutely destroy everyone else in the mobile development marketplace. Especially Symbian.”
Doesn't the premise of the article disprove this statement? There's been no regulatory movement forcing the "Symbian" granular permission approach.
I'd argue the pseudo-regulated app stores were a bigger source of the problem, not the "libertarian free-for-all". That is, having an app store with Apple or Google's name on it is what encouraged users to let their guard down and trust all the apps on it. If you had to download the "battery charger" app from Bob's Phone Tools' site instead of the Google Play store, you'd maybe be a little more skeptical of that permissions list.
This comment is beautiful and should be read every time someone complains about "libertarianism" in such a completely misguided manner.
The way modern iOS and Android handles asking for permissions doesn’t seem all that similar to me.
Symbian was asking about network connectivity because, at the time, mobile phone networks charged for data in ridiculously small increments at high prices.
One of Apple’s biggest innovations was to convince Cingular to sell an unlimited data plan at a price acceptable to the general consumer and not just for businesses.
If I recall correctly, there was a good period of time where BlackBerry service plans cost more than the iPhone by 10 or 20 dollars per month, and yet a BlackBerry really didn’t have a fast/usable enough web browser to even consume as much data.
The iPhone was so popular that it was bringing Cingular’s network to its knees, especially during sports events and things like that.
But what about _Google_ or _Apple_ accessing my data? I can't prevent that, and they're some of the dodgiest corporation with the dodgiest apps in terms of privacy - after all, we know they send your data to the NSA.
I don't know about Sagem, but NEC is alive and kicking. Its glory days of the 80s are very much over, but they managed to stay on the market.
They just brought back the illusion of control.
and this then illustrates that doing things wrong were about priorities, and a better focus for user-focus was the winning play by others.
Nothing beat laying by the pool and doing a little office work on the brick.
It seems screamingly obvious that I might want to give apps access to some of my files but not all of my files. Some of my contacts but not all of my contacts. No such options exist. Many other permissions are also needlessly coarse grained for no particularly good reason.
I probably want to see apps flagged which ask for permissions which are ridiculous given what they do and justifications from developers. Not possible.
These things aren't intrinsically hard at all.
It's reasonable for a non-technical person to assume that any app whose provenance is known (thanks to the App Store's policies and requiring a valid DUNS number or similar) would be investigated & punished if they end up doing something malicious, so as long as traceability can be ensured (which it is) then it must be safe.
I myself used to think that as long as I use apps from a major brand (so like Facebook, Google, etc) I should be safe because there's no way they're going to pull spyware-like tricks and steal personal data... right?
The iOS lockscreen is a modernized version of the Today app from PalmOS. Current iOS homescreen is a slightly modified version of PalmOS homescreen to be precise.
PalmOS and Symbian are the pioneers of mobile OSes and they were pretty good at that.
The first IOS versions had quite a few limitations and a long list of stuff that it basically did not have at all. Yet it was better in only two ways:
- it had a well thought out UX; users loved that - it did not crash all the time and wasn't riddled with bugs; unlike just about anything that Nokia shipped.
There was a long list of stuff Symbian could technically do but sucked so hard at that few users actually bothered with using those things. Like using the web, taking photos and sharing them with friends, or doing some video conferencing. Technically you could do all those things but it was a combination of painfully awkward to do, unusable and extremely likely in your phone resetting randomly. All that was probably fixable technically but none of that was something Nokia was able to actually pull off due to it's management structure, priorities, and a general complete vacuum at the top in terms of leadership and vision.
Looking back, Nokia's bad decision making started around the time Linux became an obvious future choice for phones (late nineties) and just a few years ago before a tiny startup called Android actually started dreaming of making a linux & Java based phone. Instead Nokia ignored the signs of the time (and the many embedded hardware manufacturers experimenting with linux) and went for a little known 32 bit successor to 16 bit OS from the nineteen eighties and threw its weight behind it.
Google bought Android around the same time Apple kicked it's IOS efforts into gear, which was around the time I joined Nokia and also around the time Nokia Symbian phones actually started shipping in more meaningful volume (it was late and not great initially).
Symbian was not what made Nokia rich. That was actually two other platforms called S30 and S40. The S here is often confused for Symbian but actually means Series. Series 30 dates back to the early nineties and still ships in some volume in developing markets for a few dollars. That infamous indestructible Nokia phone that always comes up in Nokia nostalgia? S30. Snake, Calls, and SMS. All it did. (OK and a little WAP if you got any value out of that walled garden).
S40 started shipping around 1999 (the flip phone in the Matrix was the first model). Initially with black and white screens. Later with color screens, multi media capabilities, etc. This was the backbone of Nokia's revenue right until MS came in. Not Symbian either and actually kind of a cool OS design for its time.
Only Series 60, 80, and 90 were actually Symbian based. Nokia did not actually start shipping Symbian in volume until about 2004/2005, right when it's competition was basically going from prototype to eventual reality at Apple & Google.
The e-series phones (the ones with qwerty keyboards) were popular but comparatively a niche market. Initially that was S80 (the business variant) and later the two remaining Nokia Symbian platforms merged and S60 became the only version (initially this was positioned for multi media and gaming devices). Technically all of these were UI layers on top of Symbian. Ericsson had its own version called UIQ.
There were a quite a few flagship S60 phones that were basically variations of candy bars until after the iphone shipped. Nokia actually killed off S90 in 2005 which was intended as a touchscreen variant. Yep, that's the same year Google bought Android and Apple was moving ahead with IOS. And, yes, Nokia was well aware of those two facts (very much a public secret at the time).
For the next 3 years the only touch screen devices Nokia sold were Linux based. Only in 2007 Nokia woke up and went "oh F*" and gobbled together a company killing version of a touch screen phone on top of S60. I can't emphasize how rushed and how bad this was. Especially considering it had a perfectly good shipping Linux tablet running basically the same kernel as what later became Android.
It spent the next five years convincing consumers how much S60 didn't suck while failing repeatedly and hard. Especially a few years after Apple ate their lunch it became increasingly painful to watch. Lots of desperate moves happened during that time.
Fun fact, Nokia shipped an internet tablet running Debian Linux with X, GTK and a Mozilla Gecko based browser around 2006, almost half a decade before the ipad shipped. This thing was awesome and the reasons for it shipping without phone capabilities were entirely political and non technical (think management having a hard-on for Symbian). This little tablet eventually became a phone and then the whole MS thing happened. Meanwhile Google bought a lot of these because it basically ran the same kernel and drivers as early versions of Android and you could dual boot them to whatever; which was a nice feature to have before they shipped the first Nexus phone.
Nokia basically helped bootstrap Android but was too occupied moving deck chairs around on the sinking ship that was Symbian.
So, no, Symbian did not win.
Product engineering where the app/service is one big A/B test is how you truly figure out what your users want and need.
But isn't that how the Internet works? No one "approves" a website for release.
If anything it shows that with just a single choice and no competition, android apps just all have to do the same shity thing. Opposite of libertarian.
Apple OTOH does two major things different:
1. Apple's approach is to ask for individual permissions it needs when it first needs them. I can't overstate how much better this is than the Android all-or-nothing permission dialog.
2. Apple's permissions make more sense to users. Things like:
- Your location
- Run in background
- Your contacts
- Your photos
- The camera
Android's permissions always struck me as what engineers would do if they designed a permission system.
> Because, as it turns out, a Libertarian free-for-all doesn’t work.
TRUE. Big true.
Honestly though I don't really see the author's point. I don't see iOS 14 and whatever the next Android version is to be back to what Symbian did.
https://developer.android.com/training/permissions/requestin...
iOS switched to the runtime permission request in iOS 6 (released in 2012), so they switched earlier than Android, but both platforms have had runtime permissions requests for years.