"Was isolated from 1999 to 2006 with a 486. Built my own late 80s OS" - <AUTHOR> http://imgur.com/gallery/hRf2trV <comment><USER3> I had a similar although not as tragic story of my own. My parents were poor (dad was in the USAF) so we couldn't get a Commodore 64 or Apply IIe/IIc like everyone else had. We got a Commodore Plus/4 because they were literally giving them away. Since I couldn't buy any games for it and there was hardly any software available, I taught myself BASIC and made my own games. Fast- forward 30 years (geez I'm getting old) and now I'm fairly successful (in my own mind) as a software engineer at a Fortune 100 company. I credit being deprived by my parents for becoming interested in computers like I am today.

<comment><USER4> So amazing. I wonder if it's possible to manufacture that sort of limitation nowadays. Not sure if I would even want to!

<comment><USER5> I think the limitations are not main reason why these 8-bit computers produced many good programmers. It's the fact that they booted straight to BASIC. In many cases, that was all you had. That invited people to start experimenting.

My parents were also poor, I learned BASIC without having access to a computer except for one hour a week at school, I didn't have my own computer until many years later, I was fixing other people's computers to earn money to get components for my computer, I didn't have access to internet until around 2000, so I was learning from outdated books. I sometimes wonder what would happen if I didn't have those limitations.

Anyway, Raspberry Pi is definitely the closest thing to the experience now. You boot up the default image and you have access to a lot of programming tools. You even get to peek/poke memory to access the GPIO pins, but you have to do it as root these days. :)

<comment><USER4> I like your hypothesis. Maybe I'll campaign to get BASIC material on Khan Academy ;)

Only semi-kidding.

<comment><USER6> We're developing a BASIC interpreter called retRUNner that's (initially) Applesoft compatible, but will have modern graphics and sound capabilities so users (kids, mostly) will be able to play games like Woz's original Breakout (we have a collection of over 400 listings we'll be shipping with it) and upgrade them to 3D, add art, music, sound effects and so on.

So we're teaching a bit of history along with some coding skills. Down the road we're going to add additional 'dialects' such as Apple LOGO, and Atari, Sinclair and Commodore BASICs, but the Apple II version will be out soon -- I'll be sure to mention it on here when we release it =)

<comment><USER7> for bonus points support all the same PEEKs and POKEs and CALLs that Applesoft BASIC did on the II series. even if it's not strictly part of the BASIC itself, but the integration between it and the hardware/BIOS, it would be nice. technically might be required to correctly run lots of the BASIC programs from that era. I know most of my own relied on them for certain effects.

</comment></comment></comment></comment></comment></comment><comment><USER8> Something about this story does not sound quite right to me. If I were essentially locked up in that scenario, I would at _least_ be confident of the names of the _3_ games which were installed, since they'd inevitably be played to death, regardless of how good they were. Also there's this [http://www.reddit.com/r/australia/comments/2p63rv/australian...](http://www.reddit.com/r/australia/comments/2p63rv/australian_isolated_from_1999_to_2006_with_a_486/cmtpdr5)

<comment><USER9> Also, "Osborne 486, with about 64k of RAM if memory serves me correctly. "

First, a 486 with 64K RAM is ridiculous as they typically had multiple megabytes of memory.

Second, he worked with that PC for 7 years and isn't quite confident of how much memory it had? This doesn't sound quite right either. I can clearly remember the amounts of RAM my first few PCs had, starting from 1999.

<comment><USER10> I don't think these are lies. I think this speaks to the level of technical understanding by the author. He thought 64k. He was writing everything in qbasic-- so a spec like that wouldn't matter. These are some good things to accomplish with basic, but it made sense when you get to the end and understand he is baffled with an ide. The term dos "clone" is weird--- I think he meant a sort of shell written in qbasic. This is essentially a "script kiddy" stuck in the outback. Admirable use of his time. I am scared about the level of worship the comments on the page provide.

<comment><USER11> I think "script kiddy" is overly harsh. Script kiddies can't program, they just run other people's "scripts." He clearly had some aptitude, he just didn't have the books or the right environment to learn what he needed to truly excel.

</comment></comment></comment></comment><comment><USER12> I'd love to go back to those days... 486 with DOS and QBasic, maybe a Borland C compiler if you're lucky enough to have a local computer store that sold copies.

Myself and a friend tried to create our own version of Windows 3.1 in QBasic when we were in middle school. I wish we would have saved our progress. I don't think it was as far as long as I remember. I know it read INI files, and we could drag windows around. Not sure how much else.

OP got to learn how to program the fun way, like a lot of us did in the 90's. Grinding away at crazy side projects on old DOS systems with lots of limitations. That opportunity just isn't available to kids anymore. High powered computers are everywhere and accessible, no reason to make an old PC do new tricks. But I guess they have the web to do crazy things with, so it's not so bad.

</comment><comment><USER13> > I took another shot at coding this year to see if I could build anything > interesting in C++, but the difference between something like QBASIC and a > full blown C++ IDE just ended up baffling me more than anything else, and I > struggled for a bit.

That's a really damning statement about our modern software ecosystem. You see what this guy was able to put together as a kid, and it's impressive. Sure, it was close to 20 years out of date, but it was good-looking and (appears) usable.

Why isn't it as easy for him, with the knowledge he's accumulated, to build software with modern languages, modern tools and and modern libraries as it was for him to build software with BASIC?

<comment><USER14> I don't think C++ is anywhere near the state of the art in terms of usability. I wonder what he would do with something like Python + PyGame.

<comment><USER15> Even if that would offer some usability improvements, we've still lost something in how quickly you can draw a circle and play a sound. Don't forget your header files, can you use hardware acceleration?

<comment><USER16> I evangelize a lot for Processing [1] but it is the best experience I've had for getting to draw a circle as quickly as possible. It's a limited subset of Java included in a very basic IDE, that was developed at the MIT Media Lab. Its original purpose was bringing computation and graphics to artists and designers.

void setup() { ellipse(10,10,20,20); }

[1] processing.org

</comment></comment></comment></comment><comment><USER17> i) In 1990 I was using a VAX computer in high school shared by a whole class and programming in Pascal. The compilation process (executed in a compilation queue) could take a few minutes or half an hour depending of how many people and processes were running that day.

I wanted to imitate this stuff in my Amiga 500, so I joined a friend who knew about electronics and he removed a Commodore 64 keyboard and made the interface to connect to the Amiga as a second keyboard. I made the software in assembler to use the same computer with a single monitor in two windows using two keyboards. A bizarre but funny project.

ii) In 1992 I wanted to make my own graphical operating system. Not in the real sense but in the Windows 3.0 sense. I started doing this in Turbo Pascal and at some point I stopped because my multitasking was cooperative just realizing a few years later that Windows (and Apple!) used this basic strategy too. I felt ashamed of them.

<comment><USER3> you were spoilt by the Amiga's pre-emptive multitasking. It's funny I recall "pre-emptive multitasking" being a big selling point of the Amiga's OS, but I never understood it at the time, I just knew it was better.

<comment><USER17> In which project (i) or (ii) ?

On (i) I took advantage of the preemptive multitasking being able to use the computer by two people in the same computer monitor.

On (ii) I knew that the Amiga was superior than a PC but I had access to more documentation and better programming languages (Turbo Pascal, Turbo C++) on the PC. In the Amiga you ended up doing multimedia stuff with a lot of hardware information about the coprocessors and DMA while in the PC was more straightforward.

</comment></comment></comment><comment><USER18> Astonishing story. I'd like to meed this guy and have a coffee with him.

I have a similar story but not as harsh as his. I started programming basic(not sure which variant) on a small hand held system CASIO PB700. One this system I've created a Paranoid clone and a 4 frame ascii animation. My father saw my aptitude on programming he introduced me to his more advanced systems. He was a computer engineer and had an habit of buying new systems in 1980s. On the newer systems(I don't recall the name) I learned Turbo Pascel. Back then those systems didn't have any storage. MSDOS had to be booted from one 5 inch floppy drive and a new disk had to be inserted to get the different programs.

Every time you compile and run a program, it would take a couple of minutes to read the compiler from the 5inch floppy disk. Those floppy disks were fragile and they had a tendency to developed bad sectors after a frequent read-write session. To circumvent this, my father deployed a ramdrive on the system. A drive would be created inside the ram every time the system boots up, and it would copy the Turbo Pascel compilers and all relevant libraries to that ram drive. So next time you hit 'run', it would take seconds instead of minutes. This solutions still blows away my mind.

Another thing about these old machines, they all came with monochrome monitors. It was all green and had a very low refresh rate. Every time there was a large change on the display, you could still see the previous characters being faded away. Like matrix.

Later I had access to better machines(Pentium 1 133Mhz), but haven't forgot those days. I wish I had more information about those systems to post here, but I am long way from home. Back at home those systems are still all packed up and stacked on top on one another. The funny thing - all them work as if they are 'brand new'.

<comment><USER19> I've finally stumbled upon your post, after reading through all the comments this has gotten.

They definitely don't build 'em like they used to! The Pentium 1 133mhz system I used for a while after leaving is still in top notch shape today. I opened it up last year and there's no dust, rust or corrosion at all (and this is after it sat in a heavily tropical atmosphere for a few years recently). The hard disk is in perfect shape too, the whole thing runs like new.

I wonder how well the Osborne 486 would be running if I still had it, or if someone ever salvaged it out there and is running it today. Kind of a crazy thought but it's a shame to think that it's very likely become part of a landfill.

<comment><USER18> Absolutely. I still have my old machines. Some of them may be dusty but all of them are as clean as new.

I'd happy that you are taking your time to reply to this thread. How are you doing this days? What are you working on?

</comment></comment></comment><comment><USER20> Nitpick: It's essentially impossible that a 486 would come with 64KB of RAM. My 8088 XT clone in '88 came with 640KB. 4-16MB would be more common for the time.

<comment><USER21> Was it a PC-compatible? If so he might have had more memory but been unable to address it because he was running in Real Mode.

<comment><USER11> I'm not aware of a non-PC compatible that had an 80486. In any event, real mode can address up to 1MB of memory, with 640KB available to programs. But I do think you are right. If all he had was DOS and QBASIC, he had no way to go into protected mode. He probably just dropped the 0 by mistake.

