Before the iPhone, I worked on a few games for what were called "feature phones"
twitter.com
twitter.com
With that I created a daemon in Symbian that would query the cell id and open up a socket server to give it to the J2ME app.
With that we developed an app to request a taxi service, but none of the taxi companies wanted it. Some of the complaints were:
1. GPRS data plans were too expensive for end users 2. No one would put an expensive Sony Ericsson touch phone on a windshield, the windshield would be broken by thieves to steal it. 3. Looking at a screen on the windshield while driving was never going to be approved by authorities.
The best thing to come out of the project was the "advertising" video featuring YT casually answering every question correctly. Which is a thing you can do when you've watched the same episode 15 times to record second-level timing!
It always confused me why Jeopardy never pushed anything official.
#1 was true all the way till ~10 years ago when 3G became popular.
#2 is still true is most 'urban' areas. People just take their phones with them when they get out of their cars.
#3 is interesting - I think some regions had tried to ban mounting phones on the dashboard, but at this point, they must have given up
Btw. in the 90' I used to detach each-single-time that I parked the car the front panel of the car's radio to then carry it with me (leaving the storage box in front of the passenger seat open, to show that I didn't just put it in there) to discourage people from breaking into the car to extract the radio (front panel & main car radio were individually coded to only work together, that's at least what I believed).
What a silly thing to do, hehe, but to be fair the price of a fancy radio at that time was similar to today's phones ("Pioneer" and "Sony" were high on my list - some models had quite complex display animations/colors/equalizers/etc & sound modes).
I still remember when my dad had bought an aftermarket tape-deck-only radio, a Sony I believe, well into the era of the ubiquitous CD player (he just wanted a working tape deck). Someone broke into the car at some point and stole it and I can only assume they were very disappointed after looking closer.
The precursor, HSCSD, was ridiculously expensive because you paid by the minute.
If my memory is correct, there was also dial-up on mobile/GSM (well, I used something before I had a phone that supported HSCSD), which was interesting, but quite useless at the time.
Also, #3 makes little sense seeing as there were already cars with built-in satnav, and you had to look down, which is worse than a phone on the windshield.
Yeah, it was called CSD. HSCSD was high-speed CSD.
The technology has come so far, it's pretty incredible.
The map data was all stored on an MMC card so it didn't need any GPRS data. I used both a Nokia 6600 and then a 6680 with the same software. https://www.pocketgpsworld.com/route66-mobile-britain.php
Only the bluetooth GPS receiver had to be kept in the windscreen, and both parts were small enough I could easily could take out of the car when leaving it.
I suppose it was slightly bleeding-edge stuff for it's time but it worked pretty well considering the capabilities of the device and was much cheaper than a dedicated GPS unit with no ongoing costs.
Unrelated obviously, but as someone who was surprisingly poor for an owner of such a phone in those days (it was on my mum's phone contract and we had to fight and haggle to get it), satnav software piracy was rampant back in the day.
I think there's still a Bluetooth GPS receiver somewhere in my old room at my folks place...
The solution to that seems so obvious: make the phone speak to the driver instead. Was turn-by-turn navigation not feasible back then? Or what else am I missing?
Most likely this app was not navigation. Remember, feature phone, probably had less than a couple hundred MB of memory for the entire device. I assume the app would just give the taxi driver address details and what not.
In the major urban areas I've lived, every cab drive would start with "take this street to that street" or "head towards major landmark."
Even in cities with decent grids you couldn't trust a cabbie to take the fastest route.
> Even in cities with decent grids you couldn't trust a cabbie to take the fastest route.
I heard these stories and would direct cabs the same way, until I realized that the cab drivers were right and I was wrong, and that the depictions of them as shady thieves who would purposely take you out of your way, or were horribly incompetent, were urban myths.
And I was being disrespectful to the drivers, to presume that and treat them that way. I don't treat other service industry people that way. And if you think about it, cab drives make more from a flag drop than a longer trip - as one cab driver said, 'people say these things to me - do you know how much I make for an extra few blocks? 50 cents? And what is my take of that?'
I learned to trust and respect the cab driver, who after all were human beings, and drove around all day long, and like most people was honest and considerate.
How did Cabbies know where to show up when called?
Or did they not? I only ever took Taxis from places I could flag them down pre-Uber.
In what city? London cab drivers famously were (are?) required to pass a memorization test, but in American cities I've had many cab drivers who didn't know their way around. They've been generally better than Lyft/Uber drivers.
The world is a different place today.
1-800-TELL-ME launched in 1999/2000. You told it your address and the destination address, and it read you the directions one at a time. E.g. after you made the first turn, you'd ask for the next one and it'd tell you. It did not need any GPS this way, it's like talking to someone sitting next to you reading the map for you.
Microsoft bought Tellme in 2007 for $800 million.
And why?
The first retro-fittable GPS was in 1997, the Alpine CVA-1005 [1], which weighed >3kg and had a display of 26cm across; it connects for nav to a CDROM drive containing base unit [2]; here's the wiring diagram [3].
[0] https://spectrum.ieee.org/consumer-electronics/gadgets/the-c... [1] https://ndrive.com/brief-history-gps-car-navigation/ a good review of early GPS [2] https://www.ebay.co.uk/itm/Alpine-NVA-N751A-Navigation-Syste... [3] https://elektrotanya.com/alpine_cva-1005_wiring_diagram.pdf/...
They also had a backseat DVD player with (shudder) analog video input. The quality was atrocious!
Why not just make the entire app native in Symbian if you require it anyway? Or did the Symbian SDK suck even more than I remember?
I pivoted to J2ME with about a week to go in the project and managed to get an MVP working in time, after 3 months of wrestling with Symbian.
Also it did not help that the SDK was rebooted like 4 times.
Initially based on Metrowerks, coupled with a mix of Perl and batch files, rebooted twice into Eclipse based IDEs, and finally the QtCreator initial effort before the burning platforms memo happened.
Still, it was still much more friendly than dealing with NDK issues on Android.
That dual-key QWERTY is my favourite input, ever. I’d love something like that on iPhones soft keyboard lol
Started wayyy back in 2007, and was a cofounder of a startup that made popular J2ME games available for free to people by wrapping it in our proprietary ad serving software. We launched more or less the same time that AbMob did, invented more or less the same stack (ad delivery to mobile phones), but we focussed on the product (games) whereas they focussed on the platform (ad delivery). A few years later AdMob was acquired for mega $$$ by Google, whereas we just kind of limped along and died a slow, natural death! Many years later I discovered that my cofounder just let our 4 letter domain expire (www.hovr.com) and I think it's up for sale now :(
Also remember developing games on the BREW platform by Qualcomm, circa 2005. Whereas I was in India which mostly had GSM J2ME phones, BREW was much more popular on North American CDMA handsets. I, along with a friend, developed one of the first real-time multiplayer games called Blingster Battle, which was on top of Verizon's charts for a brief period of time! Truly groundbreaking stuff at that time..
The most amazing bit, though, was when we made some BREW apps around 2013. By then iOS and Android had firmly taken over the smartphone market, and all the cool kids were downloading apps/games on them. However there was a very significant portion of the market - primarily composed of the elderly - who were still hanging on to their old CDMA feature phones and were still interested in buying new apps. We made a couple of quiz types games, that actually generated a couple of thousand dollars in revenue every month till last year, until Qualcomm finally pulled the plug on BREW!
Impressive - how did you manage to run real-time multiplayer on that technology?
Each phone had different implementation quirks, such as variable audio delay when playing a file, audio/image formats that were faster/slower, odd button events (some used press, some used ondown, some had no ondown, etc). A lot of our work was learning all of these quirks and implementing them into the automated porting platform.
Then the iPhone came out and started to build momentum.
I still have my old flip phone, the one with the least quirks, with some of our games on it.
I honestly miss these times - it sparked so much creativity when one needed to achieve something in such a limited environment.
As someone from the c64/apple][/atari generation... it was constantly amazing to see how much people could push a single device. Lots of creativity, as you say. But... we seemed to hit a wall with the whole j2me-era of "just get creative to work around things!" mindset. Because, IIRC, there were dozens of different devices that all didn't work the same way - you'd have to get really creative to get things to work in 128k, but then do it again and again and again for each target device.
There were millions of C64 units in people's hand in, say, 1986. And similar for Apple ][ units. You could be assured of a decent audience/sales/users if you ported to that platform, even if there was a lot of 'creativity' to deal with. The j2me device world always seemed a lot more fragmented to me (but maybe it wasn't?). But just saying "this runs on a java device" was different from distribution - allowing 'regular' people to get something in to a centralized store/distribution point seemed another big win for the iPhone world.
EDIT: fwiw, this made me spend a few minutes in youtube looking at old c64 and apple and Atari demos. what people ended up doing with those devices - years after they were mainstream - is still crazy to me.
The problem with cross-platform development in a nutshell. Still to this day writing an Android/iOS app using PCL code is a headache
We actually worked with the BREW platform, so we only had 50 phones instead of the 300 java ones. Lol, too funny
> Unlike most emulator projects, Kemulator turned out to be closed source abandonware
It is amazing that in the past two decades most emulators transitioned from closed source closely guarded secrets to open sourced and often under a popular license.
The preservation is unparalleled.
Then you're stuck: the community member could certainly fork the project with their new feature, or maintain a patchset and forward-port to each new version of the original software, but both of those things are a ton of work.
Meanwhile, users are the ones who lose out; someone decided to build the feature and give it away for free, but users have to jump through hoops to use it.
As someone who has done a lot of open source work over the past ~20 years, I don't think anyone is entitled to find a business model in there. Sure, if you can find a way to work on your project full time but still support yourself, that's great. But often the ways people do so make for some (IMO) bad trade offs and perverse incentives.
I like the dual-licensing approach, where commercial users need to pay, but that's not workable for all projects.
It doesnt benefit from the massive scale revenue, but if it's paid for your time...
See VirtualBox, and to some extent Chrome. For VirtualBox, I'm sure that the Extension Pack could be covered with an open-source effort by the community, and in the case of Chrome, their refusal to accept *BSD patches.
IIRC, for a while cemu (a Wii U emulator) had builds with support for Breath of the Wild gated behind Patreon early access as well.
Happy that they got rid of it, but there was quite a bit of community pushback needed.
BOTW would still play just worse, then they'd release the next version on patreon and make the last one free.
Now it just runs well.
Checkout the following links:
It seems they got the business model right this time.
Like still being able to watch that old VHS movie on BluRay HD, or listening to Swing records from 1920 in 2021.
I recently paid five dollars for redream Dreamcast emulator. Totally worth it. There's a free version that doesn't run hi Res and that's fine.
They even paid the developer several thousand dollars so that they would improve the debugger function.
This was all unofficial, of course - Nintendo had no idea and would not have been happy if they found out.
https://play.google.com/store/apps/details?id=com.dsemu.dras...
Over one million downloads, price £4.99
;)
Reminds me of a technical document of Doom 3 BFG edition.
https://fabiensanglard.net/doom3_documentation/DOOM-3-BFG-Te...
In 2004, it was a best practice to keep data on memory. in 2012, CPU and GPU performance was increased a lot but memory performance wasn't increased much so calculating the necessary data on demand is faster than keeping it on memory and retrieving it.
You have to aggressively benchmark even across CPU generations to remain confident that your optimization has optimized anything.
We didn’t have experience in games, so our thesis was to make the dumb phones ‘start.’ We actually have quite a few ‘firsts’ (to our knowledge) and ended up with several of our own apps in the Best Sellers list on Verizon.
We were responsible for the first BREw certified app to use the camera (for bar code reading) via a consulting gig.
We launched a Guitar Tuner that was actually quite high quality despite the cheap hardware. It quickly became a best seller and shocked the Verizon rep when people would buy it for $25.
We also launched a Do Not Disturb app that was fantastic. We tried to port that to the iPhone in 2010 but Apple wouldn’t allow it.
I am convinced we were also the very first people to honestly lose and recover a phone using tower based location services while testing a new app we called Secure Phone. Verizon wouldn’t launch that app though because they were concerned about privacy. 2 years later that was a moot point.
Another fun fact about that, Sam Altman launched Loopt during that time. I asked him how the heck he got Verizon to approve it... ‘board member’ was his answer. Smart money for the win.
Not a bad run for a small group of indie developers with no backing. Great memories.
Worms, Zombie Infection, Sims, loads of Fishlab games, a silly GTA clone... Massive nostalgia hit
I expected it just to be the nostalgia, but actually those games hold up pretty well especially considering the limitations of the platform! Certainly they are a breath of fresh air compared to the microtransaction/ads/spin-the-wheel/spyware - ridden games for mobile platforms today.
Our “phones” are now more powerful than gaming PCs from not that long ago, and could easily play plenty of proper PC and console games from a few generations back, and yet the mobile gaming industry is basically just a lucky dip buried in a landfill.
I dream of returning to a free category that is actually free, or with a reasonable amount of advertising.
Apple, which so much “focus” on quality they still won’t reject absolute user-hostile junk.
A few years forward, no zeebo game can be played on non-original hardware that is no longer manufactured for about a decade. These games will become unplayable and unsalvageable too. Although not spectacular, losing part of history is always a dent on culture preservation.
Basically the same happens with the BREW software that won't run anywhere else and brew devices that simply became unusable because they require signatures.
Locked down platforms should be regulated or laws should exist to force companies to open specifications after some time and release signatures.
To be clear as well, the flag he added doesn't explicitly disable GC, it disables asking for GC explicitly, e.g. it makes "System.gc()" a no-op. The JVM will still garbage collect when it's heuristics decide it should.
Will you get better performance? Or will it end up using a large amount of memory and then having a long GC pause that causes your game to drop a frame every now and then?
Now, even the biggest breakthrough indie game with a 5 person dev team wouldn't become a household name. These days it's the studios themselves that get most of the credit. Which may only be fair: When there's 100+ people on a project, it's such a group effort that singling out a handful doesn't really represent the achievement.
(then of course Notch went off the deep end and most communities rapidly began distancing themselves from him...)
He's said some truly awful things. It's too bad people are downvoting you - this is part of the story of gamedev. Carmack would never say these kinds of things. Persson did. One is a famous and well-known and loved developer, the other is relegated to parroting talking points of alt-right/Nazi discussion boards and does not associate much with the rest of society.
Notch could have been more famous and well-loved than Carmack even, but his personality and hatred of minorities stopped that from happening.
Had Minecraft come from a major studio, even hitting it just as big, I don't think we associate it nearly as much with particular devs, and I can't think of another indie hitting it like that in the last decade. But if big names do still emerge, I think it will be from small breakthrough indie teams.
People like danidev: https://www.youtube.com/channel/UCIabPXjvT5BVTxRDPCBBOOQ
It is an interesting trend that players can now become more famous for playing a game than the people that create the game. However I think that's only possible with the advent of user-created content: Minecraft gameplay on YouTube ~2012-2013 was a big driver in Minecraft's popularity and catalyst for mote activity like that. I think gaming culture would have reached this point without Minecraft, but as it stands right now it was the foundation of the massive gaming channels and streaming.
Streaming and gaming personalities both pre-date Minecraft but for sure it’s had a massive cultural impact. Particularly in terms of the growth of an audience through all the kids participating.
Dwarf Fortress comes to mind, and I know it’s made by Tarn and his brother, but I don’t know their last name…but I guess it’s not exactly modern.
Similarly, Kyzrati/Josh Ge, of Cogmind & REXpaint fame, and pender/Brian Walker.
To the point above about “who does the representing,” even though I happen to know their names, I think of them by their monikers, pender and Kyzrati, not their real-world names.
It certainly serves the studios' interests to reduce their talents' market power. If customers recognized individual devs and wanted games made by them, those devs could demand more money and more influence.
With today's game studios though, they aren't the platform owner, so a game dev with a personal brand branching off to do their own thing is still a net loss for them. I wonder if they have rules in place about that sort of thing. I could even take the appearance of something benign & reasonable: "No one talks to the press, everything to the press comes out of PR & marketing"
If that's the case, there may very well be a dozen Carmacks in the big dev studios that made something seemingly impossible happen, and without whom their games would simply have died, or been flops.
Then again with that level of fame, failures hit the individual quite a bit harder than the dev teams as well. Look at someone like Warren Spector, Richard Garriot, or Dennis Dyack. I might read each of their examples as situations where their singular influence on their games and rise to fame ultimately lead to their failures & blame as well. It created a lot of pressure (somewhat self-imposed to be sure) to do something bigger & better each iteration that they eventually couldn't keep up. A situation made worse along the way by financial backers giving them too much money to develop, meaning the devs didn't have to think as critically about what to include and what to prune from games. It lead to games that were a mess of shiny features or broken promises lacking a solid core. Fame cuts both ways.
The reason turned out to be that the game runs a memory cleaning command to avoid bugs arising from lack of space. Since modern computers have 10000x more memory to clean up, these commands now take way more time to complete, and thus slow the whole game down.
The understated insane part of this is that emulating a 100mhz ARM CPU with 128kb of RAM apparently takes gigabytes of RAM to accomplish. What on earth is that emulator doing?
Look up JavaCard which apparently is a thing that still exists. It uses the Java language without a GC - that programming environment is truly miserable to work with.
The thing I don't understand is that the application presumably isn't using any more or less memory than it did when it ran on a 1/10,000x computer. You're not scanning the whole RAM for memory to clean up, just the allocated memory. And on a game that was designed to use 128kB, that's presumably not very much.
Is a reference to both the many enthralling presentations Carmack has given and to https://www.youtube.com/watch?v=X68Mm_kYRjc
Congrats on doing something intrinsically valuable. Using the accelerometer like that so early was slick!
I got an email once from a woman that thanked me profusely for our Do Not Disturb app that kept an abusive boyfriend from harassing her. That felt good.
What an awesome "beginner's mind" perspective. It's too easy to write off a potential solution as difficult or impossible - but why not adopt this attitude, and at least try?
It's very inspiring to read about a problem and having the solution explained as matter-of-factly as here.
You forgot the part where dude in question is a programming Jesus.
After that Android's deceptively straightforward tethering feature was almost saddening...
Ha - you should've seen early iPhone tethering. Back in those days, net neutrality wasn't a legal right yet (at least here in the Netherlands), so the carriers would push a profile to your phone that disabled tethering. The solution, of course, was to jailbreak your phone and install a tweak that turned it back on.
You must live in the future!
Even though I never did get a Sharp Zaurus in the end, I migrated directly from Palm TX Neoo FreeRunner and to Nokia N900 and the rest is history. And I'm running Sailfis OS on my Xperia X now. :)
I realize that your comment was likely made in jest, but it still bugs me.
Given all that he has accomplished and the influence his work has had on multiple generations of computer and gaming nerds, I don't see the celebrity status as terribly unwarranted.
That may be the current reality of the situation, but it doesn't mean we have to keep it that way.
I'm not saying he doesn't deserve his status, I'm just saying let's not get too fanatical about it.
Purely in terms of a programmer. Things he's created.
Everyone should be able to have heroes. You don't need to necessarily elevate them to the level of Gods, but John is very readily a video game real life hero.
(if it did happen for real the most I would do is print out the commit hash with his name next to it :D, because he is one of the people I look up to in CS, others being Knuth and Tarjan among others, I would do the same for them, but then again I don't think they are active open source contributors)
Nonetheless, Carmack is still one of the most impactful programmer of the modern era.
What a coincidence !!! Anyways has anyone still using feature phone, i would love to hear your experience
I have a great Alcatel dumb phone with dual sims and NO OTHER FEATURES. :D That's exactly what you want from a dumb phone. It works just fine on any mobile network today in Sweden. It cost the equivalent of 24 USD.
http://fabiensanglard.net/fd_proxy/doom3/pdfs/johnc-plan_200...
I wonder if there's any 'defense' against this kind of thing.
I was always upset as a massive FF7 fan that there was a canonical game only released for certain (one?) feature phones tied to a Japanese telecom, and despite my best efforts I was unable to obtain a phone with a copy of all episodes downloaded (though I did find some translated transcripts that I could read for the story).
Very happy that it will now be included as a part of Ever Crisis.
I'd compare "Java as solution to everything" to the more recent "web scale" and "NoSQL" crazes, but with the backing of a PR firm instead of Internet echo chambers.
Of course times moved on an companies switched to native apps. I ended up leaving for an accounting startup.
- Never GC via using object pools. This code is nastier than C++ because Java is not intended to be used this way.
- GC whenever needed randomly. The game will just pause occasionally. Very annoying as a player.
- Write the actual game in C++. Make a few JNI calls here and there. On feature phones I only remember this being possible for some vendor apps.
So I think writing a game while profiling allocation rates and paying a bit of attention to not spam new everywhere, one should get decent performance without any framedrops. At most, optimize the hot loops with primitives, arrays.
- Write your game in C++ and transpile it to Java using some fancy framework that dances around never using GC.
Even in modern times, for the longest time Android Java apps had laggy scrolling due to GC hitches that the refcounting iOS Obj-C apps avoided.
They never released android or ios version and probably the company is closed now. one of the best mobile hames I have ever played!
My favorite was the Pirates of the Caribbean: At World's End game which came out as a tie in to the movie, back when every major film had tie in games.
I played titles like Assassin's Creed, and found them way mir entertaining than current smartphone titles.
This way of phrasing it, makes that term look ancient, which is a hilarious way of making me feel old.
Maybe I should try again with the GC off.
On windows I'd expect the default allocator to be a black box, but I might be wrong.
For garbage collection I strongly recommend this book (on top of the source code of your gc if available!) https://gchandbook.org/
The UCRT is at least "source available" on Windows, up to a point, and distributed with the Windows SDK. The release heap codepath is a bit boring:
malloc: C:\Program Files (x86)\Windows Kits\10\Source\10.0.19041.0\ucrt\heap\malloc.cpp
_malloc_base: C:\Program Files (x86)\Windows Kits\10\Source\10.0.19041.0\ucrt\heap\malloc_base.cpp
HeapAlloc: (kernel32.dll alias for ntdll.dll!RtlAllocateHeap() on my machine)
The debug codepath is a bit more interesting: malloc: C:\Program Files (x86)\Windows Kits\10\Source\10.0.19041.0\ucrt\heap\malloc.cpp
_malloc_dbg: C:\Program Files (x86)\Windows Kits\10\Source\10.0.19041.0\ucrt\heap\debug_heap.cpp
heap_alloc_dbg: C:\Program Files (x86)\Windows Kits\10\Source\10.0.19041.0\ucrt\heap\debug_heap.cpp
heap_alloc_dbg_internal: C:\Program Files (x86)\Windows Kits\10\Source\10.0.19041.0\ucrt\heap\debug_heap.cpp
HeapAlloc
HeapAlloc itself is a bit more of a black box (AFAIK), and contains a lot of the fun details about the actual process of heap allocation - although there's a bunch of hooks, debug functions, documentation, articles, alternative implementations (ReactOS), etc.It's trivial to replace malloc/free with my_malloc/my_free - and integrating libraries that replace malloc/free as-is without renaming also tends to be straightforward. In C++, you can overload new/delete to use my_* with little hassle, or placement new to instantiate classes on previously allocated memory directly.
Meanwhile, C# and Java provide absolutely no means of creating instances of their classes via anything other than their built-in GCs. You can't just distribute a .exe or .jar with a replaced GC - instead, you need to create/distribute/install an entirely new runtime, and even that doesn't really provide any sane means of having multiple GCs living side by side. This is all theoretically technically possible, but orders of magnitude more work.
Did Carmack work on the iPhone? Or should I parse this differently?
> Before the iPhone existed, I worked on a few games for what were called "feature phones": Doom RPG 1&2, Orcs&Elves 1&2, and Wolfenstein RPG. Qualcomm's native-code BREW platform had better versions, but I haven't seen any emulators and archives for it, so they may be lost at this point. The J2ME (java mobile) versions are still floating around, and can be emulated.
> My son wanted to get O&E2 running, so we set out on a little adventure. Kemulator ran the game, but audio was glitchy and it hung after you died in game. Well, we are programmers, we should be able to fix it. Unlike most emulator projects, Kemulator turned out to be closed source abandonware, so we moved over to freej2me, which is a live github project.
> The hang didn't happen, but audio was even worse. Missing sound effects was a simple bug fix -- MIDI sounds weren't seeking to the start on replays. We will submit a patch. Still, everything was glitchy with audio underruns. We noticed that the emulator was taking an absurd amount of CPU, despite the game being built for <100 MHz mobile CPUs.
> We spent a frustrating afternoon exploring java profiling tools, but finally, Flight Recorder and JDK Mission Control pointed out the root cause: explicitly invoked garbage collection. A vague memory of having to call system.GC() every frame to avoid problems on some mobile phones bubbled up. We couldn't change the source on the game, but the jvm has a handy option -XX:+DisableExplicitGC that fixed everything right up.
> This is an interesting case where an operation is >10x slower on a modern computer.
> A GC sweep on a phone with 128k of heap is a very different thing than a desktop with a multi-GB heap.
> Some old writing about the early cell phone work: https://web.archive.org/web/20060502175605/http://www.armadi...
Still embarrassing for a tech company of twitter's size. Displaying a tweet to a logged out user should be the single simplest job their service has, but it's usually broken.
I'm a heavy user of Twitter. They have the most ridiculous bugs all the time
Let me list a few I can remind in recent two years:
1. A serious bug that makes the private lists' name, member count, and description visible to everyone for half a way
2. ANOTHER private list exposure bug after a year
3. Lots of their features are semi- or totally broken, the most obvious example being Moments. Some minor ones are like "twitter anniversary" etc.
4. Media files being totally lost/404, especially for some older tweets
5. UI: "Checked" mark for adding people to lists being invisible for at least a week
5.1. UI: some UI elements suddenly become black for a few weeks regardless what theme you use
6. Outage: Like function broken for almost a day
7. Outage: Timeline broken (no update) for half day
8. This probably isn't a bug but a "shadow block" feature, but I can't follow some accounts (and their following/follower count doesn't show) if my IP is in certain region.
9. Huge feature disparity between web and app, or iOS and Android
And needless to say, their support is beyond unhelpful, and they don't really have a proper place to report technical issues/bugs of their service.
Dunno why Twitter seems to have completely deprioritized the issue though. They change the error message every once in a while but nothing else.
It's pretty amusing to me that this modern, high-res, multi-megabyte page has worse usability than when we could just "finger" Carmack's .plan from a terminal 20 years ago.
Maybe we should try to bring finger back. We could pretend that it uses the blockchain to drive adoption.
I basically wont read Twitter threads because of it, perhaps I am better off for it.
And yes, it's absolutely horrible that there are all those buttons and a repeated profile pic intruded at random points in the text, like in the middle of a damn word.
I get that you need to tweet to get views and nobody reads blogs any more but this "Twitter thread" concept is a UX horror.
My only complaint is when the thread is long, Twitter will start not showing it all at once. You have to click the last tweet to see anything after it.
But again, threadreaderapp itself also has trouble to feed all the parts of a super long thread.
edit: in case anyone is interested, here's the code for the bookmarklet to turn the current tweet into a threadapp thread. This is not very deeply tested but it worked with the current tweet above so YMMV:
javascript:(function(){window.location.href = 'https://threadreaderapp.com/thread/' + window.location.pathname.split('/').pop(); })();When it does load, chances are that it only shows one tweet from a thread followed by half a dozen unrelated tweets that twitter thinks I might want to read instead.
But I’d rather him use Twitter than the centralized broken mess that is medium.
On Twitter Carmack posts a paragraph as it comes to him. Could do the whole thing at once. Could take days to complete the thread or longer. It could be as long as he wants. One tweet or one thousand. No real expectations of edits. No one would be surprised if it's only a three paragraph thought whereas going to read an essay that might feel a little brief. Nobody expects really profound or serious insight, just the thoughts on top of his head.
Readers also have the same low barrier to entry. No need to go to a separate page or app. Look at the first or first n paragraphs. Scroll by anytime.
The user experience for something like this may not be perfect on Twitter, but I think Twitter has a lot to recommend itself as the appropriate tool for sharing thoughts like this.
He has enough material to gain a good following.