<comment><USER22> No, he means 64 kB segments, which is what he had to deal with in the menu based file manager he wrote in QBASIC. That much should be clear if you read between the lines (the goto based text adventures etc.).

</comment></comment></comment></comment><comment><USER23> Fascinating story. If it's any consolation to the author, some of us still use Vi/Emacs, do batch processing in shell scripts, run complicated commands from the command prompt. And when it's time to take a break for some gaming, launch NetHack or some other roguelike -- in a terminal.

To hazard a guess, the biggest "wow" programming languages for the author now would be Python and JavaScript.

</comment><comment><USER24> I'm saddened that most of the comments here are of the "me too, time for my story" variety. The amount of self references is disheartening.

<comment><USER15> I'm saddened that you're saddened by nerds relating to each other, talking about things they actually liked and feeling nostalgia.

Everyone, let's be sure we stick to the real business of HN: gossip about companies which were started for no reason other than to get sold, fighting over the brands of fetishized personal electronics, hagiographies of people like Steve Jobs and Edward Snowden, flamewars about women in tech, and preening about how we personally are the top 1% of software engineers and only hire people like ourselves.

Otherwise, someone might feel saddened.

<comment><USER24> My point is that they are not relating to each other.

Modern conversation seems to be morphing into the art of using others' comments as triggers for one's own monologue. Instead of having the discipline of quieting ourselves in order to comprehend what others are saying, we isolate ourselves into narcissism by placing mirrors onto their heads.

An awareness of this trend may surprise you about how little we actually relate to each other. Rather, we use others to relate to ourselves.

<comment><USER25> "People listened instead of just waiting for their turn to speak" [0] - <USER2> Palahniuk

I have tried probably too hard to not be this person. As a result, i've had literally hundreds of people tell me I'm a great listener. I don't order food at my usual haunts, they just make it. Letting people talk, and actually hearing and giving one flying fuck, is more impactful than I ever imagined.

[0] [http://www.quotationspage.com/quote/37182.html](http://www.quotationspage.com/quote/37182.html)

</comment></comment></comment></comment><comment><USER26> I have a little bit similar, just not so sad story.

I was ~12 years old (around 2004), I really wanted to learn programming but all I had was a cell phone (one of the first budget class phones with GPRS, Nokia 3510i). I had very little access to internet / pc (about 30min/week) and couldn't speak English, Russian, or any other major language.

So I tried to get my hands on any PHP code examples, type it in using my phone, and upload to FTP using some online forms.

Eh, funny times. I wrote a bit more about it [http://blog.gedrap.me/blog/2013/07/30/writing-code-with-a- ce...](http://blog.gedrap.me/blog/2013/07/30/writing-code-with-a-cellphone- back-in-2005/)

</comment><comment><USER10> This quote hurt my head "Windows 2000..., which was basically like 98, but crappier." But provided context for the entire thing.

<comment><USER27> Agreed, basically the most incorrect thing I've ever read on the Internet. Windows 2000 was amazing.

<comment><USER28> Windows 2000 is one of my favorite OS. I barely used XP because I liked it so much I almost went straight from 2000 to windows 7.

<comment><USER29> Mine too - All the stability of Windows NT 4, but with the addition of USB so I could use "modern stuff".

Of all the versions of Windows I've ever used 2000 was my favourite.

</comment></comment></comment></comment><comment><USER30> I relate somewhat to poster's situation, as one of my half-brothers had a somewhat related experience in rural NT, sans the happy ending. If the poster is reading HN, I'd be happy to catch you up on the state of Australian tech. My e-mail is in my profile.

<comment><USER19> I'm certainly reading! And with great interest at that, it's very interesting hearing of the other Australians who were in similar situations. I find it interesting too how a lot of those from America and other countries are quick to criticize the story and are shocked at how "you didn't have a mobile phone at age 13!?" or "I don't believe for a second that he didn't have an ADSL connection in rural Australia in 2002", or even the assumption that all our public schools in the outback of Australia were equipped with the latest in Pentium technology when in fact, some were as far back as 15 years out of date.

Thanks for the invite too. I don't know where I'd start with modern tech. I've been building up more knowledge over the years and started by purchasing each individual part to build my own system in 2009. I'm no whiz but I'd say I have a reasonable degree of literacy nowadays. The one thing I could use help with is getting started in modern programming. My head appears to still be stuck in the idea of using a simple text-editor-style compiler with no additional libraries, headers, (linkers?) etc required. I had a bit of trouble finding good tutorials that actually supplied the relevant libraries, headers etc for the code they were explaining, so it became difficult when they would expect that every new programmer knows straight away what the SDL header is for example, and where it can be acquired from.

<comment><USER30> Outback public schools are lucky if they're equipped with more than one toilet.

There are many good tutorials on the Internet for a lot of things, but many make assumptions for things that aren't specifically code-related (libraries, linking, etc) that can be frustrating when you're starting. Consider it a rite of passage.

If you have any questions on anything (there's no such thing as a dumb question), again feel free to e-mail.

</comment></comment></comment><comment><USER31> This isn't an OS - it's closer to a DOS shell, like Central Point's PC Tools.

<comment><USER19> Yep, it's more or less a shell. I probably should've clarified it a bit better in the imgur description. It's basically a dos shell representitive of my rendition of a "late 1980s OS".

<comment><USER32> Would just like to say thanks for your really fascinating story :) This is the intellectual highlight of my day. Don't let the naysayers get to you. Not sure what you're doing at the moment, but I'm sure you've directed your technical skills towards something that pays well and acquired new ones in the meantime :)

The projects you describe here are obviously works of love that show great technical talent. Too bad you didn't have access to better learning resources at an earlier point in time, but learning is thankfully a multi-decade project. (I also hope your P.O.S. stepfather got what was coming to him in the end).

<comment><USER31> > Don't let the naysayers get to you.

Clarification of facts is not naysaying.

I think what they did was impressive and interesting.

<comment><USER32> I wasn't referring to you; I just found a plausible place to reply to OP. There were plenty of real naysayers in the thread, though. And even more that were just very insensitive. (Again, I'm not referring to you).

</comment></comment></comment></comment></comment><comment><USER33> While I don't have a story quite like OP's, I wanted to share my experiences with old-school programming in more recent history. In middle and high school (2008-2014), I had access to modern hardware, the internet and all those lovely things at home. At school, though, I didn't have access to a computer most of the time, and yet I wanted to program. What I did have though, was a TI-84+SE graphing calculator, with a z80 cpu clocked at 15MHz and 24/128K accessible/total RAM, and 1.5/2.0MB of ROM. Most teachers didn't really care if I just stuck my nose into that thing for the entire class, so often I did just that.

For those not familiar with the calculator, it ships with an OS that provides a shell where the user can input mathematical expressions, as well as a graphing interface. It also provides a program editor where the user can write what are essentially shell scripts for the main interface in TI-BASIC, or run machine code written in hex if the program starts with the AsmPrgm token. It also lets you transfer files from a PC using a usb port on the calculator. You could download and install "Apps" for the calculator. When I was 12-14 I mostly wrote small programs, like Pong and a quadratic factorization utility, in TI-BASIC, and played games that I downloaded in class.

After a while I tired of TI-BASIC because it was _slow_ , and that limited the possibilities. I downloaded Axe, an App that modifies the code in RAM of Kernel's TI-BASIC editor to allow for programs written in a different language, which was basically assembly + a lot of macros and a standard library useful for writing games, or like C without a type system. This code was compiled to machine code on the calculator, and therefore the code ran at a reasonable speed (keep in mind it's still just a 15MHz cpu from the 70s).

With Axe I made some more interesting programs. Unlike with TI-BASIC, where learning the language was easy since the calculators main interface was basically a REPL for the programming language, Axe was hard to learn. I needed to look at external documentation to know what I was dong in Axe, but even though I had a smartphone at this point, I couldn't use it in class, so I printed out the manual to reference it in class. I wrote a bunch of programs in Axe, like a cellular automata simulator, a game of life program, a 4-level grayscale sprite editor (which worked by flickering the pixels of the 1-bit display which had a slow enough response time to create a static gray color if alternated quickly enough). I also learned z80 assembly and used an on-calc assembler and editor called mimas, but editing assembly on-calc was too bothersome with a 64x96 display, so I mostly stuck with Axe.

Eventually I stopped being the nerdy kid who played with his calculator all day, but I had fallen in love with the platform, so even though I wasn't writing code in class, I wrote code for the calculator at home, sometimes on my PC and sometimes on the calculator just because I liked that experience more.

I'll be sad to see these ancient calculators finally phased out of the math curriculum in the US, so that kids no longer get access to that last stronghold of 80s computing. Raspberry Pi is cool, but it's still so much more modern than the calculators, which hurts its coolness factor for me, but more importantly, kids won't have access to it unless their parents want them to get into computing. Soon I see kids only having hardware that seems impenetrably locked down, which is a real shame.

<comment><USER34> > I realized that my work was technically obsolete as hell, and not really of > any value.

For all of the benefits of the internet, I see this as a tragic side effect. Rather than just trying something and seeing if it works, the first instinct is to Google it to see if anyone else has done something similar. Even if you manage to start on something, eventually you'll be exposed to someone who's done it so much better and more thoroughly than you and get discouraged and give up.

Of course, plenty of innovation still happens and people can find inspiration in superior implementations, but the loss feels similar to the loss of biodiversity, or language diversity resulting from globalization -- that is, isolated populations create vastly different solutions to the same set of problems in ways that aren't possible without those barriers.

<comment><USER35> Experience is worth something, even if it comes from toy projects.

The downside of "lazy learning" is you can't know what tools you'll need in the future. I was able to win at one of my favorite work projects because I'd played with signal processing and machine learning for fun.

Had I not, I would've concluded I couldn't beat the terrible solution we had—I wouldn't have had the tools to know better.

And of course, your reinvented wheel might turn out to be an actual improvement!

<comment><USER36> I would say that lazy learning is a pretty big boon overall for both you as a person and society at large. On one hand, you have niche skills that can be applied professionally, and on the other, you can find people with knowledge in some niche subject that they can develop on the job pretty quickly. You will never not find an application for some bit of knowledge.

<comment><USER35> Apologies for the late reply, but that's precisely my point: if I only did lazy learning, I would've missed awesome opportunities.

Of course, I can never know everything. I do both: I learn things as needed to get something done, and I learn things just because they fascinate me and might prove useful later. That latter part—gaining knowledge for the sake of knowledge—has been an amazing benefit, specifically by giving me a better map of what's possible, and how the seemingly impossible might be done.

IOW, I consider lazy learning necessary, because no one can know everything, but not something I'd encourage for its own sake, because sometimes you have to know something before you can know when it'll be useful. I absolutely encourage playing around just to learn more about your craft—you'll learn things that will prove useful later.

</comment></comment></comment></comment></comment><comment><USER37> 486s typically had 4-16MB RAM. To access this memory in DOS a special driver needed to be loaded, EXTMEM386.SYS or something like that from what I remember.

This article really is somewhat misleading, as that is not an OS, rather it is an application running on DOS.

Did the same sort of thing as a kid on an Atari 130 XE. Was a lot more graphical though. It's something you do when your computer is essentially useless :)

</comment><comment><USER38> _In the late 1990s, my parents divorced, and my mother took my brother and myself and had us go live in a very rural area of Australia with a psychopath who was wanted in 3 states. This was our new stepfather, so we were to remain in isolation so that he wouldn 't be found. This being said, we were not allowed to leave the house after school hours, nor use the internet, nor own mobile phones._

Truly shocking that this could happen in Australia. Where were the child support services? Why didn't the teachers notice anything?

 _The rest they say, is history. Mum finally ditched the guy who made our life hell. I was allowed to move back to civilization and had my mind absolutely BLOWN away by Crisis screenshots._

I wonder how old the author was when this happened? Was he still being kept captive as an adult?

This story raises serious questions about the adequacy of child protection and law enforcement in Australia.

<comment><USER39> Consider that in the late 90's cellphone penetration was still low enough that not being allowed cellphones was fairly common, and certainly not something anyone would react to.

Not being allowed to leave the house after school hours, or use the internet is still a fairly common situation for kids in many sects that are not considered problematic enough to interfere with.

What you describe as "being kept captive", others would consider protecting their children from corrupting outside influences (I'd like to emphasise that I absolutely don't think that is right).

That the stepfather in this case seems to have been motivated by hiding from the authorities doesn't make much difference - the point is most schools have students that are in similar situations, so it's not something most schools would see as exceptional and something they can interfere with.

It's a difficult tradeoff in terms of child protection, because the traumatic experiences of being taken into care or disrupted by lots of interference can easily become worse than what the interference is meant to fix, and because the moment you start passing moral judgement over peoples parenting, you're in for a crazy struggle over how it is acceptable for people to raise their kids.

<comment><USER19> That's a very very logical perspective of it, considering it from both sides.

A lot of times, my parents (mother and stepfather) played it off as "he needs to be disciplined etc", although they omitted certain truths when it came time to talk to the police. A punch to the side of the head was a "clip over the ear" etc. The police however seemed not to care, I will never forget hearing their "Ah yeah." reactions to it, but again they face the same thing as mentioned above. Even if you're not legally allowed to hit a child now, it's still seen in some places here as an unwritten omission of law to discipline your child if it is "Reasonable", such as a smack on the bum etc.

Indeed being kept inside the home wasn't really the bad part of it all. I have always been much of a loner, and it was very likely I wouldn't have done much outside of the home. I did sometimes "Run away" for nights, and I would walk through the city or walk out into the country for a very very very long time at night wondering where to go or what to do. Now that I look back on it, I'm actually very surprised albeit greatful that I never was abducted or robbed. But at that point, I didn't really care where I went or what happened because anything seemed better than what was going on at home.

</comment></comment></comment><comment><USER40> I also have a similar, but definitely not tragic, story. In the late '90s my dad got us a ZX Spectrum, so me and my brother learned BASIC and played Deathchase.

Around ~2000 we got a Pentium "75", that is - 75mhz, 16mb ram, 500mb hdd with no cdrom or sound card. I think it had a 2mb S3 video card, and came with Windows 95.

At some point, after some tweaks, you could play Mortal Kombat 4 in a very small window, installed from multi-rar archives on around ~20 floppys.

We had a lot CDs with games from gaming magazines, with "cool" (or so I thought at the time) HTML/JavaScript autoruns, that ran with Internet Explorer 4. Since most of these games (eg. NFS 3) wouldn't run on my PC, I found out how to "View Source", and I basically learned HTML/CSS/JS from them. In 2003 I sold my first "DHTML" menu widget.

</comment><comment><USER41> Throwing my story in the mix: I owned a 386 and a 486 when I was around 9. Hand me down computers. My family was poor and we didn't have the internet and I'm not sure it would have mattered if we did back then. I learned QBASIC and Dos from library books and help files. Made lots of text adventure games and later games with minor graphics. I'm a professional developer now (have been for 12 years). I know multiple languages including python and I still make games on the side as a hobby.

I keep seeing stories similar to mine. I really think we (humans) have lost something with new tech. Simple UI breeds users whereas hard seems to breed developers.

Edit: typed that out on my phone - made some typo fixes.

Also forgot to mention - I never went to school for CS and I dropped out of community college which I attended for graphic design.

</comment><comment><USER42> I can relate too, though my situation was also not that bad. Too poor to buy a computer, learned programming (BASIC mostly for the C64) from library books, and electronics from library books, and general details about PC hardware from magazines. This all without having a computer. Then I managed to repair and salvage enough old PC parts to piece together my first 8086 PC, eventually upgraded to a 286. We were long distance calls away from any city so dial up connections were impossibly expensive, so I learned to hack my way around some online services and phone phreaking to get myself onto the internet in 1993. I then got hooked on Unix and the internet and it became my ticket out of our in the middle of nowhere town all the way to living in the developed world.

</comment><comment><USER43> QBasic... those were the days.

I actually started programming around 2002/2003\. At that time QBasic was of course already horribly outdated. But that was what my school teacher was using. We used it to have direct PEAK/POKE access to the LPT-Port (the big, bulky printer port!). So we connected LEDs and other Stuff to the LPT Pins and made them blink with QBasic (and Windows 2000).

I still sticked to QBasic a while because i refused to learn anything else and C-Style languages just looked scary to me. By the way, if you are looking for a cool, modern, cross-platform BASIC Compiler take a look at FreeBasic. It started out as a QBasic-kompatible Interpreter but now is a Project on it's own.

<comment><USER19> Now that would've been more interesting. I never got to experiment with printing or connecting anything to my own system, but it would've been fun to make something like what you've described.

Indeed C was a bit intimidating to me at first. I took up a TAFE games programming course in 2008 to learn it, but our teacher was an ex-banker and didn't seem to really have any enthusiasm for games, and there wasn't really any "games programming" in the course. I left after getting mugged in broad daylight on a busy road (Mount Druitt is absolutely atrocious, never going back there again!)

</comment></comment><comment><USER44> This OS is interesting enough on it's own, but I want to hear more of the story of how and why it was created.

<comment><USER19> I wrote it up as best as I could in the imgur description, but I'll see if I can summarize it here.

Basically, I was without any modern resources for quite some time. I had a 486, QBASIC and EDIT.com to play with; the rest of the DOS exes etc I didn't want to touch out of fear of buggering up my system as I wasn't very computer literate.

My library had two 1970s books on BASIC which I loaned out (Basic BASIC and Advanced BASIC by James S Coan) and with nothing else to do in the hours after school, I decided to try my hand at it. I played around with it for a bit and built a really primitive "DOS Clone", which relied on a simple series of INPUT's, PRINT's, IF / THEN statements and GOTO. I then also began experimenting with the ASCII Character map which was included in the QBASIC help file, and realized that if I used the correct ASCII codes, I was able to form visualizations on the screen, simple GUIs etc. I combined the two and began adding more and more functionality to it until I eventually named it "OSCI" ("Aussie"). That's pretty much all there was to it.

How: An old 486, QBASIC, and lots of free time

Why: Boredom, curiosity.

</comment></comment><comment><USER45> Where did he get the books? When I was a kid, the DOS interrupt bible was something I turned into a dog-eared nightmare. I wonder if he had access to technical books through his school maybe?

<comment><USER19> I had access to two programming books; Basic BASIC and Advanced BASIC by James S Coan which I loaned out (and frequently over-loaned) from my high school library. I searched intensely during lunch periods at the library for other books on anything related to computers and programming, but I don't recall any other notable computer books.

The books I had loaned out however were dated 1977 - 1978 according to a recent google search. Very obsolete for the time. I'm tempted to call the high school library and see if I can buy them, since they'd be even more so useless for any student who wants to get into programming now.

Better yet, it's just given me an idea, if they still haven't updated their books on programming, I might even see if I can buy a few good modern books on C / Python etc and donate them to the library, along with software. Who knows, it might stop someone else from ending up the same way I did.

</comment></comment><comment><USER46> The story sounds like it has some significant parallels to that of Julian Assange in his teenage years (at least as depicted in the movie Underground). Is he an inspiration to you?

<comment><USER19> I haven't seen the movie, but I have read once that he used to sleep to orange lights as he believed humans would sleep better to it after being accustomed to sleeping by the light of a fire for many many years.

I'll have to look into his early years and see, although I was probably nowhere near. I was a very emotionally unstable and unusual kid after the move to the country. I had zero social skills and a lot of post traumatic stress disorder from events at home. My methods to socializing and living in general were very odd.

I hoarded food and possessions as the cupboards at home were often (but not always) padlocked to keep me from picking my own food out. I would hunt around in bins for discarded food or 5 cent coins to save for canteen food and was referred to as a "scab" quite a bit, but I tended to ignore this, even though I was probably seen as one of "Those oddball kids". I had very little value placed on my reputation.

A lot of my possessions were often confiscated, and anything of special value (ie gifts from my dad) were often smashed and broken in front of me. I had a beautiful Carramar Lava Lamp once that he purchased for me which was destroyed by my stepfather to stop me from staying up at night and using it to read. The trait still sticks with me now; I don't hoard general junk, but I am extremely protective of my current possessions.

Not sure if this ties in with Julian Assanges story. Again I'll have to check it out. He sounds like a very intriguing person.

</comment></comment><comment><USER47> This is amazing. This took me back to the 90's when I was learning BASIC by scrounging for books in our school library. I grew up in Oman and there weren't too many programming resources. So I had to make do with random BASIC books that were often in different dialects (Apple BASIC for example).

I also reinvented the wheel many times and wrote a bunch of silly little programs. It was a great and fun experience and this story really took me back.

</comment><comment><USER48> Two oddities, there's a technical difference between a GUI desktop environment and an operating system, even if the commercial vendors insist they're conjoined twins and alternatives to that worldview are a thoughtcrime. So this is an OS of the Gnome variety, not a OS of the retroBSD variety.

The other oddity having lived thru a slightly earlier era in high school, we did TONS of sneakernet peer 2 peer filesharing using floppies. The stuff he needed would be getting would be kinda obsolete, on the other hand the school had stuff laying around so if you wanted a "turbo C" it was literally sitting in the library waiting for you to copy it. Anyway I'm surprised he never found anyone to trade "warez" with.

In '99 when the story started I already had 5 or 6 years of experience with a linux desktop at home, first with SLS floppy based installs off a BBS, but by 99 I had a couple years experience with Debian, makes you wonder what would have happened if the guy had been on an abandoned isle with a linux distro instead of quickbasic...

</comment><comment><USER49> Looks like typical apps we all created during the early 90s. I taught my little brother Pascal in what seemed like a few minutes (I think he was in 5th grade) and within a weekend he created a file manager that would blow this one away. My brother is very smart but my point is, coding some DOS games or a file manager is not anything remarkable, even if you only had the manual to work from. Most developers during that time period worked from a manual. We did not have StackExchange, haha. Where do you think RTFM comes from? I'm surprised this is trending. If you want to see what was typical of the early 90s, take a look at the Graphics Gems books [http://www.amazon.com/Graphics- Gems-Andrew-S-Glassner/dp/012...](http://www.amazon.com/Graphics-Gems-Andrew- S-Glassner/dp/0122861663) every bookstore in the US had Graphics Gems.

</comment><comment><USER50> What was your experience level before you started this?

I'm about to graduate with a degree in computer science and I would love to work on a long term project like this but I feel like I could never accomplish something remotely close to the complexity involved in your project, especially without outside help like the internet.

<comment><USER51> Reminds me of the story recently about the guy who built a game over what, ten years or so? (Can't find a link right now.)

<comment><USER52> "Babylonian twins"? Made by a Iraqi starting in the 90s.

[http://obligement.free.fr/articles_traduction/itwshihab_en.p...](http://obligement.free.fr/articles_traduction/itwshihab_en.php)

</comment></comment></comment><comment><USER53> Reminded me of the classic 'stuck in a room' reddit thread

[http://www.reddit.com/comments/9x15g/programming_thought_exp...](http://www.reddit.com/comments/9x15g/programming_thought_experiment_stuck_in_a_room)

<comment><USER19> I guess I've answered the threads question in a sense.

Though I wish I'd at least had a basic copy of Windows XP, and a good C++ compiler + some reference books.

</comment></comment><comment><USER54> I find it painful to know that there are people like this who live like this painfully everyday: * people with old computers because they cannot get new ones, * people with old crappy android phones because they cannot get the new kind of phones, * people who are poor and are working on some rundown computer that does not work very nicely because it is worn down, and other people who are just stuck with whatever they have and how we will never hear their story because ... well.

And when I say people, I really mean kids. Heartbreak!

</comment><comment><USER55> "Was isolated from 1999"

So why label it (c) Copyright 1995? [http://i.imgur.com/XSDOXEZ.png](http://i.imgur.com/XSDOXEZ.png)

<comment><USER19> That's a very good question. I can't actually remember any particular inspiration for using 1995 as a start date, but it was probably just a random year to give it an "Authentic" look as if it had been some old shell system for the TAFE that had been in use for ages (ie much like how most software will have "copyright 1996-2014" to certify the date on which the copyright was filed and what the current year was. It was however, never meant to be an authentic piece of software or have any significant numbers, merely written as a brief demonstration that used a few simple commands to list file and directory structures. 2006 was the year that code would've been made though.

</comment></comment><comment><USER56> He should learn python, after wbasic it was the first language I used that was as easy or fun(after years of java).

</comment><comment><USER57> I had a 486 in 1991. If this person had one from 1999 to 2006 I'm amazed it didn't suffer repeated hardware failures. Hard drives die often. I want to believe this isn't true because it's too depressing. I want to believe it's true because people deserve the benefit of the doubt.

<comment><USER19> Today I still have a working Pentium 1 with hard disks in full operating order.

As for the 486, I brought it down to my dads when I moved, and switched to using his much more modern system. It did eventually "die" in 2007-2008. My dad threw it out after the clock chip failed on the motherboard. I was pretty bummed because it sounds like a fairly straightforward fix / such a minor issue, but he's as sentimental as I and referred to it as "an old clunker".

<comment><USER57> Fair enough, pardon my previous skepticism, I hope things are going better for you now!

<comment><USER19> Completely understandable; My modern system has suffered enough hard disk failures to put it in the 2 digit range, and I've gone through around 7 graphics cards. Likely the result of having a computer that is constantly exposed to extremely tropical humidity and sea air. The last graphics card I had to die (only a few nights ago as a matter of fact) has rust on it, and is only a year old.

They don't build em like they used to! The Pentium 1 interior blew me away upon opening it. Not a tad of corrision, rust, or even dust! Also the disks are still in top notch shape and seem to read just fine.

</comment></comment></comment></comment><comment><USER58> Great story. Is it fair to say, if he had had internet, television, cinemas and tons of friends around, he would never have achieved that?

I see our kids every day staring at various screens, being miles away from any creative impulse and getting really mad, if we discuss (or execute) internet access limits.

<comment><USER19> It's very hard to say.

Right before leaving for the country, circa 1997-1998, my best friend was trying to get me into C++, as he was a games dev / games fanatic like I was. I had always wanted to get my hands into C++ and start working with it. It never really transpired sadly as I had no idea where to start.

</comment></comment><comment><USER59> This guy's mother made a terrible and selfish choice :(, I feel terrible for him

</comment><comment><USER60> If there is one story that changed me today, it's this. Kudos to you sir. With no internet/help you still pursued your passion and built this from Ground UP.

Thank you for the inspiration, and have a great career ahead.

</comment><comment><USER61> I only imagine what would've happened if OP was stuck with a UNIX or even better Linux with source code files included.

It would be a really different story I guess...

<comment><USER19> I really wish that I had Linux around that time. It's always piqued my curiosity but I fear I wouldn't be able to think of a practical purpose for it (however that probably also stems from a lack of knowledge about Linux itself and what it can do). I have as much knowledge of Linux and its capabilities as a 3 year old would in driving a car.

</comment></comment><comment><USER62> Totally impressed. Yes, not an os but a shell but still impressive.

Boredoom can easily lead to creativity it seems. And this guy is smart.

<comment><USER19> Indeed, I've re-worked the title to include quotes around the "OS" parts as everyone who states that it is a shell is actually correct. I should've termed it better.

Indeed having no inspiration or having a lot of boredom leaves the mind to create its own entertainment and innovation, however I'd disagree that I'm smart. My code is merely a series of hackery and visual tricks. It technically -does- do what it is supposed to, but it is nowhere near as maintainable, optimized and well written as the code of that of a talented or seasoned programmer.

Thanks for your kind words!

</comment></comment><comment><USER63> Yes, write a book. It would sell like hot cakes to us. You've inspired the shit out of me today!!

<comment><USER19> I'd love to write a larger and more in depth recount of it, and release it alongside the codes someday. I would more than likely release it for free, or if it ever got published, donate a lot of the proceeds to a domestic violence charity.

</comment></comment><comment><USER64> Hey, OP, I'd love to talk to you. Email me at john @ biggs.cc. Everyone else can email me too!

</comment><comment><USER65> Nice to see how necessity is (still) the mother of invention.

BTW, is the guy in jail now?

<comment><USER19> Sadly not as far as I know.

As proven with the recent attack in Sydney (the guy had been walking free with 40 charges against him), my stepfather was in the precise same position. Multiple charges but walking free because the justice system had catastrophically failed.

</comment></comment><comment><USER66> When I started reading this, I imagined the author was going to say, isolated from 1999 to 2006 with a 486 on an island living with a group of scientists called The Dharma Initiative, with no connection to the outside world.

</comment><comment><USER67> Amazing story!

</comment><comment><USER68> did a similar thing in the late 90s. I didn't have a computer besides an old 286 with monochrome monitor because my parents would not let me use a brand new computer because it would affect my school studies as I would play games (they weren't wrong).

I discovered a program called qbasic and started fooling around with it. I did whatever I could on it. It was so interesting.

Then after about a year I got a fast computer because my dad felt sorry for me and I just started using the internet to download emulators and roms. I lost the same level of patience back when I used to have a 286.

Anyways I still remember those times. Magical moments like figuring out how to program. I wonder what would've happened if I had kept going. Sadly, the internet and video games completely took over.

<comment><USER19> Exactly what happened to me in 2006 when I left the country. I wanted to catch up on everything; I had Deus Ex, the Quake series, DOOM etc to get through.

Now if I try and code something, there are too many distractions, yet when you're sitting in a silent basement, your ideas tend to fill your head pretty quick (+ many a hot dull afternoon at school).

</comment></comment><comment> foo-licious Pretty sure everyone that started programming on an x86 and pre windows 95 already did this exact same thing. I did this when I was 8 and did it in a few days. No story here except OP is a slow learner. Sorry but this is true.</comment>


Show HN: React Bootstrap Material UI Kit - <AUTHOR> https://mdbootstrap.com/react/ <comment><USER2> This is a very useful product.</comment>


Researchers find AI is bad at predicting life outcomes - <AUTHOR> https://venturebeat.com/2020/03/30/ai-is-bad-at-predicting-gpa-grit-eviction-job-training-layoffs-and-material-hardship/ <comment><AUTHOR> Mods: Had to editorialize because everything stock from the article exceeded HN title limits. Do as you see fit based on article contents.

Title: Researchers find AI is bad at predicting GPA, grit, eviction, job training, layoffs, and material hardship

Abstract: A paper coauthored by over 112 researchers across 160 data and social science teams found that AI and statistical models, when used to predict six life outcomes for children, parents, and households, weren't very accurate even when trained on 13,000 data points from over 4,000 families. They assert that the work is a cautionary tale on the use of predictive modeling, especially in the criminal justice system and social support programs.

Paper: [https://www.eurekalert.org/file/jrnls/pnas/pdfs/pnas.2019150...](https://www.eurekalert.org/file/jrnls/pnas/pdfs/pnas.201915006.pdf)</comment>


#MillionDollarShack: Story of a Middle Class Family Priced Out of the Bay Area - <AUTHOR> https://www.youtube.com/watch?v=SBjXUBMkkE8 <comment><USER2> This is really nicely produced.

Can someone provide some background for the scene where Mission residents are opposing new luxury condo development? What has been the state of new high density development in SF? Last time I was in SF I didn't see a lot of construction cranes.</comment>


Will robots steal your job? - <AUTHOR> http://www.slate.com/id/2304442 <comment><USER2> This seems like a very negative and selfish way to think about it. First of all, there is no such thing as "your" job. You have a job because you are efficient and make a positive effect for your company. If you are not, eventually you will be fired (assuming you don't work for yourself). If there is someone that can do your job better, there is a good chance he/she/it can replace you. Ultimately the question should be this: Does having a robot fill this position effectively make society better as a whole for humans? I think part of the reason the idea of robots replacing humans appears so negative is that it compromises our self-worth. However, if I can work less and focus on hobbies and personal projects as a result of a lighter work load, I am all for it. The next question is does this eventually lead to discussions of robo- slavery?

<comment><USER3> Food and shelter are more than hobbies, and capitalism doesn't make those available to me unless my labor is in demand. Automation is continually raising the bar on how strong, agile, or smart you must be in order to find a niche. We need to redesign the economy to be more humane towards the growing number who can't, before they revolt (since we've ignored all the more noble reasons to do so).

<comment><USER2> I agree with you, but my idea is that automation makes goods more consistent and readily available, lowering prices. If average human wages are dropping, along with prices of goods/services because of automation, then we are just as well off. If the price of consumption falls faster than human wages, we are better off (from a consumer prospective)

<comment><USER3> I'm all for automation reducing society's opportunity costs for making stuff. But if the market wage for the median person's labor drops to zero, they will be much worse off, and using wages to ration out the newly abundant goods (as well as living space) isn't going to work. <http://marshallbrain.com/manna1.htm> weighs pretty heavily in my thinking as a plausible future, and we're just starting to see the first pebbles of the avalanche as grocery stores replace clerks with vending machines. "Grocery clerk" is a lousy use of human lifetime, but our treatment of the unemployable is currently even worse than that.

</comment></comment></comment></comment><comment><USER4> I should buy a robot, and then get it hired in my place. Then the robot can make me a bunch of money!</comment>


GrCUDA: A Polyglot Language Binding for CUDA in GraalVM - <AUTHOR> https://devblogs.nvidia.com/grcuda-a-polyglot-language-binding-for-cuda-in-graalvm/ <comment><USER2> GraalVM is super exciting. Suddenly the major reason against adopting the JVM for certain use cases has gone away: start-up time. That said, I've spent a couple hours trying to get GraalVM to produce a native image of a moderately complex Scala project (20 kloc) I work on in my spare time, and can't get it to work.

Would be nice because supposedly not only does GraalVM reduce start-up time but features some highly aggressive optimizations ideal for abstraction heavy code/languages (like scala). Would be nice to use because scala generates garbage like it's no tomorrow.

<comment><USER3> > but features some highly aggressive optimizations ideal for abstraction > heavy code/languages (like scala).

Then native image may not be for you yet. Topline performance of native image is currently a lot worse than that of Graal compiler.

> Would be nice to use because scala generates garbage like it's no tomorrow.

Then native image definitely isn't for you yet. The GC of native image is currently a lot worse than what you get with GraalVM / HotSpot.

One of the annoying things about Graal are there are a lot of different things all under the Graal umbrella. Also there are a lot of limitations of native image that people often don't talk about. These limitations basically make it not Java anymore. One person once summarized native image as, "even less Java than Android".

</comment></comment><comment><USER4> This is wonderful news for Java Developers, however my main concern is with CUDA being a proprietary technology, only works on NVIDIA GPU's.

<comment><USER5> Worse, you can't test it without an NVIDIA GPU on your CI server.

NVIDIA used to support software emulation but removed it in 2009. GPUOcelot picked up the torch but is unmaintained since 2015.

<comment><USER4> yeah or even on your local MacBook Pro for development can't use it.

</comment></comment></comment><comment><USER6> It's great to have GraalVM CUDA support, but LLVM PTX output of many languages is full of bugs and missing features. I wish NVIDIA would give more support to those integrations that already exist, but experimental for many years now (i.e. Julia, Rust).

</comment><comment><USER7> What if web browsers included graalvm as an alternative to WebAssembly?

<comment><USER8> You'd lose a lot and I'm not sure what you gain. Sans a few niggles here and there, WASM is pretty great for the web. It's small, lightweight, sandboxed, verifiable, fast to JIT, has fallbacks to ASM.js/stock JS, _mostly_ easy to compile to, simple to build tooling for, etc.

<comment><USER9> The web is anything but small/lightweight and WASM requires a full blown JIT a la V8 to get good performance, so WASM being "small" (relative to what?) seems hardly a benefit.

JVMs are sandboxed and verifiable too, not sure what use a fallback to stock JS is but you can run a JVM in JS (look at TeaVM), it's way easier to emit bytecode for almost any modern language than WASM simply because JVMs do garbage collection for you and it's not really any easier to build tooling for WASM than any other VM.

In the end the main reason to do WASM over other VMs is that this way Mozilla/Chrome guys get to own it, instead of a competing firm.

<comment><USER8> WASM doesn't need a JIT, it needs a compiler. Unlike a standard JIT, you don't need decompilation and instrumentation. WASM is also designed so that browsers can reuse their JS JIT as a WASM compiler. Even from a JIT perspective, the difference between a lightweight JIT (eg. LuaJIT) and the heavyweight stuff used for JS is huge, and then the gap between JS JITs and Graal is a second such chasm. This equivalence is a false one.

Graal is not designed to be verifiable the way WASM is. We learnt enough from applets to not repeat that mistake.

GC is a distraction; WASM's opt-in is much better than Graal's by-default for use as a general compilation target.

WASM wasn't chosen disingenuously. Nothing else filled the role. If something did they would have used that instead.

</comment></comment></comment></comment><comment><USER10> See also: the Futhark programming language.

</comment><comment><USER11> Why should one use this vs. using C/C++ bindings for CUDA and load them in other languages (if required)?

I believe it underperforms in comparison with raw C or C++ implementation, just because of the overhead that goes through GraalVM

<comment><USER12> This is an O(1) solution (one integration works for all languages). You're proposing an O(n) solution (binding into individual languages.) That's why.

<comment><USER11> O(1) as implementation time maybe, but as performance time is O(n)

<comment><USER12> I don't think GraalVM polyglot interop is O(n). It uses multi-dimensional polymorphic inline caching (dispatch chains) which specialises for the number of languages using it, and so the interface between two languages is O(1).</comment></comment></comment></comment>


TXL: a language for text structural transformation, analysis and verification - <AUTHOR> http://www.txl.ca/nabouttxl.html

<comment><USER2> Appearance matters.

The font makes the page very hard to read and lends an impression of silliness to what is obviously a very serious project.

<comment><USER3> It looks reasonable in Chrome on Linux... until I looked at the source, which is littered with <FONT FACE="Comic Sans MS"> tags.

</comment></comment><comment><USER4> Looks interesting but it's non-free software.

<comment><USER5> There is a free software analogue in development called COLM.

[http://www.colm.net/open-source/colm/](http://www.colm.net/open-source/colm/)

<comment><USER6> With respect to Program Transformation, I'd point out Stratego/Spoofax [1] and Kiama [2]

      [1] http://strategoxt.org/Spoofax
      [2] https://code.google.com/p/kiama/

</comment></comment></comment><comment><USER7> TXL has been around for 20+ years now, it's interesting but just never going to be used in production :)

<comment><USER8> It seems to be meant for research and development, not as the asteroid from the lex manpage. It would make sense as a teaching language for compilers, too. The people who need to know how Lex and Yacc work could read the Dragon Book later.

I wonder if Alan Kay and the Viewpoints mob knew about this, and if so, why they bothered with O-Meta?

</comment></comment><comment><USER9> Ad hominem comment about comic-sans.

<comment><USER10> The people who need this (like I did a few years ago) if they notice it at all are still willing to suffer through plenty.</comment></comment>


Show HN: Git-remote-dropbox – use Dropbox as a true Git server - <AUTHOR> http://www.anishathalye.com/2015/08/19/git-remote-dropbox/ <comment><USER2> Why not just use BitBucket? It's free and reliable and is meant as a repository manager. And trusted like GitHub, but BitBucket also gives you unlimited public AND private repos. Did I mention free?

<comment><USER3> I thought it gave you only 5 private repos?

<comment><USER4> No, that's what you get with the GitHub student account (free for any student with a .edu/school email). BitBucket offers unlimited repositories for free.

<comment><USER5> You might also consider our GitLab.com, unlimited repo's and unlimited collaborators, unlike BitBucket.

<comment><USER6> How can Gitlab afford to host unlimited private repos for free?

<comment><USER7> They have enough premium customers, see [https://about.gitlab.com/pricing/](https://about.gitlab.com/pricing/)

Those services add: \- Access to GitLab Enterprise Edition (EE) \- Next- business day support

For a little more: \- 24/7 Emergency Support \- Live installation and configuration assistance \- Live upgrade assistance \- High Availability \- GitLab CI Support

An for a lot more: \- Prioritize features important to you \- Best practices training \- Dedicated Account Manager

<comment><USER5> Thanks, that is exactly how we make money.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Looks good, I had previously used Dropbox for personal repositories, but now I might try using them for shared ones.

It seems from a quick read of the design document [1] that the important thing here is the updating of refs using a compare-and-swap, ensuring that the synchronisation issues that typically occur with using Dropbox as a remote cannot occur. Objects are always* safe from this since the file names are SHA1 hashes.

Edit: The only downside I can see with this is that the remote will never have garbage collection take place, so unreachable objects will continue to take up space indefinitely.

[1]: [https://github.com/anishathalye/git-remote- dropbox/blob/mast...](https://github.com/anishathalye/git-remote- dropbox/blob/master/DESIGN.md)

<comment><USER9> Also since packs are not used (the design document says it stores all objects as loose objects) there is no delta compression. This won't be usable for large repos with lots of history.

<comment><AUTHOR> Yep, no packing and no delta compression. I haven't yet thought of a good way of doing that entirely client side. (If you can think of anything, please let me know!)

The target use case is small personal and group projects.

With the current design, it won't scale that well to large repos with lots of history. The initial clone will take a while. However, individual fetches or pushes after that shouldn't take that long unless there is a ton that changes.

</comment></comment></comment><comment><USER10> Just curious... Given that we have gitlab, bitbucket, assembla, etc. which provide free private git hosting and even more services if you don't need private repo - why would anyone host on dropbox?

<comment><USER11> Some ideas...

\- Mobile apps: ability to browse/create super easily from your iPhone or whatever using any app that integrates with Dropbox

\- Storage space: though not always written in stone, most git hosts expect _code_ and prefer you keep your media, if its heavy, elsewhere. Users of git- annex, largefile, etc. benefit from this.

\- Collaboration: lots of people use Dropbox, not all of them need to use git (or at least, not all the time). See above.

Unfortunately, after reading the readme I see this: "Do not directly interact with Git repositories in your Dropbox folder - always use git-remote-dropbox. If you're using the Dropbox client to sync files, it's a good idea to use selective sync and disable syncing of the folder containing the repository to avoid any unexpected conflicts, just in case." So it's not as rosy as my above points hoped for.

</comment></comment><comment><USER12> Seeing all those "why not use X instead" makes me wonder why it appears to be a binary option? Git lets you use ALL of them. You can push to multiple remotes and even automate things with hooks if you need to. Perfect for backup and redundancy in case any single remote is unavailable...

</comment><comment><USER13> This is also really useful

How to Use S3 as a Private Git Repository

[http://www.fancybeans.com/blog/2012/08/24/how-to- use-s3-as-a...](http://www.fancybeans.com/blog/2012/08/24/how-to-use-s3-as-a- private-git-repository/)

<comment><USER14> For a few pennies more (or less) a month you can use AWS CodeCommit. [https://aws.amazon.com/codecommit/pricing/](https://aws.amazon.com/codecommit/pricing/)

<comment><USER15> Apparently CodeCommit is a new feature (last couple of months?). I had no idea it existed - thanks!

</comment></comment></comment><comment><USER16> Or you know pay $5 and host your git repositories at Digital Ocean or some other VPS provider. I honestly don't get this obsession of tacking on git on top of things like Dropbox. If you're technical enough to understand git then you're technical enough to set up your own hosting server. Just skip the middleman.

<comment><USER17> > If you're technical enough to understand git then you're technical enough to > set up your own hosting server.

I don't agree. Many people use GIT without having any knowledge of the work necessary to keep a server secure all year around.

Amateur git usage is definitely a thing and not necessarily a small one.

</comment></comment><comment><USER18> How about the other way around ... using git + node watch plugin to make a owncloud dropbox?

</comment><comment><USER19> Shameless plug: If you want the data in dropbox encrypted, try [https://github.com/lucas-clemente/git-cr](https://github.com/lucas- clemente/git-cr) :) I think I've also solved most of the concurrency problems, but haven't tested it yet.

</comment><comment><USER20> bare git on dropbox is not dangerous in a multi user setup. I tested it a few years ago, the conflicts are minor annoyances but never destructive nor silent.

[http://edinburghhacklab.com/2012/11/when-git-on-dropbox- conf...](http://edinburghhacklab.com/2012/11/when-git-on-dropbox-conflicts-no- problem/)

<comment><USER21> I think it's mostly not dangerous. The object store shouldn't be dangerous at all. Updating refs concurrently however... I think it is dangerous.

<comment><USER20> It's not, you get a conflict, so someone loses their last ref manipulation and you have to clear the conflict and update the ref again. You have a backup of the repo anyway as you cloned from it. So basically someone has to push again after the repo breaks (this is a bare repo in Dropbox with a local clone setup)

<comment><USER14> Right. And if that happens twice a year and it costs someone 10 minutes to fix, you could've just paid $12/yr to AWS CodeCommit and made money on the deal. Why would you half-ass such a critical piece of infrastructure when there are free and super inexpensive solutions that work properly?

<comment><USER20> I would not dream of doing it in a commercial environment. I do it in things like hackathons when you might be working with a random group, no-one wants to pony up to host it privately indefinitely, and messing around with permissions on AWS and registering everyone is a pain in the ass. Share folder, git init --bare, done. Most people have Dropbox so its super easy.

</comment></comment></comment></comment></comment><comment><USER22> Why not just use visual studio online, it's free for unlimited private repos.

</comment><comment><USER23> >We keep all of our files in Dropbox.

Wrong.

</comment><comment><USER24> Hmmm. I've been storing Git repos in Dropbox for... ages. Haven't tried sharing them, but for a single user I see no need to have an additional piece of software.

I am, however, quite interested in the potential for business-related repos - I guess it all depends on the authentication and transport mechanisms (I assume this will be using Dropbox's auth and TLS API)?

<comment><USER25> Have you used DB for your repos where you work on different machines that are not always on, and therefore there is a sync delay occasionally? And then get conflicted syncs on DB's end as a result when you try to interact with the repo before syncing is done across all machines? There are many headaches to just putting a git repo in DB and forgetting about it -- the one possible exception if you are only working on one machine all the time, with zero collaborators.

<comment><USER24> I use DB across many machines, some "permanently" on, two laptops and a (sporadically on) home desktop. Never had a conflict I couldn't recover from - and the 5-10 minutes some of the machines take to finish syncing are usually best spent catching up on e-mail rather than coding.

<comment><USER14> This is bad engineering. You are asking for trouble. Don't use DropBox for this use case.

<comment><USER24> I've been doing this since Dropbox 1.0. Haven't had any serious issues since 2.x, and the benefits of having my complete working state available everywhere far outweigh the risks.

<comment><USER14> You may be ignoring the risk that people hear you're doing this and decide not to take you seriously as an engineer. There are clever Dropbox productivity hacks. This is not one of them.

<comment><USER24> If people were to form such an opinion of me based on that, I wouldn't take them seriously as peers.

There is no magic involved, and if a git repo ever breaks (which, ironically, last happened on a SCM server), I know enough about the internals to fix it by hand.

(although I would probably simply rewind Time Machine or pull from the central repo if it happened on my Mac - less time and hassle)

<comment><USER14> I just realized that by "DB" you meant "DropBox." I was reading it as "database" and thought you were putting MySQL files on DropBox! Hopefully my strong words make more sense now... apologies!

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER26> I am a bit confused.

This only represents server side right?

You are still not expected to leave the working directory in the Dropbox folder?

Reason i ask - Dropbox's client is very inefficient when it comes to small files.

<comment><USER27> As anishathalye said you probably don't want to keep your git working directory on Dropbox. If you want to share a git working directory between machines, you can use a shared filesystem such as our ObjectiveFS ([https://objectivefs.com](https://objectivefs.com)). Note that if you use git with an OSXFUSE filesystem you currently need to add the "\--quiet" option to work around an issue with signals ([https://github.com/osxfuse/osxfuse/issues/213](https://github.com/osxfuse/osxfuse/issues/213)).

</comment></comment><comment><USER28> I used to mock people for using Dropbox for deployment (by configuring the document root as the dropbox folder).

I hope they won't discover if I start using this.

</comment><comment><USER29> This seems like something Dropbox should be aware of, and actively trying to fix.

<comment><USER29> My point being, if there is such demand from your customers for a particular feature that they hack it together themselves, or endure what commenters have expressed to be "tolerable strange behavior", then you should probably think about offering a solution.

Is it right to host your git repositories in a Dropbox folder? Probably not. Is it their fault? No. Is there sufficient evidence that quite a few people are trying to do it? Yes: [https://www.google.com/search?q=dropbox+git](https://www.google.com/search?q=dropbox+git)

Unless, of course, they've become too big to care.

</comment></comment><comment><USER30> I'm still not sold on the idea of using Dropbox and Git on the same folder. Would anyone mind explaining the benefits of having such setup?</comment>


Emails expose Huawei's bold plan to steal trade secrets - <AUTHOR> https://www.engadget.com/2019-01-30-huawei-t-mobile-emails-espionage-tappy-robot-steal-2012.html <comment><USER2> (2019)</comment>


Which startups started out on credit cards? - <AUTHOR>

<comment><AUTHOR> Did Google, Yahoo or eBay? Others?

<comment><AUTHOR> I read from Founders@Work that Evan Willams had to dip into his Visa (or MC/AMEX) stash to keep Blogger alive.</comment></comment>


Making the 'IMDB for games': how we hope to boost discoverability in gaming - <AUTHOR> https://www.gamesindustry.biz/articles/2018-02-06-making-rawg-the-imbd-for-games <comment><USER2> I assume the RAWG being talked about here is [https://rawg.io](https://rawg.io). Odd that they didn't include a single link in the article.</comment>


All Your Fountains Are Belong To Us - <AUTHOR> http://www.hackthings.com/all-your-fountains-are-belong-to-us/

<comment><USER2> My friend Jeff Chapman would have really appreciated this.

<http://en.wikipedia.org/wiki/Fountaineer>

<http://en.wikipedia.org/wiki/Ninjalicious>

<http://www.yip.org/oases/>

</comment><comment><USER3> This reminded me of something that I came across years ago, strobe lights shifting the "timing" of fountains ( <http://cre.ations.net/creation/the-time- fountain> ), hopefully this summer I can find some time to build one or a combination of these cool fountains :)</comment>


Spark Summit Is Becoming the Spark and AI Summit - <AUTHOR> https://databricks.com/blog/2017/12/06/spark-summit-is-becoming-the-spark-ai-summit.html <comment><USER2> AI seems very broad, why not Spark & ML ?

<comment><AUTHOR> We do have dedicated categories for Machine Learning. I would like to think that Spark ML subsumes those workloads, and using Spark ML, one builds machine learning applications.

Inasmuch as its broadness, we wanted to expand the summit to include AI use cases. As you know AI -> ML -> DL in the broad sense. And the categories allow submissions along those topics.

Cheers Jules</comment></comment>


Sending and Receiving SMS on Linux (2015) - <AUTHOR> https://www.20papercups.net/programming/sending-receiving-sms-on-linux/ <comment><USER2> I've long suspected that the only way to make an actually private/secure cellular phone is by bypassing 3G all-together and making it optional -- forcing the SMS/SIP features of the phone were actually on separate hardware that had very limited integration with the phone itself (essentially as dangerous as any external USB device would be)?

Most smart phones are considered pwned-by-default due to the inclusion of the 3G/4G/whatever chip you have no control over.

Of course, there's the whole issue of distributed trust by way of pre-loaded X509 certs but there are some relatively secure ways around that (keybase, meeting in person and swapping PGP keys, etc) that would move the goalpost far enough to where it might not even matter any more.

Does anyone know anything that's close to this? basically a phone that only uses SDR for connectivity?

<comment><USER3> > _SMS /SIP features of the phone were actually on separate hardware... > basically a phone that only uses SDR for connectivity?_

Not exactly what you're after, but the Librem 5 (crowd-funded, at the head- scratching stage) aims to put the baseband processor in an optional M2 slot with killable power. On a device that runs Debian. From following progress on that project I've got the impression that everything to do with chips for mobile connectivity are so patent/IP-law encumbered that there's little hope for Free Software replacements.

[https://puri.sm/shop/librem-5/](https://puri.sm/shop/librem-5/)

However, hacking on that handset is the best chance I'm aware of for you getting the device you want (perhaps with something else in the M2 slot).

<comment><USER4> > but the Librem 5 aims to put the baseband processor in an optional M2 slot > with killable power.

If that comes true I am definitely getting one.

</comment></comment></comment><comment><USER4> This was an awesome read. I finally decided to resuscitate my old ThinkPad x200s who had a modem card in it, put SIM card in the spot and do some testing. Sammy/fammi worked after some quarrel with ModemManager (not really it's fault, it was doing his job).

By the way this read has resuscitated an old fantasy of mine: adding an indirection layer to my mobile phone presence.

After this testing I am finally sure I can leave my SIM card at home and just use a regular internet connection to poll messages from home. My bigger fantasy is to be able to proxy calls too, so that I can finally leave this third-millennium-leash (my phone) at home.

<comment><USER5> Just buy Google fi, and access/dial your phone calls/sms in hangouts.

<comment><USER4> > Just buy Google fi, and access/dial your phone calls/sms in hangouts.

Please, tie yourself to Google a bit more.

FTFY.

</comment></comment></comment><comment><USER6> It's also possible to do this by sending AT commands via serial - I wrote some python scripts to do so on my Thinkpad: [http://blog.mclemon.io/thinkpad-x250-sms-and-gps-via- python](http://blog.mclemon.io/thinkpad-x250-sms-and-gps-via-python)

<comment><USER7> I seem to recall that Openmoko was built this way.

</comment></comment><comment><USER8> Great read, this spiraled me down a rabbit hole of research, posting it here in case someone has the same questions:

How phone numbers / phones work: [https://www.youtube.com/watch?v=FZsajM6M3UY](https://www.youtube.com/watch?v=FZsajM6M3UY)

How to buy a block of phone numbers: [https://www.siptrunk.com/2015/12/how-to- find-did-number-bloc...](https://www.siptrunk.com/2015/12/how-to-find-did- number-blocks/)

I'm trying to do a thought exercise on how I might approach building a Twilio side project, but after I buy phone numbers from sipTrunk, I wouldn't know how to connect it to sim cards.

<comment><USER9> Depending on what you want your project to do, you don't need to connect a phone number to a SIM card. Twilio does that for you, letting you use their API to send and receive SMS (text) messages with other phone numbers. It's the recipient's phone number, not your Twilio one, that's connected to a SIM card.

What the linked post here talks about is using a device that's basically a mobile phone in a USB stick form factor to send and receive SMS like you'd do on a mobile phone. You buy a SIM, insert it into the device, and start texting. That's the other side of what your Twilio project would do.

<comment><USER8> Oops I reread my statement and I think I miscommunicated. I meant I'm trying to figure out how I might build Twilio (the product). OP's article shows how to send/receive texts (check). I don't know how Twilio buys numbers, and how I might build a service that buys numbers for people.

</comment></comment></comment><comment><USER10> I've inherited (then reinstalled) a monitoring system using SMS Tools. The modem has a long USB cable, and an external antenna. I positioned the antenna on top of the rack.

It's in the middle of the ground/machine floor of a large building, so there's a lot of thick concrete walls around, but it gets a good signal and reliably sends SMS alerts to me.

</comment><comment><USER11> The same project using an SMS modem , kannel and Django [https://hackernoon.com/build-an-sms-center-with-python- kanne...](https://hackernoon.com/build-an-sms-center-with-python-kannel-and-a- gsm-modem-9c0d29560d82)

Edit: and a repository of modems that can send SMS on Linux is here :P [https://wammu.eu/phones/](https://wammu.eu/phones/)

</comment><comment><USER12> For personal usage: if you have an Android phone and are not bothered by web ui, you can use [https://messages.android.com/](https://messages.android.com/)

<comment><USER13> Side note, is it just me, or is the Android Messages app really laggy? Especially on the phone, there is a significant delay from when I hit send to the message popping up on screen, to the point that I frequently get the "Messages has stopped working, would you like to stop it" dialog. It has been slowly getting better, but it's still surprising in such a high-profile app so I'm wondering if it's something specific to me.

That said, I recently switched to AM from Pulse (which also has a webui). I quite liked Pulse, but the web interface had a lot of trouble staying in sync, plus it requires a subscription to use the web interface. Also tried MightyText, but $7/mo is ridiculous and it also had sync issues. Android Messages seems to have really nailed sync across several devices, which is pretty important to me.

<comment><USER14> I have the exact same issue (on a Pixel 2 XL). It started a few months ago, and has been getting progressively worse.

</comment></comment></comment><comment><USER15> > So, we got hold of a USB GSM modem and used a prepaid phone SIM. This > allowed us to receive unlimited messages for free.

Keep in mind it is common (at least in EU) for mobile providers to forbid M2M and M2P traffic when using typical customer tariff plan, especially ones with unlimited messages. It's quite easy to detect it and SIM cards used in such way are blocked rather quickly.

<comment><USER16> Read again, it was receiving.

</comment></comment><comment><USER17> The first mistake in the article is using smstools. Having personally had to deal with smstools for the past two years, using Gammu SMSD or even a paid SMS Gateway would have been a better choice.

Granted, this was on OpenWRT using a frozen version of smstools and largest issues were with trying to get Å, Ä & Ö to work (fun times with UCS-2/UTF-8/WTF-8 and Latin1/CP-1502/ISO-8859-1). It sure was an experience and in the end, the problem was blown away by just using UTF-8 (which had the unfortunate side-effect of doubling the amount of sent messages due to the space taken by the encoding).

What puzzles me is how easily large entities go for services that send from a random phone number (for example, VR in Finland sends "mobile train tickets" via random numbers that change with every message) where as some opt to "fake" the from number to have the company/service name.

</comment><comment><USER18> Btw. if its just about replying to an SMS manually, tools like kdeconnect [1] can be handy which allow you to write SMS messages on your desktop and send them via your smartphone.

[1]: [https://albertvaka.wordpress.com/2016/08/26/kde- connect-1-0-...](https://albertvaka.wordpress.com/2016/08/26/kde- connect-1-0-is-here/)

<comment><USER19> I worked on adding SMS support through 3g sticks for KDE too, using KDE IM/Telepathy a while ago. Fun times.

[https://hashpling.wordpress.com/2013/08/22/sms-messaging- wit...](https://hashpling.wordpress.com/2013/08/22/sms-messaging-with- telepathy-gsoc-update/)

</comment></comment><comment><USER20> Before anyone thinks of implementing this for large-scale notifications/outbound SMS with one SIM card and an "unlimited" SMS plan for $40/mo, be aware that your cellular carrier will rate limit or cut you off completely pretty quickly if you use it for bulk SMS.

There's a reason why various VoIP providers have APIs and bulk SMS rate pricing.

</comment><comment><USER21> Great project, definitely going to do this. I've been wanting a setup like this to use with the Gnokii(1) toolkit for sending SMS class 0 messages. Maybe this toolkit can do this as well.

Curious if anyone else here has tried this as well...

1: [https://www.gnokii.org/](https://www.gnokii.org/)

</comment><comment><USER22> You don't need any of this stuff. It might be technically cool to do SMS now, but there is an android app for SMS Gateways. Just have an extra phone that sits around and sends SMS all day long. Much cheaper than Twilio if your sending large amounts of text messages.

</comment><comment><USER23> Is it possible to write an Android/OS app that has full control over SMS, and have that app connect (as a "node") to a central server for sending/receiving messages? Then, if you need more throughput, just turn on some more phones?

</comment><comment><USER24> Is there a way to something similar to this but for MMS?

</comment><comment><USER25> gammu-smsd looks simpler to me.</comment>


Typesafe raises $14M to commercialize Scala - <AUTHOR> http://techcrunch.com/2012/08/22/typesafe-raises-14m-from-shasta-greylock-and-juniper-to-commercialize-scala/ <comment><USER2> Congratulations to the Typesafe team. As a regular user of Scala, it is very welcome news to see the commercial arm succeed.

It's interesting to watch hybrid open-source/commercial enterprises develop. Getting the revenue stream right is tricky. I could really see the Typesafe Console growing to offer a whole host of monitoring around distributed computing. If Typesafe provided a wrapper around Hadoop that would be a welcome addition.

<comment><USER3> Glad to see this. As a longtime Java developer I've found Scala has made coding for the JVM fun again.

<comment><USER4> Feel the same way. It's hard to go back to Java after Scala and, depressingly, at work I have to :( How do I convince my colleagues to embrace the possibility?

<comment><USER3> Best bet is to write something awesome with it, and mention by the way that it's written in Scala

</comment></comment></comment></comment><comment><USER5> The coverage at GigaOm provides a bit more substance.

[http://gigaom.com/cloud/typesafe-gets-14m-to-push-scala- as-a...](http://gigaom.com/cloud/typesafe-gets-14m-to-push-scala-as-a-better- java-than-java/?utm_source=social&utm_medium=twitter&utm_campaign=gigaom)

And there's the Typsafe blog from the source:

<http://blog.typesafe.com>

</comment><comment><USER6> In the meantime, in the alternative universe I wish I were living in, the same thing happens to the company behind the widely used Clojure programming language...

<comment><USER7> I think Rich knows that you can't sell a technology or language, you have to sell a product. That's why he did Datomic.

That said, I write Scala at my current job and am super excited that Typesafe got this funding. Please, Typesafe, follow Rich's lead. Make a real product backed by a technology, not a bunch of libraries! I want you to be around for years to come.

p.s. we're hiring. You don't even have to be super smart, just be passionate. owreese AT gmail DOT com

<comment><USER8> > That's why he did Datomic.

That's definitely one reason. I'm willing to bet the other reason is that he believes that the world _needs_ Datomic. Because it really, really does. His talks make it clear that he deeply understands that.

<comment><USER9> The world needs another piece of closed source, proprietary infrastructure written in an obscure language?

My number one rule for infrastructure software: never, _ever_ build your business on closed source software. Doesn't matter if it's free, or costs tens of thousands of dollars per month to operate, or is written by a superhuman like developer. You will be hurt Every. Single. Time. if you do.

<comment><USER8> > another piece of closed source, proprietary infrastructure

No, the world needs a modernized view of the relational database model.

> an obscure language

The APIs are Java-first, Clojure-second. The implementation is a mix of the two. Java isn't that obscure...

> never, ever build your business on closed source software.

I agree with that. Ask any one of my new coworkers how they feel about this company's dependency on Oracle and they'll tell you that they learned that lesson.

I'm not proposing that you take a dependency on Datomic for your startup. I'm saying that there are a lot of enterprises who have no choice, but to take dependencies on things they don't understand because they aren't software companies. Microsoft's entire enterprise business depends on people who want to outsource infrastructure to somebody else, and those customers pay enough money to secure the future and direction of that infrastructure. Rich Hickey & co can capitalize on that group of people. He gets to help them and they'll pay him for it. Along the way, database systems will adopt the improvements and new ideas that Datomic is leading the way with.

</comment></comment></comment></comment></comment><comment><USER10> I feel someone should mention this here: Less than a month from now Martin Odersky himself will begin teaching a free online course "Functional Programming Principles in Scala".

<https://www.coursera.org/course/progfun>

</comment><comment><USER9> Well, as someone in the last two weeks who:

a) already is using Scala

b) already is using Akka, and

c) wanted a monitoring tool for both (which is part of the "Typespace Stack")

and contacted Typesafe about their subscription, I can tell you that none of this matters for people on HN, product-wise. Their "console" is an obscene amount of money _per node_ per year. Yes, PER NODE.

With just a few nodes, it's literally cheaper to just build it yourself, even if you had to hire a Scala contractor to do it.

So forget scaling linearly up with Typesafe's actual product – you can't afford it.

That said, Scala and Akka are awesome and at least they'll continue to be developed for awhile now.

Play! 2 is cool as well, but being limited to one Play! app per JVM is something we couldn't live with, so we've moved on to Socco.

<comment><USER11> What is Socco? Google didn't turn up anything.

<comment><USER12> I'm guessing: <https://github.com/mashupbots/socko>

<comment><USER9> Yup, that's the one.

</comment></comment></comment></comment><comment><USER13> This is great news for the Typesafe Stack. While Scala is bigger then just Typesafe I am glad to see some real support behind the awesome set of libraries they put out.

</comment><comment><USER14> That is good but I have used Scala before and would not recommend it for an enterprise project. It was rather convoluted and had lots of concepts that just would not make sense to the java programmers in our company.

There would be teams that could have used it and thrived but overall the complexity of the language seemed to outweigh any reasons I could give to use it.

I wish them the best but I think they will have a hard time getting Scala into the enterprise. For smaller companies it probably would make sense.

Ah well not trying to be a downer. :)

<comment><USER15> Complexity of Scala has been debated many times. Just because a language adds some new concepts and is different than other mainstream languages, is not enough to call it "complex".

Before you answer question about whether Scala is complex, try to answer the following questions first:

Is JEE complex? Is Spring Framework complex? Is Maven complex? Are webservices complex? Is C# complex?

They are, they introduce new concepts and in many ways they have much more rough edges than Scala (remember JEE 2.1?). Somehow all of them have been widely used in enterprise software development in many successful projects.

I'm surprised by how much flexibility Scala offers with so few simple concepts. Ok, you have to take some time to learn them. But this is the same as learning just _any_ new API.

<comment><USER16> > Complexity of Scala has been debated many times. Just because a language > adds some new concepts and is different than other mainstream languages, is > not enough to call it "complex".

It seems to me that the JVM community has moved on from Scala and is actively looking for a language that offers most of the benefits that Scala offers without the downsides.

Kotlin (from JetBrains) and Ceylon (from RedHat) seem to be the first two languages with a really interesting take on this problem. Gosu and Fantom are similar attempts, although I think these two already failed to gain traction.

<comment><USER15> To be honest, by the time they are ready for production, Java 8 will provide the most of the features they are promising. So for developers who only want to have lambdas and slightly better libraries (like ability to call filter on a collection), there is no need to move. Just wait for Java 8.

On the other hand, for programmers doing some more serious stuff than just moving data from database to the website, they offer too little to be attractive, and they actually haven't solved any problem that Scala hasn't solved (Ceylon's generics reification - a good joke, man). They are nowhere near Scala in expressiveness and flexibility and being only slightly better than Java is not enough for power-coders. There were some languages targeted as "better Java", e.g. Nice long time ago and they also failed.

From the alternative languages for JVM, currently only Clojure and Scala (and probably Groovy too) got some serious usage in industry. All others are still in kindergarden.

</comment></comment></comment></comment><comment><AUTHOR> Great news! There's more details on the company's blog, too: [http://blog.typesafe.com/typesafe-announces-14m-series-b- fin...](http://blog.typesafe.com/typesafe-announces-14m-series-b-financing)

</comment><comment><USER17> "The company was actually founded by the creators of the Scale and Akka programming languages. The Typesafe Stack, which is compatible with Java, combines the Akka middleware framework"

So, TechCrunch, is Akka a programming language or a middleware framework? High-quality reporting as usual from TC.

</comment><comment><USER4> I'm really rooting for wider adoption of Scala. I think the language hits a real sweet spot and I've been trying to transition to more scala for my android development. It's frustrating when I'm told by colleagues at work that they're basically not interested in doing projects in scala because "our clients sometimes need to be able to understand the code" or whatever other lame excuses.

</comment><comment><USER18> Heh. Clearly the investors didn't do their due diligence, otherwise they would have known that Scala isn't type safe.

<comment><USER18> So I get downvoted for pointing out the hubris of naming your company TypeSafe when your language isn't?

<comment><USER19> I'm guessing you got downvoted because it's a silly point to make. Companies have stupid names all the time. No investor is going to care about that.

<comment><USER18> There are stupid names and there are misleading names.

<comment><USER3> There are nitpickers and Nitpickers with a capital N.

</comment></comment></comment></comment></comment><comment><USER20> Dear Typesafe

We are glad you got funded and wish you all the best

Signed: Oracle's legal department

<comment><USER21> Scala's on top of Java and the JVM; not a reimplementation of it. Oracle appears to be okay with this, and sometimes encourages it.

(Not to imply I'm condoning Oracle's attempted legal smashing of Dalvik)

<comment><USER22> > Scala's on top of Java and the JVM; not a reimplementation of it. Oracle > appears to be okay with this, and sometimes encourages it.

Oracle could change their mind at any time. Some people at Sun appeared to be Ok with Android and sometimes even encouraged it.

<comment><USER23> What could Oracle do if they changed their mind? Serious inquiry, IANAL, etc etc... I like to avoid speculating about the intersection of tech and legal issues, but is Scala in a very different place than other languages targeting the JVM? Are there any actual legal issues with writing a compiler that emits Java bytecode? This has been going on for a while, maybe as long as Java's been around. There's even some mention of it in the intro to the JVM spec.

<http://en.wikipedia.org/wiki/List_of_JVM_languages>

[http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-1.htm...](http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-1.html)

</comment></comment></comment></comment><comment><USER24> This makes me happy and relaxed. Personally I would really like for Typesafe to be successful with their Scala products and consulting. It would only make Scala prevail and have more support for people like me (who have Scala in their development stack). Contrats!

</comment><comment><USER25> I anticipate lots of companies commercializing various FP-ish PLs blossoming in next 1-2 years.

</comment><comment><USER26> Any one know what the Series B valued Typesafe at?</comment>


Am I a bad developer? - <AUTHOR> https://medium.com/@harrisondavis/am-i-a-bad-developer-166e805c44df <comment><USER2> The ad for Endtest felt completely out of left field, enough for me to completely stop reading to see if the author was affiliated. All his medium articles has a link to the website.

<comment><USER3> Agreed. It's a copy of the original article with that ad inserted. I'm surprised there's even a link to the original.</comment></comment>


Why I Dumped My iPhone—And I'm Not Going Back - <AUTHOR> http://www.good.is/post/why-i-dumped-my-iphone-and-why-i-m-not-going-back/

<comment><USER2> I expected an "Android usurped iPhone 2 years ago and has never looked back" type of article. However he makes a point that was something I had a long struggle with. I too, could not help myself and would incessantly check my phone for facebook, twitter, or email updates. It affected every aspect of my life, and I knew things were bad when a co-worker mocked me with a swipe of the finger to a virtual iphone and every one knew instantly that he was making fun of me. I didnt stop then.

I really dont know how or why I stopped letting my phone rule my life. I think I would post a blog about it if I could figure out what switch was "flipped" in my brain that caused me to change. It happened pretty suddenly, but one day, I closed my facebook and twitter accounts. I stopped instinctively reaching for my phone every time I got an email. I stopped using it as a crutch in awkward social situations. I am not sure what the point of this post is other than I was hoping that typing it out would give me insight into how I did it. I really just think a sea change happened and I realized that my phone didnt have control over my actions anymore...

</comment><comment><USER3> Although the modern smart phone is to too great an extent a way for advertisers and vendors of time-wastes like mobile games and movies to sell to me more effectively, I do not want to go back to the bad old days before the iPhone when the oligopolistic carriers largely dictated what software ran on most kinds mobile phones.

</comment><comment><USER4> You are so right, great article. Unfortunately, I need to carry one with me because of work.</comment>