Why do so few people major in computer science? (2017) - <AUTHOR> https://danwang.co/why-so-few-computer-science-majors/ <comment><USER2> One possible theory that's not mentioned in the article is that CS has probably become less approachable for those who don't enter college already somewhat versed in at least the basics. Something that is pretty much not true at all for any other STEM major.

I don't do a lot of programming myself, but I took an intro Algorithms in Python MOOC from a top school a while back. I think it's fair to say that, had I no appreciable programming/using a computer background, the class would probably have been impossibly difficult for me.

<comment><USER3> It's also less approachable for those that do know more than the current class being taught. I had been privately and self taught, going to a CS degree and learning the professor's dry and mangled way of teaching client-server architecture was like derailing a train I had been building for years and trying to drag it all the way back to the start.

<comment><USER4> Did you finish though? I've got a year and a half remaining and I'm working on some side projects and thinking about not finishing the remaining year...

PS. We have to study PHP and "AI" next year here. And the final semester is an unpaid project at some local company.

<comment><USER3> No I quit and moved to the other side of the world for a woman.

Do the side projects pay and have a future? Otherwise enjoy graduating with connections. You can quit future jobs to start a side project anytime (assuming no responsibilities).

</comment></comment></comment></comment><comment><USER5> I'll be honest. CS doesn't teach you how to program (anybody can learn that). CS teaches you how to think critically and analyze problems.

Also CS is just very difficult, especially with all of the theoretical courses. At a certain point, it becomes a test of your resolve as a person vs your ability to program.

<comment><USER6> > CS doesn't teach you how to program (anybody can learn that). CS teaches you > how to think critically and analyze problems.

And in my opinion that's perfectly fine. On the other side many jobs that are "just" programming really shouldn't require a CS degree. It should be up to the job market to come up with reasonable requirements, not the Universities to churn out graduates with a different skill set to comply with the market.

> At a certain point, it becomes a test of your resolve as a person vs your > ability to program.

I feel like this sentence goes somewhat counter to what you said before. If CS isn't primarily about programming, which I agree that it isn't, why should it be a test of my ability to program? I disagree that it's merely a test of your resolve, however. Sure, you need to have resolve to complete a hard degree, but the same applies to many other subjects.

I'd much rather say it's a test of your ability to think abstractly, generalise and recognise patterns.

</comment></comment><comment><USER7> Having completed most of CS undergrad, I can think of a reason that would discourage people to transfer into CS. Programming assignments usually take the most time to complete by far. As much as half of that time is wasted trying to decipher ambiguous requirements, unclear source code, or some other symptom of careless design and what seems like a total disregard for the student's time.

<comment><USER8> Very much agree with this. In some ways it appears intentional. To avoid "giving away the answer" professors will sometimes hand you a very fuzzy set of loose rules, perhaps 2 example test cases and you're off to the races.

It's funny because you can read about the same exact algorithm in Sedgewick or CLRS anyways, so I don't know who they're trying to fool.

<comment><USER7> Every time it happens it feels like my productive work hours are being stolen from me and there is no recourse. I'm considering (am going to, haven't had the time yet) billing my professor for time wasted.

</comment></comment></comment><comment><USER9> Algebra is just math, and information sciences entail more.

People go to university while they should go to school instead since universities are primarily about the progress of science while schools are not, but do primarily cater to the desire to have a job. At the end of the day, the desired output of both institutions suffers.

In Japan, what many people would call basic "CS" is being taught at elementary schools in order to prepare the youth for the future... And in case my argument is still not clear, they don't receive a CS degree for their accomplishments as its nothing but yet another basic prerequisite fulfilled.

</comment><comment><USER10> Previous discussion with 600+ comments (which is linked at the bottom): [https://news.ycombinator.com/item?id=14440507](https://news.ycombinator.com/item?id=14440507)

</comment><comment><USER11> A CS prof of mine said studying CS to later do programming is like studying architecture to later be a house builder. I find it an apt comparison.

<comment><USER12> Many (FAANG and other) companies interview with algorithm puzzles that are fairly well aligned with undergraduate algorithms courses. Perhaps one purpose of such interviews is to select people based on how recently they took an undergraduate algorithms course or equivalent.

<comment><USER13> This is the only reason I can think of for still using this interview technique.

<comment><USER14> They use it since it correlates better to later performance review scores than anything else they have tried.

<comment><USER10> The only way they could know that is if they occasionally hired someone who failed the interview to see if they also fail at the job.

</comment></comment></comment></comment></comment><comment><USER15> People hit calculus, which is almost never needed in the job market, and they give up.

Lots of math and hard science is in the major. It's not an alternative to the humanities and liberal arts and languages. It's done in addition, which just isn't fair at all. Students take two or three semesters of calculus-based physics, three semesters of calculus, two semesters of discrete math, engineering statistics, linear algebra, differential equations, and often even more science.

A person majoring in education could skip all that, even if intending to be a math or science teacher.

<comment><USER16> >People hit calculus, which is almost never needed in the job market, and they give up.

This.

I tried going back to school for a CS degree at 26 after 5 years of professional experience in the bay area as a developer. The CS classes are trivially easy, but I simply could not do the math. I paid for tutors. I lived on Khan Academy all day long. I tried three semesters in a row to pass calculus and just couldn't do it. The vast majority of people simply cannot pass the math classes required for an engineering degree.

<comment><USER17> How many questions did you do with pen and paper, without access to any outside help (book/tutors/videos)? If you start with trivially easy questions (d(x^2)/dx = 2x) and do 1000-2000 questions with very minutely increasing difficulty level, I am sure you would ultimately pass the course.

Questions you do with others, or examples from the book are useful for conceptual clarity, but that clarity can only be guaranteed to be solidified if you successfully do questions without help.

People often think you don't need practice to master math, but don't bat an eye when they see professional football players passing the ball to each as warm up before a big game (after having played the game for 20 years and passed the ball 100k times already). Fundamentals are important. I just started learning drums, and my music teacher has been making me practice the same beat for the past 3 months over and over again till I absolutely master it. Me and every other student is happily doing it.

</comment></comment></comment><comment><USER18> I graduated in CS. The education helped me in two ways:

1\. Getting an internship and then a job at a large enterprise company right after graduating.

2\. About 5 years in professional software development, I was starting to be included in architecture and system design discussion meetings with key decision makers on large projects. Where my non-cs colleagues with the same skill level could not keep up with the conversation.

During the time in the between, what helped the most was having the discipline to follow through on finishing small projects that would fill the gap in areas of software development that I didn't understand at the time.

I can see why most would be programmers would not want to study CS as it won't immediately help them become better programmers. In the long term, I feel that its worth it to have a grounded education in the industry that you work in. After a recent trip to the Bay Area, it doesn't feel that many new grads are about that dev life. The sentiment is get that 4-year, 1-year cliff and FIRE([https://en.wikipedia.org/wiki/FIRE_movement](https://en.wikipedia.org/wiki/FIRE_movement))

<comment><USER19> There is absolutely nothing about modern system design that my CS degree from close to 25 years ago would have helped.

Anyone can learn proper system design by working in the field and being exposed to proper design first hand.

</comment></comment><comment><USER20> One theory could be that people do not simply have the previous experience in CS the same way they have it from physics, biology, chemistry and math from college or even before. I for once was interested in physics, started in electrical engineering but transferred quickly to computer science just after few mandatory courses I had taken.

<comment><USER2> As I wrote elsewhere, my money would be on the opposite if anything. Yes, there are base level science courses in high school. But you can sign on as a chemistry, physics, or mechanical engineering major with very little beyond some basic aptitude and interest.

At many schools, on the other hand, if you're following the CS curriculum you're starting off with topics like algorithms and effectively teaching yourself programming and maybe even how to use computers in parallel. This has changed a lot over time. When I got my non-CS engineering degree way back when, the one computer course I took was really a programming (FORTRAN) course that assumed zero prior knowledge.

<comment><USER20> My point was perhaps more on how much you actually get exposed CS as a subject before deciding it as something you would like to pursue in the future, unrelated to actual skill or interest in it. As an oversimplified analogy, in general, would anyone consider becoming a professional musician without having being exposed to instruments or music as a creative art form i.e. something you can actually learn and do? A hypothesis would be that if CS curriculum would be added more heavily to prior education, the amount of people majoring in CS would also rise.

<comment><USER2> Yes, in music (and much of the arts), there's an expectation that if you're enrolling in a program at school you have some degree of prior exposure.

But mechanical engineering? Chemical engineering? Economics? I'd argue that kids going into those fields may have read a bit and maybe tinkered a little at the periphery. Maybe in the case of ME they were in a robot competition. Etc.

But, in the case of pre-calc physics in HS for example, it barely gives a hint of what being a physics major would be like.

I actually don't know how much exposure to programming there is in HS. I assume essentially no "CS" per se but then, they wouldn't have the math for the most part. But I'd argue there are actually a lot more opportunities to get exposure to computer-related stuff than there is for other fields.

(To the degree, per my other comment, that there is something of an expectation at many schools that incoming students, like music majors, will have done so.)

</comment></comment></comment></comment><comment><USER21> My CS degree if anything gave me a solid understanding of the line between problems you can solve with a computer, and the ones where you _could_ throw technology at it, but you'll inevitably create more problems than you'll solve, because the real problem is a socio-political one.

It also gave me the framework of understanding to be able to reason about what is actually going on, and how. Being fluent in the major abstractions of a computer system allows you to more easily skip around between working in different real world contexts without getting flummoxed at your lack of knowledge on how that particular field does things. You know and can recognize the problems that you can best solve with a computer; so you just go ahead and fill the niche when necessary, and try to avoid the politics if you can/value your sanity/conscience.

</comment><comment><USER12> Unsurprisingly, CS is a very popular major (if not the most popular major) at schools near Silicon Valley.

People major in it because they can get jobs. And sometimes due to it being well taught and/or fun.

</comment><comment><USER22> Anecdotal, but I minored in CS so I wouldn't be counted, even though I took the core algorithm courses and have continued studying since graduating 5 years ago.

I don't see how one would know what they needed to interview at a FAANG without taking data structures and algorithms courses.

</comment><comment><USER23> I skimmed the article so tell me if I'm missing something here but in my experience computer science isn't the major of choice to become a "programmer" anymore.

Having gone through the hiring process at three different companies focused on both desktop and web based software, computer science majors were an extreme minority. Most people had a business degree with a programming component attached like Management & Information Systems.

Maybe it its worth looking into how many would be CS majors choose to do the less math intensive but more industry relevant business school option.

</comment><comment><USER24> CS grad here. It was a difficult major and I used very little at work. It did, however, change the way I think about everything and im glad I did it.</comment>


Citing Paris Attack, CIA Director Criticizes Surveillance Reform Efforts - <AUTHOR> http://foreignpolicy.com/2015/11/16/citing-paris-attack-cia-director-criticizes-surveillance-reform-efforts/ <comment><USER2> There are legitimate reasons for governments to do sigint, but I think the burden of proof should be on them to show that increased sigint capability would have done anything to prevent this attack.

So far I've seen remarkably bupkis in terms of concrete reasoned arguments in this area. I'd like someone from e.g. the NSA or GCHQ to give a presentation in which they show that it is feasible to spot terrorist activity in an ocean of otherwise normal data and differentiate it from e.g. morons talking trash that they'll never act upon, gamers talking about in-game terrorism, lesser criminal activity, non-criminal dissent, and other background noise. My strong intuition is that this is statistically and mathematically impossible and you'd drown in false positives, but I'd be open to a convincing argument if these agencies wanted to dignify the public with such an explanation.

Unless such evidence can be furnished, then all this mass surveillance data mining to "stop terror" amounts to a kind of modern superstition. Back in ancient times priests collected a lot of money from kings and from the public in exchange for entrail-gazing and astrological rites to guarantee success in battle or ward off a poor growing season. None of that crap worked, and I doubt that big-data entrail gazing works either.</comment>


6502 Language Implementation Approaches - <AUTHOR> https://dwheeler.com/6502/ <comment><USER2> _I still find it to be an interesting intellectual challenge, even though it has no commercial use that I know of._

The huge volume of embedded cores based on a 6502 would disagree strongly --- I'm sure everyone has at one point used a 6502-based embedded system. They're everywhere in things like keyboards and mouses, LCD monitors (the MCU responsible for generating the OSD and such), and toys like the famous Tamagotchi and Furby, as well as keychain picture frames:

[https://hackaday.com/2013/05/24/tamagotchi-rom-dump-and- reve...](https://hackaday.com/2013/05/24/tamagotchi-rom-dump-and-reverse- engineering/)

[https://news.ycombinator.com/item?id=17751599](https://news.ycombinator.com/item?id=17751599)

[http://spritesmods.com/?art=picframe](http://spritesmods.com/?art=picframe)

Also popular "not very good for HLL" architectures that yet have (subset of) C compilers for them include the 8051 and the Microchip PIC series.

<comment><USER3> Would the Arduino chip be a better choice for the intellectual challenge? You get a lot of modules you can buy from different vendors, and at the end of the day it's a simple to program chip like the 6502 from what I have seen.

<comment><USER4> There is no "Arduino chip." Its a hardware module and software ecosystem built around the Atmel AVR microcontroller series.

<comment><USER3> Yeah I was being lazy but I meant the chip that come on e.g. an arduino uno, i.e. ATmega328P

</comment></comment></comment></comment><comment><USER5> Apple Contributed Programs Volume 3 included "MICROLISP", written in AppleSoft BASIC by Ole Anderson.

        MICROLISP/16-JUN-78
        COPYRIGHT 1978 APPLE COMPUTER INC
        IT WILL TAKE APPROXIMATELY 1.5 MINUTES
        TO INITIALIZE THE ARRAYS.
        LIST ELEMENTS= 3634

Text AppleSoft BASIC source code: [http://apple.rscott.org/tools/view.htm?crc=e7d8e947136190aa&...](http://apple.rscott.org/tools/view.htm?crc=e7d8e947136190aa&n=6)

DSK file: [http://apple.rscott.org/tools/dldsk.htm?crc=e7d8e947136190aa](http://apple.rscott.org/tools/dldsk.htm?crc=e7d8e947136190aa)

Documentation: [https://archive.org/details/Apple_Software_Bank_Vol_3-5/page...](https://archive.org/details/Apple_Software_Bank_Vol_3-5/page/n15)

MicroLisp and other languages (including other Lisps, Logos, etc) are discussed in:

The Apple II Programmer's Catalog of Languages and Toolkits

[http://apple2.org.za/gswv/a2zine/GS.WorldView/v1999/Feb/A2.N...](http://apple2.org.za/gswv/a2zine/GS.WorldView/v1999/Feb/A2.NET.GOODIES.2.99/A2Programmer%27s.Languages.txt)

</comment><comment><USER6> It's actually quite amazing that it's possible to run Lisp in 48k of RAM, but it is.

[http://www.flownet.com/ron/plisp.html](http://www.flownet.com/ron/plisp.html)

<comment><USER7> Why do you find it incredible? It really depends on many features you want to implement. I had LISP in ROM on my BBC Micro. That was about 5.5K of code (6502) on the ROM plus some data. The machine had 32KB of RAM.

<comment><USER8> Agreed, Lisp will work on small environments pretty well. For smaller-still systems I'd recommend FORTH as a good alternative - as discussed in the article itself.

</comment></comment></comment><comment><USER9> Discussed in 2016: [https://news.ycombinator.com/item?id=12536211](https://news.ycombinator.com/item?id=12536211).

</comment><comment> david-given ...so I wrote this self-hosting compiler for the 6502 and Z80:

[http://cowlark.com/cowgol/](http://cowlark.com/cowgol/)

I say self-hosting, but on a 64kB BBC Micro second processor with floppy disk it takes about seven minutes to compile Hello World, so I haven't bothered to actually recompile the whole toolchain. (The overwhelming majority of of that time is spent doing disk I/O, as there's way too much state to keep in RAM. The compiler is an eight-pass behemoth.)

Here's an accelerated screencast of the thing in action: [https://www.youtube.com/watch?v=epTQPSi3IyQ](https://www.youtube.com/watch?v=epTQPSi3IyQ)

The language itself is a simple strongly-typed fully compiled thing with a syntax based on Ada, supporting nice stuff like nested subroutines and so on. It has native 8-bit types (unlike C). Its main claim to being interesting is that it statically allocates all variables, using a simple but effective algorithm to walk the call tree and assign multiple variables to the same address if they're not going to be used at the same time. It's super effective. (This is Wheeler's solution 1.) This feature made the entire project possible, because it allowed me to do without stack frames completely. Trying to access the stack on either the 6502 or Z80 is an utter disaster.

The 6502 is a _bizarre_ thing to generate code for. 8-bit code is fine, but 16-bit and above is painful --- efficient maths is really hard. I kept finding the generated code breaking down into tiny microloops because when doing arithmetic with 16-bit values it can actually be shorter to use a loop than to inline it (in certain circumstances). The instruction set is orthogonal, except when it isn't; there's no LDA zpg,Y for example, but there's a LDX zpg,Y. Things like moving values from one memory location to another are so expensive that the setup cost in using helper functions frequently outweighs the benefit.

But in general, once you get your head around it and accept that it simply cannot do things like 16-bit signed comparisons in a fashion which won't make you cringe, it's not too bad. Index registers are great, as is zero page indirection (at least for 8-bit offsets). It's fast, taking a few cycles per instruction. It's also fairly sensible: there's frequently only one sane way to do things.

The _Z80_ drove me nuts, though. It's unbelievably unorthogonal. (You can only do 8-bit direct memory accesses via A --- B, C, D, E, H or L cannot be directly read from or written to memory!) It's slow --- the non-8080 instructions are so painfully slow (ld ix, (abs) is 20 cycles!) that they're only barely worth it. The 16-bit stuff doesn't help nearly as much as you'd think, either; you can only do adds and subtractions, with limited registers, and there's no carry so they're no use so 32 bit operations have to be done using the 8 bit instructions anyway. I did find the resulting code density to be better than the 6502, but not that much.

I'm really looking forward to doing a 6809 port one day...

<comment><USER10> > The Z80 drove me nuts

I can't respect any CPU that takes FOUR clock cycles to do a NOP. Not sure if it takes longer if the PC points to a page boundary.

</comment></comment><comment><USER11> The next version of PLASMA has a JIT compiler that will compile PLASMA byte code routines into native machine code based on call frequency. Currently supports 6502 and 65802/65816 backends into a 4K code buffer. It doubles the speed of the PLASMA compiler, itself written in PLASMA.

</comment><comment><USER12> For a native 6502 compiler (to a VM similar to the PLASMA one), see FastBasic: [https://github.com/dmsc/fastbasic](https://github.com/dmsc/fastbasic)

</comment><comment><USER10> > I briefly used Manx's Aztec C; it was awful. It generated bad code, and was > a pain to use.

But it came wit a Unix-like shell, make and vi. And probably ed.

</comment><comment><USER13> This thing can use almost 3/4 watt of power at normal clock speed. For that amount of power you could use an ESP32 and get a lot more like Bluetooth etc.

<comment><USER14> TFA: "I still find it to be an interesting intellectual challenge, even though it has no commercial use that I know of. "

I think you might be missing the point.</comment></comment>


Backify Offers 512 GB Free Online Backup Storage - <AUTHOR> http://www.tomshardware.com/news/backify-cloud-storage-music-streaming-video-streaming-briefcase,13695.html <comment><USER2> WARNING: DON'T SIGN UP.

I signed up, and as makethetick pointed out, they sent me the plaintext password via email. I decided to close my account but first thought I should change the password. The change password form just spits error alerts showing the underlying html code.

I can't trust these guys with ANYTHING.

<comment><USER3> It's because of sites like this that I started using unique passwords for every new login. Chrome + OSX Keychain make this reasonably easy now. Looking forward to the day when the browser will just automatically generate one for me.

Of course, I'd not trust backing up my _data_ to a site that fails so miserably at basic security.

<comment><USER4>
      > Looking forward to the day when the browser will just automatically generate one for me.

Well, almost: <https://www.pwdhash.com/>

<comment><USER5> I use pwdhash for pretty much everything. It's great, but it can be a pain for signing into services on an application or device that doesn't support automatic expansion.

</comment></comment></comment></comment><comment><USER6> This is a reseller account of LiveDrive - <http://www.livedrive.com/ForResellers/Pricing>

I looked into the exact same thing to resell to my customers (non techie, average users interested in digital preservation)

Easy for me to tell based on the "briefcase".

The reseller costs like $60 a month and has "unlimited users, unlimited space" - so you decide if it is sustainable.

White label (which I assume they are doing) is $1100/year.

I considered doing this for $5/month, the break even is very low.

</comment><comment><USER7> I used to have LiveDrive probably 6 months ago (Whom they are reselling from), but I found the Mac client quite buggy. Breifcase didn't work and backups took ages, far longer than they should have done. I will give them credit for fantastic support and no questions asked refund, which was pretty awesome. They might have fixed the issues now, I hope they have, but still I would go directly to LiveDrive rather than a reseller, particularly since the site appears to have been thrown together. Someone probably thought they could make some quick money. I only hope when they shut down, LiveDrive are considerate enought to migrate everyones accounts.

Currently quite happily using BackBlaze for my personal computers, and working on an open source backup tool for servers </shameless>

<comment><USER8> Do you have a link to your open source backup tool?

<comment><USER7> It doesn't work yet =)

Because I like to work to specification, I wrote a readme before I started the project, which might show the general direction I'm trying to go with it. When I get home tonight I'll stick it on a gist and link it

<comment><USER7> <https://gist.github.com/1041a28fc150a2b6f6b4>

Is the readme

</comment></comment></comment></comment><comment><USER9> I've just signed up and received my confirmation email along with my email and the PASSWORD that I defined.

WARNING: These guys use plaintext passwords!!

Edit: I received the login info email after I clicked the activation link in a previous email, this means the password must have been stored in a database until I clicked the activation link.

<comment><USER10> _I've just signed up and received my confirmation email along with my email and the PASSWORD that I defined. WARNING: These guys use plaintext passwords!!_

It's not difficult to send a confirmation email that contains your password without having to store your password in plaintext anywhere.

Now, I don't know whether they store passwords in plaintext, but it's unfair to make such accusations based on the content of a registration confirmation email.

 _Edit: I received the login info email after I clicked the activation link in a previous email, this means the password must have been stored in a database until I clicked the activation link._

Again, there could be a less-than-ideal explanation for this, so we don't know 100% (I was hoping to see a "forgot password" link somewhere to test this with), but this does raise suspicions.

<comment><USER11> Who cares if it's technically possible not to store a password in plain text even though it's in an e-mail?

If they're sending passwords in plaintext they're incompetent and not to be trusted, especially for this kind of service. Ouch.

<comment><USER10> _Who cares if it's technically possible not to store a password in plain text even though it's in an e-mail?_

For one, I do. There's a world of difference between handing a http post and storing passwords in the clear in the db.

 _If they're sending passwords in plaintext they're incompetent and not to be trusted, especially for this kind of service. Ouch._

I pretty much agree, but stand by my point that sending a password in a confirmation email is the lesser of the two evils.

<comment><USER12> Ok for me, storing an encrypted password that is reversible is the same thing as storing a plaintext password. Means that people at least in their company can see my PW. Which means that if I used same PW as my email, they have it.

Lets take it a step further... If this is insecure, how much trust can you put that your data is secure? The goal of good online backups is that the only way to actually read data from the backup is to have the user's password. They clearly don't have that as everything is reversible.

Dropbox used to claim to be like that, not anymore. Which is why I don't trust dropbox with private data. Instead I store it using AeroFS with local replication.

<comment><USER11> I don't think he meant that the password is stored in a reversible format. He meant that the e-mail is sent out before the password is encrypted and stored.

<comment><USER10> Thanks, this is exactly what I meant :)

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> It looks a bit suspicious. There's no way they can cover their costs with these prices. Either prices will go up or the business will go down.

</comment><comment><USER14> From <http://www.backify.com/> :

> Even the employees of Backify can not access your data.

This is good news. It might be enough to make me switch from Dropbox, everything else being equal.

<comment><USER15> But they can access your password, stored in plaintext <http://news.ycombinator.com/item?id=3110634>

<comment><USER14> Ouch. Well, based on that and other comments, this definitely does not look like an appealing replacement for dropbox.

</comment></comment></comment><comment><USER16> So, I go on the "Support" section to send them a message..:

      Hi, two things:

      1- The key <enter> should submit forms. (It didn't work in the signup form, the login form and some dialog box popping in).

      2- You sent me my password by e-mail.. which means you've got it in cleartext in the database. How can you then say it's secure..?

And, I get an infinite loop of javascript alert with "parsing error" and a bunch of html in it.

Seriously, not really professional. I mean, I can understand for _other_ kinds of apps; but this is backup and highly confidential information.. this shouldn't happens. A little bit like you can judge a whole building based on the bathroom, a website with flaws everywhere talks a lot about the quality of the backend.

</comment><comment><USER17> Somewhat offtopic... But does anyone know of an inexpensive backup provider that works with rsync (or at least has Linux compatible software that doesn't require inotify)? I'm looking for something that will run on my Synology DS211j NAS. Crashplan was looking great until I realized the DS211j kernel doesn't support inotify. Backblaze is the same story. I'm using S3 right now, but it costs quite a bit more than Crashplan or Backblaze.

<comment><USER18> It really is an issue that most backup providers do not offer a Linux client, I am also bound to S3 at the moment, I have been tempted to try out the windows clients in wine, but It would be great if someone would offer a good(cheap, reliable, non evil =D ) backup service with linux support, even if its just a commandline. Actually an API would be fantastic.. let the openSource community build you a client.

<comment><USER19> Tarsnap? I haven't used it personally, but the guy seems open and honest about the product. It's open-source and runs on Linux (but you have to compile).

<comment><USER18> yes ive looked at that, but its double the gb/month cost of S3 and S3 has no inbound traffic cost

</comment></comment></comment></comment><comment><USER20> Ok guys. This is Tarandeep from backify. First of all I want to apologize for all the errors. We just launched a day ago, and we were not expecting 10000 visitors in one hour. 99% of the errors were caused by server (written in nodejs) being restarted repeatedly, resulting in lost sessions. We have the fixed the restart issue and moved the session storage from in-memory to db, which we shud have done in first place. But again, the huge response was totally unexpected.

About the passwords, they are all hashed (md5 with salt). they were just stored temporarily in the session for the email, and the session was destroyed immediately. But we fixed this issue earlier yesterday and updated on our blog.

Rest assured we promise to provide even better support from now on. We might stop offering free accounts soon, but the ones already signed will continue to be free for atleast qn year, maybe longer.

Thanks again for the tremendous response and bringing the bugs and flaws to our notice.

</comment><comment><USER16> That may sound stupid but all these google, dropbox and now backify services are so useless to me. Why? I sadly don't have the internet connection to upload 100+gig on these servers. So, I can use dropbox for text files.. but the second I have to backup bigger stuff I really need to be cautious into not moving that into dropbox.

<comment><USER21> AeroFS to the rescue :)

<comment><USER22> If they ever get out of semi-closed beta and let normal people actually use it...

</comment></comment></comment><comment><USER23> Thanks for posting the warnings about plain-text passwords in the email. When I landed on their site, the design of the site didn't look trustworthy to me. I am not sure how to explain it best, but it doesn't give me a "secure" feeling.

There is no contact us/address page. Also, does this mean that the domain name is on sale by the owner? <http://www.aftermarket.com/backify.com>

</comment><comment><USER24> Great. Except now the online backupmarket is going to be as cheap and reliable as consumer dsl.

Which is to say pretty cheap and mostly reliable, which is okay when you once or twice a year can't go online for a short time (clothing need to be changed anyway) it is just not good enough when your wedding pictures gets deleted.

Or worse this crazy offer banckrupts the business and you suddenly can't access it any more.

</comment><comment><USER25> If you're going to back up sensitive information, I'd recommend spending a few extra bucks and using somebody reputable and established like Dropbox or SugarSync.

As all the comments here have covered, it's a reseller account for LiveDrive and the site itself has a number of issues, not the least of which includes sending plain text passwords via email.

Bottom line: if it sounds too good to be true, it probably is...

</comment><comment><USER12> DUDE!!!! They store passwords in plain text. I just received an email with my login/password. Good thing its generated password.

Ok, they just lost my trust.

</comment><comment><USER26> Is it me or this guys don't seem that legit? I'm not talking about the plaintext password. let's say that doesn't matter (in an utipic world), but the desing of the site isn't at all "professional". My advice, don't sign up! Use Dropbox or Ubuntu One. Want more? Pay for it. That means is a product that's worth it.

</comment><comment><USER27> My crashplan subscription is still ongoing, so I have my backups covered already. However crashplan doesn't offer file sharing features, that is a plus for this.

Note that backed up files can be accessed through mobile apps, just that it could be a security risk for accessing files on the go.

</comment><comment><USER28> I've seen good alternatives here like rsync.net but I wonder if a simple Linode wouldn't be a better option if you already need one for other purposes, because with the basic Linode you already got 20Gb, and it's only 10 cents/GB afterwards...

</comment><comment><USER29> Seriously, have storage costs become this low already... funny that google can't find the name yet... this is the direct link: <https://www.backify.com/>

<comment><USER30> Not only that, but Google goes straight to "Backupify" as a spelling correction -- another backup-as-a-service provider already in the market.

</comment></comment><comment> user-id With a little digging it appears they're reselling LiveDrive. <http://www.livedrive.com/ForResellers>

</comment><comment><USER31> After reading all the comments, I'll definitely be sticking with Backblaze

</comment><comment><USER32> Anyone else not assured by the fact they are "secured by comodo"?

</comment><comment><USER33> No linux client :(.

<comment><USER9> I was thinking that, I'll be trying it on Wine tonight I think.

</comment></comment><comment><USER34> who dares to put 512GB data there?</comment>


Quickly go back to a directory instead of typing cd ../../.. - <AUTHOR> https://github.com/vigneshwaranr/bd Description: Quickly go back to a specific parent directory in bash instead of typing "cd ../../.." redundantly.
How to use:
If you are in this path /home/user/project/src/org/main/site/utils/file/reader/whatever and you want to go to site directory quickly, then just type: 'bd site'
In fact, You can simply type 'bd <starting few letters>' like 'bd s' or 'bd si'
If there are more than one directories with same name up in the hierarchy, bd will take you to the closest. (Not considering the immediate parent.)
Using bd within backticks (`bd <letter(s)>`) prints out the path without changing the current directory.
You can take advantage of that by combining `bd <letter(s)>` with other commands such as ls, ln, echo, zip, tar etc..
Check out the screenshot. <comment><USER2> Two other simple tips without requiring a script:

"cd -" will jump back to the last directory you were at, regardless of where it is.

Add this to your .bashrc / .zshrc / whatever:

alias cdg='cd $(git rev-parse --show-cdup)'

And then type "cdg" to keep going up directories until you reach whichever folder contains your git repo. Useful when going from "/Users/philfreo/Projects/myproject/myproject/src/assets/js/views/" back up to "/Users/philfreo/Projects/myproject/"

<comment><USER3> Note that "git rev-parse --show-cdup" return the empty string if you are at the top of the git repo. So "cdg" as defined above will drop you in the hope directory if you are already at the top of your git tree.

<comment><USER4> Yup. Perhaps `git rev-parse --show-toplevel` is better for this alias.

</comment></comment></comment><comment><USER3> Why not put something like this in your .bashrc or your .profile file instead?

function bd () {

      OLDPWD=`pwd`
      NEWPWD=`echo $OLDPWD | sed 's|\(.*/'$1'[^/]*/\).*|\1|'`
      index=`echo $NEWPWD | awk '{ print index($1,"/'$1'"); }'`
      if [ $index -eq 0 ] ; then
        echo "No such occurrence."
      else
        echo $NEWPWD
        cd "$NEWPWD"
      fi

}

That way you don't have to execute a separate shell script and source its output. Also note that the "export OLDPWD" wasn't necessary in your script, either. Why pollute the environment of future processes spawned by your shell?

<comment><AUTHOR> Didn't know about the function approach.

Removed the 'export'. I wrote out of habit. Thanks a lot for pointing that out.

</comment></comment><comment><USER5> This article covers more advanced functionality than what's built in to shells but don't forget:

      cd -

That goes to previous dir. A utility that follows this convention but adds some more features would be nice. For instance, maybe typing 'cd -2' could take me back two spots in history, like a web browser.

<comment><USER6> Sounds like zsh

[http://www.acm.uiuc.edu/workshops/zsh/cd.html](http://www.acm.uiuc.edu/workshops/zsh/cd.html)

<comment><USER7> This is exactly what I was going to say, cd +n and cd-n work amazingly.

</comment></comment></comment><comment><USER8> I have these two aliases in my .zshrc file:

      alias ..="cd .."
      alias ...="cd ../.."

For moving around to other directories I use autojump ([https://github.com/joelthelion/autojump](https://github.com/joelthelion/autojump)).

<comment><USER9> I have the same, but I use cd[a]+:

alias cda='cd ../' alias cdaa='cd ../../' alias cdaaa='cd ../../../'

I guess I was influenced by Lisp at the time, with car, cdr, cdar, cddr, etc ;-)

<comment><USER10> > I guess I was influenced by Lisp at the time, with car, cdr, cdar, cddr, etc > ;-)

You saw that naming scheme and thought "wow, that's sensible"?!

</comment></comment></comment><comment> B-Con pushd and popd can be used maintain an easily rewindable history of places you have been. Use pushd to add the cwd to the stack and cd to another directory. Use popd to cd to the top dir on the stack and remove it.

        $ pwd
        /dir1
        $ pushd /some/other/dir
        /some/other/dir /dir1
        $ pwd
        /some/other/dir
        $ popd
        /dir1
        $ pwd
        /dir1

</comment><comment><USER11>
        wget -O /usr/bin/bd https:[snip]
        chmod +rx /usr/bin/bd

Really? Run wget as root to get a random script, and put it into every user's PATH and a directory that should only be used by the system? :-|

</comment><comment><USER12> You know when you are getting old by when you have to start using _history_ a lot to try to remember what the heck you did.

<comment><USER13> I don't think it means you're getting old, necessarily. I'm well under 30, and I use the hell out of history. Whenever I need to do something complex, and I can't figure it out, my solution is often copy/pasted from the web. Bash history is often the only way I can remember which `sed` switch to use, or some complex `grep` operation.

In fact, I use history so much, I increased HISTFILESIZE[0] from 1000 commands to 10000.

[0] [http://osxdaily.com/2012/04/12/change-length-of-bash- command...](http://osxdaily.com/2012/04/12/change-length-of-bash-command- history-or-disable-bash-history-completely/)

</comment></comment><comment><USER14> This has to be one of the first alternatives to a pushd/popd workflow that actually sounds compelling. Kudos.

<comment><AUTHOR> Thank you

</comment></comment><comment><USER15> I have tried stuff like this in the past, but I find it creates too much of a dependence on special configuration. My keymapping and vimrc are already enough. Instead, I usually just do a `cd ..` followed by up/enter/up/enter, which is very easy to type quickly.

</comment><comment><USER16> An interesting aside: I can't seem to right click that link in Safari (6.0.5). It seems to be the "../../.." in the tag content that does it, because it works if I edit it out in the inspector. Does anyone else run in to this?

</comment><comment><USER17> I implemented a fairly sophisticated system for navigating directories based on pushd and popd. I also set up a system based on CDPATH to hop quickly to directories I go to frequently. I fell out of the habit of using them once my usage patterns changed, though, and, since I gave "cd -" a new meaning, sometimes it confuses me. It's hard to come up with an interface that's intuitive enough to be future-proof.

</comment><comment><USER18> alias ..='cd ..'

alias ..1='cd ..'

alias ..2="cd ../.."

alias ..3="cd ../../.."

alias ..4="cd ../../../.."

alias ..5="cd ../../../../.."

<comment><USER19>
        alias ..='cd ..'
        alias ...='cd ../..'
        alias ....='cd ../../..'
        alias .....='cd ../../../..'

<comment><USER20> I miss the feature of Novell Netware that used to let you type

      cd ...

to go up two levels, or analogously for as many dots as you needed. It was incredibly useful and fast. Thanks for the tip, and I'm using these aliases from now on.

</comment></comment></comment><comment><USER21> Simple bashrc function

        # go up X directories
        up_dir() {
            num_of_dirs=$1
            for i in $(seq 1 $num_of_dirs)
            do
                cd ..
            done
        }
        alias up=up_dir

Usage:

        $ pwd
        /home/user/svn/automation/puppet/trunk/modules/ossec/templates
        $ up 4
        $ pwd
        /home/user/svn/automation/puppet

<comment><USER22>
        # Hah, I have almost the exact same thing in my bash_profile
        up () {
            TIMES=${1:-1};

            for ((i=1; i<=$TIMES; i++));
            do
                cd ..
            done
        }

EDIT: Although now I'm looking at it and it looks like I made a strange choice with `TIMES=${1:-1};`. Oh well, I think it was my first bash script... it's funny to look back at the hack-y crap that your bash_profile accumulates over time.

</comment></comment><comment><USER23> I've also found this extremely useful. It lets you mark directories with a keyword and jump directly to them regardless of where you are. [http://jeroenjanssens.com/2013/08/16/quickly-navigate- your-f...](http://jeroenjanssens.com/2013/08/16/quickly-navigate-your- filesystem-from-the-command-line.html)

</comment><comment><USER24> Here's my, yet another, alternative to the many nice shell hacks out there: a bash/zsh "up" command that does "cd ..", or "up <n>" does "cd .." _n_ times.

        function up () { if test $# = 1 ; then s=$( printf "%$1s" ); s=${s// /..\/}; cd $s ; else cd .. ; fi; }

</comment><comment><USER25> So why don't you just use jump? A lot of people already use it and you're not limited to just directories parenting yours.

<comment><AUTHOR> Hi, 'jump' is a great bookmarking system for the bash shell. But you'd only want to bookmark some most used directories.

I made 'bd' out of frustration to use 'cd ../..' all the time from "any" random directory. I can't bookmark all possible places. They are like slightly different tools.

I think it'll be awesome to use both jump and bd in the same system!

Please give 'bd' a try. Once you get used to 'bd', you'll use it frequently without thinking. :)

<comment><USER26> You can use z, then. You don't have to bookmark directories to jump to them.

<comment><AUTHOR> Thanks. z is great! If only I had found this before. I actually googled a lot before writing this (last year April) but couldn't find something like z.

Anyways z always changes directory. Using bd within backticks will just print the path without changing the directory. We can use that with other commands like ls, zip etc. Example: "ls `bd <starting letters>`" would only print the contents without changing the directory.

<comment><USER27> An obligatory addition - check out fasd ([https://github.com/clvv/fasd](https://github.com/clvv/fasd)), inspired by z.

In addition to "z foldername" to move around, you can do things like "v vimrc" or "v freetds.conf" to directly edit files, where ever you are.

It's available on homebrew.

</comment></comment></comment></comment></comment><comment><USER28> Very useful! Thank you ver much! Although I'd like to add one suggestion and that is to surpress an 'echo' on successful navigation. I'd see my path twice right underneath of eachother, which just clutters up the screen.

</comment><comment><USER29> Smart idea. Good job! Could you extend bd to jump to bookmarked directories. I often jump between /data... and ~/dir/containing/code/ \-- would be useful to have one command help with both scenarios.

<comment><AUTHOR> Somebody commented that there is a nice tool called 'jump' for bookmarking directories. [https://github.com/flavio/jump](https://github.com/flavio/jump)

You can use both 'jump' to jump between bookmarked directories and 'bd' to quickly go to a parent directory in the same shell.

</comment></comment><comment><USER30> Shameless plug: This works similar to a script called 'up' which I am the author of: [https://github.com/helpermethod/up](https://github.com/helpermethod/up)

</comment><comment><USER31> For those using ZSH: [http://stackoverflow.com/questions/3986760/cd-1-2-3-etc- in-z...](http://stackoverflow.com/questions/3986760/cd-1-2-3-etc-in-z-shell)

</comment><comment><USER32> For zsh users, I created a similar command with auto-completion! No root access needed to install!

[https://github.com/Tarrasch/zsh-bd](https://github.com/Tarrasch/zsh-bd)

</comment><comment><USER33> How about using

bind -x '"\C-h":"cd ../;ls"'

(putting it into .bashrc) and then using control-h as a command on the shell to move a directory upwards. very useful for me.

<comment><AUTHOR> That's a good one!

</comment></comment><comment><USER34> zsh can be set to automagically track directories (like using `pushd` for you when using `cd`), so all that's needed is `popd`. No scripting required.

</comment><comment><USER35> In FreeBSD I use the following to change to an arbitrary directory when I'm unsure of the correct path:

`whereis -sq <dirname>`

No extra software necessary.

</comment><comment><USER36> Why not "cd -" ?

<comment><USER37> "cd -" only supports the directory you most recently came from ($OLDPWD), while "bd" supports any directory that is a prefix of $PWD.</comment></comment>


KDE Slimbook: Linux Laptop with Ryzen 4000 - <AUTHOR> https://kde.slimbook.es/ <comment><USER2> I have a slimbook pro (the model before the silver keyboard) and sadly I am very unhappy with it, I got a fairly maxed out version and it's fans are always on full blast and I have found no way to keep the power management under control except throttling the CPU - so it is constantly overheated, suspend is not working properly and the chassis is not strong enough so the fans stall unless you have it on a flat surface. Note that I have some lenovo computer from work which is configured in the exact same way and there are no overheating or suspend issues.

I also got a pinebook pro and I managed to use it a sum total of 12 times (and only on flat surfaces with the power plugged in because otherwise the screen would flicker like a strobe light) before the screen completely gave up and now it's an expensive paperweight.

Still I will keep buying these things.. eventually someone will figure out how to make reliable laptops that align with the ethos of free software. I've researched system76, puri.sm and also lately the way too expensive MNT reform, but really the only laptop people seem to be happy with is thinkpad x220 / x230 which came out 12 years ago.... This makes me sad.

I would pay a lot for a super sturdy laptop which works (and aligns with the free software ethos).

<comment><USER3> I think the T series is great. I have a T460 (bought off ebay for $140). I had an extra SSD, some old ram sticks I stuck in there and it works great. The dock off of Amazon cost me approximately 20 bucks. The CPU maxes and never goes above 55 C (idles 37-40) and runs almost all my dev tasks as needed. The laptop is approximately the size of my 13" 2015 Macbook Pro (my wife currently has taken that one). I have two headless machines with GPUs if I want to game (via Parsec or Steam streaming) or use GPU for Python notebooks etc.

I've run Fedora and a custom Debian setup in the past (and currently am using Void Linux). Things mostly work with no real issues.

I think perhaps the mistake is paying premium with new and shiny things that haven't stood the test of time is the problem here? If you buy cheap (something that is a known quantity also), you're less likely to feel the b urn of walking away from the shiny / expensive new thing, right?

Note: I also have the X230 (bought off craigslist for ~$100, 2 years ago) and have given that to my dad who has used it happily for years now.

<comment><USER4> I've had a T480 since summer 2018. It is the worst computer I have ever owned, less reliable and poorer build quality than a $250 Acer netbook from 2010. I had to install Windows because of an error to update one of several firmware issues that have arisen with this machine — this one relating to Thunderbolt without which it could not provide external output over any port but HDMI, and there only at 30 Hz for 4K. And I think the throttling issue is still not fixed. The ports on the board are extremely flimsy and I'm going to have to send my machine in to fix them a second time. At the very least they have massive issues in developing and deploying quality firmware.

<comment><USER5> Posts like this make me anxious to step out of the MacBook Pro bubble even though I want to. Aside from the butterfly keyboard saga those devices have generally been built very well, whereas I read nothing but complaints about the Dell XPS / Lenovo T4XX / HP Spectre du jour. Ranges from flimsy build quality to poor screens to coil whine to rapidly degrading batteries.

<comment><USER6> In terms of build quality, Dell's Latitude business notebooks have been great for a very long time. I have one from 6-7 years ago that's still running strong.

I've also been really happy with my Razer Blade which I've used alongside a Macbook Pro for the last ~3 years.

<comment><USER7> I can't say enough good things about dell latitude. It's to the point that they are all I use. You can get a _great_ laptop for ~400 on eBay and when stuff breaks or wears out you can actually fix it yourself using spare parts that are easy to find

</comment></comment></comment></comment></comment></comment><comment><USER8> For those interested in this or the Tuxedo Pulse 15 or Schenker VIA 15 Pro (all based off of the same barebones TongFang PF5NU1G), I have one and I've been doing a pretty thorough review here: [https://www.notion.so/lhl/Mechrevo- Code-01-TongFang-PF5NU1G-...](https://www.notion.so/lhl/Mechrevo- Code-01-TongFang-PF5NU1G-Information-8009025fdefc40118ab0ea973e7e0988)

<comment><USER9> How did you manage to break the page-up/page-down/home/end keys on that page?

<comment><USER10> Notion pages are _so bad_ in those ways. Space/Shift+Space don't work either, arrows do very much the wrong thing, they wrap all the text blocks with contenteditable (why!? it's not even like I can _edit_ the page!) which mangles at least Firefox's link handling (it makes it not show the href in the status bar on hover) and Tab-based keyboard focus (it makes each block focusable, despite that being useless, and _stops_ inline links from being focusable), …

It's just awful. An accessibility disaster, and I don't say such things lightly (normally I might just say it has serious problems).

If I come across much more usage of Notion, I'll need to craft a user script to unbreak as much as I can. document.querySelectorAll('[contenteditable]').forEach(e => e.contentEditable = false) is a good start, fixing the focus issues. Unfortunately all their event handlers are on the root element, so you can't just clobber them with document.body.outerHTML = document.body.outerHTML or similar but must figure out some other way of deregistering or breaking their event handlers.

<comment><USER11> It'd be cool if browsers had some way to display text and handle things like scrolling and linking to other pages. Really a big oversight when they were designing HTML. Too bad though, I guess every site will have to implement all of that from scratch in JS.

<comment><USER10> I think the problem here isn't that, so much as that Notion is using their _editing_ interface even when you're clearly only reading the document and can't edit it, and kinda whitewashing it a bit so that it's not actually editable (with event handlers to stop the normal editing things working, turning the caret colour transparent, _& c._), and that seems to mess things up even further. (I don't use Notion, but I presume their editing interface works better when it's not read-only, because otherwise no one would be willing to use it.) Of course what they should have done is just produced the HTML (preferably server-side, but even client-side would be tolerable) and left it alone, no contenteditable, event handlers.

</comment></comment></comment></comment></comment><comment><USER12> So this looks like the walmart MOTILE laptop[0][1], but rebranded?

Is this basically a System76[2]-like effort?

[EDIT] - I own an System76 Oryx Pro and love it -- this laptop being a rebranded effort is _not_ a bad thing in my mind, if anything it gives me more faith in the initial build quality. If the KDE org gets it just as right as System76 (open source drivers galore, fantastic system tooling and support), then this is going to be a boon for open source everywhere, more money in KDE's pockets, more linux-first machines out there.

[0]: [https://www.walmart.com/ip/MOTILE-14-Performance-Laptop- FHD-...](https://www.walmart.com/ip/MOTILE-14-Performance-Laptop-FHD-AMD- Ryzen-3-Radeon-Vega-Graphics-THX-Spatial-Audio-Tuned-display-4GB-RAM-128GB- SSD-HDMI-Front-720P-HD-IR-Camera-Rose/708573214)

[1]: [https://the-gadgeteer.com/wp- content/uploads/2019/12/Motile-...](https://the-gadgeteer.com/wp- content/uploads/2019/12/Motile-00-800x600.jpg)

[2]: [https://system76.com/laptops](https://system76.com/laptops)

<comment><USER13> It's made by Tongfeng and rebranded by Mechrevo, Schenker, Tuxedo, etc.

<comment><USER14> Replying here in the hopes someone knows if anyone resells these in Australia. Last I looked it was all Clevo.

</comment></comment></comment><comment><USER15> Oh my god...is that a 15" laptop _without_ a number pad being crammed onto the side of the keyboard, thus _not_ forcing all my typing to be awkwardly offset and uncomfortable?

<comment><USER16> This is my beef with laptops. I bought a huge laptop just so I could have a numberpad.

But I've been amazed at how many programmers don't like to have them. Why?

<comment><USER17> Why would I use numpad?

Even on normal keyboards I don't use it, and they are annoying because they make the mouse position awkwardly more to the right than it should be healthy for the arm (I really envy left handed people, they don't have to deal with this).

And it is next to impossible to get a keyboard without the numpad, fortunately I found two such keyboards and I have one at work and one at home (Logitech K310 and Microsoft Sculpt).

And I haven't seen in live any person that uses numpad, I always thought it is used by accountants only (and those that don't want to use two hands to enter numbers).

<comment><USER18> FYI: Keyboards without the numpad block are called "TenKeyLess Keyboards" (sometimes it is abbreviated to TKL acronym) or 87/80% keyboards.

In short research, I found they are hundreds of them available on Amazon, Aliexpress. However, most of them have mechanical switches[0][1], some of them have conducted switches (like Topre[2]) and it is very rarely to see cheap, typical office-use TKL keyboards made by companies like Microsoft or Logitech but Matias have at least sell one model [3].

It might be handy to read a short guide [4] of keyboard naming by their sizes, whether you will look for new keyboard in future.

[0]: [https://www.amazon.com/10-keyless- keyboard/s?k=10+keyless+ke...](https://www.amazon.com/10-keyless- keyboard/s?k=10+keyless+keyboard)

[1]: [https://www.keyboardco.com/category.asp?path=Mechanical%20Ke...](https://www.keyboardco.com/category.asp?path=Mechanical%20Keyboards/Tenkeyless)

[2]: [https://www.amazon.com/s?k=topre&ref=nb_sb_noss_1](https://www.amazon.com/s?k=topre&ref=nb_sb_noss_1)

[3]: [https://www.keyboardco.com/category.asp?path=Mac/Standard/Te...](https://www.keyboardco.com/category.asp?path=Mac/Standard/Tenkeyless)

[4]: [https://www.keyboardco.com/blog/index.php/2017/08/full- size-...](https://www.keyboardco.com/blog/index.php/2017/08/full-size- tkl-60-and-more-a-guide-to-mechanical-keyboard-sizes/)

<comment><USER19> Happy Hacking used to have cheap membrane "Lite" versions in 80% format. Those were great for the price.

</comment></comment></comment></comment></comment><comment><USER20> Why is it so hard to produce a 13" Notebook with a Ryzen 4800U, 32 GB Ram (or better just two Sockets) and two 4k/60hz Outputs?

Make one HDMI 2.0 and the other Displayport over Type-C and I'm fine.

I'd love to see a USB 3 Type-A Port aswell but that seems like too much to ask nowadays.

<comment><USER21> Lenovo X13 with Ryzen 4750U + 32 GB RAM + docking station is quite similar.

<comment><USER22> > You can get 32GB of RAM in a 15" form factor, just not in 13".

> This is due to the well known engineering limitation that links LCD size to > the density of RAM modules that can be supported by a motherboard.

[https://news.ycombinator.com/item?id=21445497](https://news.ycombinator.com/item?id=21445497)

I thought this comment 8 months back was correct. I dont know the limitation nor could find something related.

<comment><USER20> This is simply not true. My current Notebook is a 32GB Ram equipped 13" Toshiba Portegé X-30-D, comes in at nearly 1KG and is available with a quad- core i7-8550U.

I'd just like a Ryzen 4800U version of my current machine, even if it means sacrificing Thunderbolt 3.

I think i'll have to wait for 5800U to come around and have USB4 though to see that happen. :(

<comment><USER20> Here is a link to a block diagram to show what's possible on Renoir Chipsets:

[https://www.notebookcheck.com/fileadmin/Notebooks/News/_nc3/...](https://www.notebookcheck.com/fileadmin/Notebooks/News/_nc3/AMD_Renoir_Block_Diagram.jpg)

</comment></comment></comment></comment></comment><comment><USER23> Yep, still get access denied via Cloudflare on this and can't access it.

A bit frustrating that there is no way to report that you might be seeing this message in error.

EDIT: Especially frustrating as I'm actively looking for a good Linux laptop to replace my MacBook - specifically I'm worried about compatibility with my thunderbolt docks

<comment><USER24> no thunderbolt with amd laptops at the moment

<comment><USER23> Do you know of any intel based machines that work well with thunderbolt docks and are worth considering?

<comment><USER25> Very happy with my (5th generation) ThinkPad X1 Carbon running NixOS and connected to a Toshiba Thunderbolt 3 dock. Everything works just perfectly.

</comment></comment></comment></comment><comment><USER26> Given we have the technology, I don't think it's wise to advertise this machine as ready for serious digital painting and video editing with only 100% sRGB gamut. Color accuracy can be recalibrated, but the gamut can't be expanded. Video editing really should be done in the wider gamut like 94-100% DCI-P3. The same thing applies to photo editing and digital painting in DCI-P3 or Adobe RGB. Many high-end phones have these specs and many monitor as well as the HDR screens on TV and projectors. However, all of the laptop with panels in the appropriate ranges for digital content creation (XPS series, ZenBook Pro Duo, ConceptD, etc.) are all running Intel chips -- so I'm still waiting.

<comment><USER27> Yes, and it boggles my mind that Apple is still the one building laptops with high resolutions.

<comment><USER28> The highest-end Zephyrus G14 comes with a high-res panel; windows defaults to 2x zoom. I've been very happy with it, not least since - well, thanks to the Vega chiplet there's no lag.

It also has an Nvidia for those times when you really need horsepower, but so far I've only needed it for ML.

<comment><USER26> I took a hard look at this laptop particularly with the 1440p resolution, but 101.2% sRGB, 71.7% DCI-P3 and 69.7% Adobe RGB still isn't in the color gamut ranges I'm considering acceptable for content creation. The truth is that ASUS are more focused on high refresh rates for gamers than they are content creation. When 60Hz was the norm a few years ago, a lot of gaming laptops offered wide color gamuts and high pixel density to stand out even though these don't help gaming.

<comment><USER28> I'm curious actually. The majority of users don't have a calibrated or wide- gamut screen, so how much does the color gamut really matter?

I have one laptop with an OLED panel that's (IIRC) 105% Adobe-RGB, and it's sufficiently nice that I'd like that everywhere if I could, but it isn't enough to rule out the G14 for me. Perhaps it's a good thing that I'm not into photo editing, as a rule.

</comment></comment></comment></comment></comment><comment><USER29> Nate Graham, coordinator of the KDE Usability & Productivity initiative, wrote a full review:

[https://pointieststick.com/2020/07/23/the-superfast-ryzen- po...](https://pointieststick.com/2020/07/23/the-superfast-ryzen-powered-kde- slimbook/)

</comment><comment><USER30> When I saw 'Slimbook' I wished for a small pocketable Linux netbook even though I knew Ryzen 4000's thermal profile wouldn't suit such a design.

I would really like AMD to release CPUs which can compete with intel's core M3, which can be used in SBCs or pocketable netbooks like these[1][2]. I feel there is a need gap in this space for a reputed manufacturer or a trusted enthusiast brand to get in.

Why would you want a pocketable Linux pc? one may ask; I'm tired of this always tracking smartphone cellular-apps cluster-X mess. My phone-call usage lifestyle is anyways on-demand(little to no incoming calls), so why not just use a USB GSM module on a pocket Linux pc when needed.

P.S. I'm aware of upcoming pure Linux smartphones, some with cellular-kill switch, I'm a vocal support of these platforms, but it's not available in my country and as I understand they are not ready for a daily driver.

[1][https://www.1netbook.com/product/](https://www.1netbook.com/product/)

[2][https://www.gpd.hk/gpdpocket2](https://www.gpd.hk/gpdpocket2)

<comment><USER31> > Why would you want a pocketable Linux pc? one may ask; I'm tired of this > always tracking smartphone cellular-apps cluster-X mess. My phone-call usage > lifestyle is anyways on-demand(little to no incoming calls), so why not just > use a USB GSM module on a pocket Linux pc when needed.

You could probably run Linux on one of the GPD Win devices. (e.g. [https://www.reddit.com/r/gpdwin/comments/glpokv/gpd_win_max_...](https://www.reddit.com/r/gpdwin/comments/glpokv/gpd_win_max_linux_is_mostly_working/))

Also, as an aside: rather than using a GSM module with a real SIM card that you'd have to pay monthly for, you could just subscribe to a VoIP service (I use [https://voip.ms](https://voip.ms)) and then connect to it with a softphone app to place and receive calls.

I pay $1/mo for a number, and $0.005/min for calling, and that's it. I have softphone apps for my PC, phone, and tablets, that are all connected to its same number, so I can answer calls "directly" through any of them, without one device having to route through another. (Also, as a side-benefit, I've set it up with has voicemail-to-MP3s-in-my-email, like Google Voice does. And configured it so that if people outside my whitelist call, they go _directly_ to voicemail.)

Works especially well when combined with a phone that you set up as a "tablet" with a data-only plan. (This plan costs me $10/mo, in Canada, which is quite a feat if you know the Canadian cellular ISP market.)

Oh, and I've also written a SMS<->Slack bridge bot ([https://github.com/tsutsu/smsforwarder](https://github.com/tsutsu/smsforwarder)), that I run as a Heroku free-tier app wired with webhooks to voip.ms's SMS API. SMSes to my VoIP number pop up in a Slack channel named after the peer's number in a special private Slack team I created; and messages I write into that channel are sent back to the peer number as SMSes. So all the same devices that have the softphone app, have Slack, and so can also interact with my SMSes in a shared manner as well.

<comment><USER30> >You could probably run Linux on one of the GPD Win devices.

I had mentioned it in my parent comment. I cannot get these devices inside my country for the same reason I cannot get a PinePhone due to China-India tensions; even before the blockade I have heard horror stories from people who imported computers from Aliexpress in India having to pay 2-3x the price as import taxes!

Furthermore, I would like a brand which is available to greater Linux audience in western countries, so that it's been vetted properly.

>Also, as an aside: rather than using a GSM module with a real SIM card that you'd have to pay monthly for, you could just subscribe to a VoIP service

I do use VoIP services, but without a GSM module how do you connect to the Internet(4G/LTE) on the move in a PC? i.e. considering you are not carrying a smartphone. Places where WiFi hotspots are available are not an issue(If you don't consider them to be a security risk or being stationery), but say you have to book a Uber on the move then a GSM Module for Internet + Anbox for Uber app seems necessary.

smsforwarder looks cool, I will check it out. Thank you.

<comment><USER30> Sidenote -

>without a GSM module how do you connect to the Internet(4G/LTE)

This is also a reason why we need non-cellular mobile Internet[1], like city wide WiFi hotspots.

[1][https://needgap.com/problems/51-non-cellular-network- mobile-...](https://needgap.com/problems/51-non-cellular-network-mobile- internet-telecom-internet)

<comment><USER19> WiMAX existed and died

</comment></comment></comment></comment></comment><comment><USER32> I want too much. I need a 4k oled display and I'd buy AMD so fast.

<comment><USER33> Do you use 4K currently with Linux? If so what screen resolution / scaling and what WM / desktop?

I'm using pop_os and I desperately want scaling to work and it doesn't.

<comment><USER32> I am odd. On Windows I use 2x scaling on a 4k screen. On Linux I go unscaled and just bump up the text size in editors and GTK/Qt apps.

<comment><USER34> I found that scaling killed performance for me on an old intel 6500U, so I bumped font sizes and icon sizes up and went unscaled. DrRacket is the only program that doesn't obey it currently. Even Emacs works fine.

</comment></comment></comment></comment><comment><USER35> FYI (if anyone in charge of the website is reading this): I get blocked off by Cloudflare in an infinite reload loop if I try to access the site via Tor (even with JS & cookies enabled).

I'm not an expert in Cloudflare products but if I'm not mistaken, there should be a setting labelled something like "Onion Services" in your configuration console that makes the experience for Tor users a lot less painful.

</comment><comment><USER36> Sigh.

The main points I look at a laptop by are keyboard, trackpoint, then display quality, then the rest. I couldn't care less about the Ryzen part; the keyboard looks abysmal.

<comment><USER37> I agree. What made me use macbook for years is their touchpad.

Do you have recommandation of linux compatible laptop with good keyboard and touchpad ?

<comment><USER36> Lenovo ThinkPads. The T495 looks nice: [https://www.notebookcheck.net/Lenovo- ThinkPad-T495-Review-bu...](https://www.notebookcheck.net/Lenovo- ThinkPad-T495-Review-business-laptop-with-AMD-processor-long-battery-life-and- good-display.434716.0.html)

<comment><USER38> Got one, can confirm. The older Ryzen blows everything else away, but you need Fedora. Debian sucks.

</comment></comment></comment></comment><comment><USER39> Looks nice. I would prefer a 4K display like my Precision 5530.

<comment><USER40> Do you find 4K in a 15 inch screen worth it? I'm in the verge of buying a 4K one, but I'm not sure if it's worth the battery consumption in such a small screen.

<comment><USER41> I find it absolutely worth it, whenever I see a 1080p laptop screen I find myself continuously noticing how blurring the fonts are and how little I can fit on the display, high resolution monitor screens have meant that I find myself needing an external monitor far less often.

<comment><USER42> Otoh whenever I am on a 4k laptop the increased heat and decreased battery life are immediately noticeable.

</comment></comment></comment></comment><comment><USER43> This is my favorite form factor for 15" notebooks. Center keyboard and touch pad and lots of ports. My only reservation is it's not 4K and my eyes really like the font smoothness now that I'm getting older.

</comment><comment><USER44> Still no good 13 inch options with ryzen 4000. Waiting for the thinkpad.

<comment><USER45> Lenovo X13?

<comment><USER46> That thing with AMD is actually faster than an X1 Extreme (in CPU performance). I'm pretty happy with my E495, but that X13 is tempting.

</comment></comment></comment><comment><USER47> FHD on a 13 inch or larger just doesn't cut it these days. QHD is the minimum for people whose jobs are computers, imo.

<comment><USER48> Here's a ppi calculator [https://www.sven.de/dpi/](https://www.sven.de/dpi/) to satify various hypotheticals.

Any 4K monitor 26" or greater is the same dpi as FHD at 13"

Various examples here [https://www.newegg.com/p/pl?d=4k+monitor](https://www.newegg.com/p/pl?d=4k+monitor)

A 24" 4K monitor is only 8% better in fact. I would venture to guess it would be basically indistinguishable to the naked eye.

QHD at 13" is 226 ppi is that really a reasonable minimum?

<comment><USER49> It's less about DPI than about raw pixel count. At 1080p, you simply lose too much usable screen space to menus, toolbars, task bars, and all the dumb shit that websites set "position: fixed" on. 2560x1440 (or better yet, 2560x1600) with appropriate magnification gives you a lot more flexibility in how you use screen space, instead of more or less forcing you to work with only one maximized/fullscreen window at a time.

I use a 13" MBP with no UI magnification, but most web pages scaled to around 200%. That keeps the UI nice and compact and leaves a lot of screen space for actual _content_ (about 2170x1523 with my current browser layout). I do occasionally set it to a scaled resolution when someone else has to watch/use the machine as well.

<comment><USER50> >or better yet, 2560x1600

I couldn't agree more, I was given 16:10 monitors for my current job and I'm not sure if I'll ever go back to 16:9 if I can avoid it. Next laptop is a 13" MBP for sure too.

</comment></comment></comment></comment><comment><USER51> Always and forever with any linux laptop, the major question is: how is the trackpad?

<comment><USER8> The trackpad is decent. Roughly centered under the home keys. Plastic but pretty smooth (about 80% the size and 80% the smoothness of a late model MBP13). It's a physical clickpad that feels fine, and recognizes left, middle and right clicks. I haven't had a problem using the libinput defaults - gestures work, default sensitivity and acceleration is sane (although of course, fully adjustable).

</comment></comment><comment><USER52> TL;DR: Anybody know if Lenovo is locking-down NVME by PCI id, the same way they do wifi cards on their new Ryzen 4000 laptops?

I've been looking at Ryzen 4000 based laptops. I need a pointer stick / eraser stick (I hate touchpads), and Lenovo is the only choice I've seen with Ryzen 4000 and a pointer stick.

The Lenovo T14 is pretty compelling. However, I just can't stomach paying roughly 4x the market rate for NVME storage. They want $719 for a 1TB NVME drive (where I don't even know the vendor), when I can buy a 2TB drive from a vendor I trust for 1/2 of that. If I knew I could just open the thing up and replace the NVME drive, then I'd get it. But I"m afraid they've BIOS locked it to whatever OEM drive they ship.

<comment><USER53> I bought an amd based t14s with the base 128gb NVME drive and replaced it with a 2tb samsung 970 evo plus and it works fine. If you are planning on using linux you are likely to have a sub optimal experience unless you are okay with using a bleeding edge rolling distro like arch due to needing newer kernels for the best levels of support.

<comment><USER52> Awesome! Thank you so much! Would you mind putting up the output of lspci -vvv to pastebin or something similar and linking it here?

FWIW, my goal is to run FreeBSD-current on it.

<comment><USER53> [https://pastebin.com/v6BbEpbK](https://pastebin.com/v6BbEpbK)

You can also run an additional m.2 ssd in the WWAN slot which works just fine assuming you grab the correct type. It's not the standard m.2 though. It's weird and has 2 notches instead of 1. My understanding is when it comes to this slot only specific drives will work properly. I grabbed an SN520 512gb (2242 size by the way, the standard 2282 is too big and 2232 is too small) off of ebay and I'm booting from it as we speak. [https://www.westerndigital.com/products/internal- drives/pc-s...](https://www.westerndigital.com/products/internal-drives/pc- sn520-ssd)

So when it comes to the standard m.2 slot my understanding is that there are no limitations, but the using the WWAN slot as an ssd slot can lead to issues unless you get the correct one.

Unfortunately I don't have any insight about running freebsd on this machine, so good luck to you there.

</comment></comment></comment></comment><comment><USER54> How many laptopts use the high powered range of Ryzen cpus?

e.g. 4xxxH like this laptop

Most laptopts I see use the 15W versions, very rare to find anything competitive with Macbook.

<comment><USER8> There are only a handful of AMD options worth mentioning and availability for models is very regional. Those without a dGPU are the Lenovo S540-13ARE (4800U but has dual-fan/dual-heatpipe cooling and runs at a sustained 38W), these TongFang PF4/PF5 models (a variety of OEMs like the Slimbook, Tuxedo), the 2020 Redmibooks, and the just announced Honor Magicbook Pro.

The rest are mostly gaming models. The Asus G14, TongFang's GK5/GK7 (like the Eluktronics RP-15/17), HP Omen 15, and the Lenovo Legion 5 are the best of the bunch. They all have Nvidia 1660Tis/2060s.

The 4800H performs on par with the 10875H at lower temps/power usage but I think competition w/ a Macbook is going to be subjective. None have anywhere close to the fit and finish of a MBP. Most are significantly cheaper. Most will have a better port selection and better upgradability (although some also have soldered RAM). Most will have better battery life. Only a few will be more portable. Only a few support USB-C PD. Only a few have >FHD screens and if you need >100% sRGB color gamut, there's literally only one AMD option (the 4K Schenker VIA 15 Pro), and that won't be available until September at the earliest. There are plenty of 10875H+ laptop options on the Intel side. Some like the new XPS's are specifically designed to compete head-to-head w/ MBPs.

</comment></comment><comment><USER55> Does anyone know why Ryzen 4000 laptops don't come with screen resolutions higher than FHD?

</comment><comment><USER56> It doesn't mention distro on the page, which is confusing.

I like the idea, though.

</comment><comment><USER57> This is unjustifiably a lot more expensive than the similar HP Envy 13 or Envy 15.

You can get an Envy with a Ryzen 4700U (the 8-core 15W CPU), 16 GB of RAM, and a 512 GB PCIE NVM SSD -- for less than $900.

<comment><USER8> These are pretty different classes of machines. The 4800H performs 64% better at R20 (representative of rendering tasks), and 61% on Geekbench 5 (representative of general productivity). [https://www.notebookcheck.net/R7-4700U-vs-R7-4800H_11683_116...](https://www.notebookcheck.net/R7-4700U-vs-R7-4800H_11683_11677.247596.0.html)

The Envy 13 is also limited to 16GB of soldered RAM while the Slimbook can be upgraded to 64GB. The 15" version has a huge battery advantage over the Envys.

It's also worth noting that the pricing listed includes a 21% VAT. The pricing is more competitive once you take that into account.

</comment></comment><comment><USER58> Nice ! I would appreciate the category Music Making (=DAW) amongst the four on the top. Musicians struggle with Apple's prices and monopoly.

<comment><USER59> What DAW would you use on a Linux distro? I didn't think any of the main 3 would work (Ableton, flstudio, protools or whatever).

<comment><USER8> Ardour, Bitwig, and Reaper would probably be the top choices for full blown DAWs on Linux.

</comment></comment></comment><comment><USER60> I really appreciate the 91Wh battery on the 15 inch. I was looking at buying a Dell XPS 15 but they shrunk the battery size this year.

</comment><comment><USER61> What's the potential-firmware-backdoor situation? Is there something equivalent to the Intel Management Engine?

<comment><USER19> The answer is sadly a yes there is. Current AMD processors contain Platform Security Processor based on ARM Cortex-A5.

</comment></comment><comment><USER62> You love to see a slim laptop that didn't use the thinness as an excuse to ditch the ethernet port

</comment><comment><USER63> Does it have a replaceable battery?

</comment><comment><USER64> Have people at AMD solved the issue(s) with Ryzen-equipped Linux laptops freezing randomly?

<comment><USER65> I've ASUS TUF A15 laptop (Ryzen 4800H with GeForce 2060) with Linux and haven't experienced a freeze yet. I own that laptop for 2 months now, so it's not impossible I won't experience it, however so far - no freezes. There are some annoyances with it, but overall I'm more than happy with 4800H and what you get for that kind of money.

</comment></comment><comment><USER66> Why do they NEVER disclose the HDMI version? It is so important for 4k. Just maddening.

</comment><comment><USER67> This is a Tongfang barebone, same as e.g. Schenker Via 15.

</comment><comment><USER68> Good star for having full size arrow keys!

</comment><comment><USER69> 3200Hz memory??

<comment><USER70> Wait. You're right. I did a double-take then doubted myself.

I can't find anything historical that used 3.2kHz memory access speeds, but I'm pretty sure there was something out there... from the 1960s.

<comment><USER71> That speed is slower than magnetic memory; it could be delay-line memory, which would be even earlier.

</comment></comment></comment><comment><USER72> Not meant to offend but im about to ditch my macbook 2014, can this machine run windows10?

<comment><USER73> You could get a laptop with windows and a dual boot linux. Did that with mine a few months ago using Ubuntu and it's been great.

<comment><USER74> Or run windows on its own disk / partition.

Then create a windows VM in linux with direct disk access.

</comment></comment></comment><comment><USER75> From what I read about people running Linux on laptops I anticipate the following:

\- Touchpad sucks

\- Battery lasts 2 hours

\- Sleep mode doesn't work

<comment><USER67> If this is all you have to say why comment at all. That's not remotely true, and you might be aware that there's no such thing as a "Linux laptop" per se, you can install Linux on any computer you wish.

</comment></comment><comment><USER76> > Paint like a maestro with Krita

That pretty much sums up the care and thoughtfulness of the Linux desktop ecosystem.

<comment><USER77> What do you mean?

<comment><USER78> The Maestro is a musician, not a painter.

<comment><USER79> > A maestro is an artistic master: someone who is skilled enough to be > considered an artistic genius.

> Taking one music class or art class can teach you a lot, but it won't make > you a maestro. Maestro (which comes from Italian) is reserved for people > with an enormous amount of skill and talent. This word can apply to __any > type of artist __— and sometimes, to people with impressive skills in other > areas — but it 's most commonly applied to musicians. Master composers, > pianists, cellists, guitarists, and conductors are often called maestros.</comment></comment></comment></comment>


Ask HN: What spelling errors have become entrenched in software? - <AUTHOR> <comment><USER2> [https://en.wikipedia.org/wiki/HTTP_referer](https://en.wikipedia.org/wiki/HTTP_referer)</comment>


Xc2064 – Reverse Engineering the XC2064 [The First] FPGA (Ken Shirriff) - <AUTHOR> https://github.com/shirriff/xc2064 <comment><AUTHOR> Excerpt:

"This is an in-progress project to document the internals of the XC2064 FPGA. The XC2064 _was the first FPGA, introduced by Xilinx in 1985_. This FPGA contained just 64 complex logic blocks (CLBs), in an 8x8 grid. It was soon followed by the XC2018, which was essentially the same chip but with 100 CLBs in a 10x10 grid."

Also, the following PDF is very useful for understanding FPGA's at a low- level, where Ken explains what FPGA's are at their simplest electronic/gate levels: [https://github.com/shirriff/xc2064/blob/master/reverse- engin...](https://github.com/shirriff/xc2064/blob/master/reverse-engineering- talk.pdf) (Highly Recommended!)</comment>


MongoDB and ReDoS - <AUTHOR> https://twitter.com/homakov/status/605453501146255360

<comment><USER2> I guess this will only work on untyped languages and where the application isn't checking to see if the value of 'username' is a string

All the more reason to watch your inputs, and assume everything is malicious.</comment>


The eXpress Data Path: Fast Programmable Packet Processing in the OS Kernel [pdf] - <AUTHOR> https://github.com/tohojo/xdp-paper/blob/master/xdp-the-express-data-path.pdf <comment><USER2> Cloudflare is using XDP to mitigate DDoS

[https://blog.cloudflare.com/how-to-drop-10-million- packets/](https://blog.cloudflare.com/how-to-drop-10-million-packets/)

<comment><USER3> > With XDP we can run eBPF code in the context of a network driver.

This looks interesting, but it also looks like it was designed to run this eBPF code on the network adapter itself, when it allows it. Otherwise, why the bytecode?

<comment><USER4> The byte code is used as a target for verification, and is designed to be easily JITable on x86 and arm.

There are network cards which offer eBPF offload, but they only implement a subset of features available in the kernel. I imagine that keeping up is hard, since the technology is moving quickly.

Netronome seems to have the most advanced eBPF offload available.

</comment></comment></comment><comment><USER5> Though the parent mentions AF_XDP can be used in user space, it will require BPF maps to route the queues properly.

If you're interested in XDP and the like, also check out DPDK (BSD licensed, [https://www.dpdk.org](https://www.dpdk.org)).

<comment><USER6> Also netmap, which I find easier to use: [http://info.iet.unipi.it/~luigi/netmap/](http://info.iet.unipi.it/~luigi/netmap/)

</comment></comment><comment><USER7> Pretty cool but no mention of the implications for Spectre attacks...</comment>


Show HN: Jekyll KaTeX Block – Integrate KaTeX into Jekyll - <AUTHOR> https://github.com/drewsberry/jekyll-katex-block

<comment><USER2> Awesome!!

<comment><AUTHOR> Thanks! Let me know if you've got any questions about it.</comment></comment>


Esperanto exits stealth mode, aims at AI with a 4,096-core 7nm RISC-V monster - <AUTHOR> https://fuse.wikichip.org/news/686/esperanto-exits-stealth-mode-aims-at-ai-with-a-4096-core-7nm-risc-v-monster/ <comment><USER2> Nothing really new about this, the most relevant for most people is that Esperanto will hopefully put a lot of love into the open source BOOM repository.

[https://github.com/ucb-bar/riscv-boom](https://github.com/ucb-bar/riscv-boom)

That will help Open-Source projects such as LowRisc.

[http://www.lowrisc.org/](http://www.lowrisc.org/)

<comment><AUTHOR> Boom isn't nearly as relevant as what Esperanto is trying to deliver. In fact, one can say Boom is the reason why companies have been reluctant to switch to RISC-V. Experienced engineers don't want a generator or other tools such as Chisel. They want standard synthesizable code and IP cores that were optimized for leading edge processes using standard CAD tools. This is what Esperanto is promising and is far more important than Boom.

<comment><USER2> Where have I said that there help for boom is the main thing that they are delivering?

There involvment will help and some of their work will be upsteamed and that will help other people do the same. Also the maintainer will work for them and have access to a lot of knowlage and get some time to maintain the project.

Also there are many interesting projects that do care about using better tools such as Chisel, you also don't need 'leading edge processes' for every application either.

Any improvment on Boom will help projects such as Low Risc.

</comment></comment></comment><comment><USER3> I keep reading articles like this about plans to productionize RISC-V processors. I'm rooting for RISC-V, but from what I've read it's difficult to get a sense of progress here.

Is there anything on the market that offers price/perf close to Intel's consumer chips? How powerful are RISC-V out-of-order cores compared to Intel's recent microarchitectures? How about compared to Apple's ARM cores?

<comment><USER4> > How powerful are RISC-V out-of-order cores compared to Intel's recent > microarchitectures? How about compared to Apple's ARM cores?

BOOM is not really the same class as Intel, or higher end Apple cores. BOOM targeted something around an ARM A9 in perf.

<comment><USER5> And for further context, the arm cortex A9 is what was in an apple A5...

</comment></comment></comment><comment><USER6> There's also Wave Computing.</comment>


Intro to Docker and how we use it at WriteLaTeX - <AUTHOR> http://jdlm.info/ds-docker-demo/ <comment><USER2> Yay, the first Docker post I can understand. I just installed and used Docker today to get a simple web server running out of a VPS (which is also a first for me as I always used managed services like Heroku).

However, some aspects of Docker leave me with concerns that it may not be the tool for me. I tried installing the official node image and it downloaded hundreds of megabytes of other images (probably over a GB). Not that much of a problem on my VPS but absolutely unusable anywhere else in my corner of the world.

Looks like I'll have to create my own images and use my own private local registry to make use of Docker outside of my VPS.

<comment><USER3> Yeah, those are layers in the image. That image [1] (727MB) is built on buildpack-deps [2] (695MB) which is itself built on the base jessie (154MB).

It would be pretty straightforward to adapt those Dockerfiles to create an image which includes only the dependencies for building node. It would end up looking a lot like 'node:slim' [3] (288MB).

Ideally, Docker will eventually have the functionality to more easily strip out transient requirements like build dependencies from the final images.

1: [https://github.com/docker- library/node/blob/013858ac35afb9ca...](https://github.com/docker- library/node/blob/013858ac35afb9ca7b10102956427b629e7708da/0.10/Dockerfile)

2: [https://github.com/docker-library/buildpack- deps/blob/a201b1...](https://github.com/docker-library/buildpack- deps/blob/a201b127ddf29f47738a9fd04b2f004eb41b009f/jessie/Dockerfile)

3: [https://github.com/docker- library/node/blob/013858ac35afb9ca...](https://github.com/docker- library/node/blob/013858ac35afb9ca7b10102956427b629e7708da/0.10/slim/Dockerfile)

</comment></comment><comment><USER4> Great presentation, it was very easy to follow and understand.

Quick question though: is the only reason for using Docker containers with LaTeX file compilation for providing isolation between documents? Isn't there a performance hit versus running file compilation directly on worker machines, perhaps with some sort of folder-based isolation (workers will only compile files in folders that the user has permissions to)?

<comment><AUTHOR> Thanks!

Isolation is definitely one of the main benefits for us. Compared to e.g. a chroot, docker also lets us disable networking and restrict memory etc. for the process in the container. It's another important layer of security.

Another benefit is that the Dockerfile also makes it a lot easier to manage installation of all the LaTeX packages, fonts and various scientific software that we have installed.

The overheads seem to be very low --- less than 100ms extra startup and tear down time, and no significant difference in runtime speed.

</comment></comment><comment><USER5> > Each compile job gets its own short-lived container

Just curious, how do handle input and output? Do you prepare a volume with the input and then grab output from there as well, or the program inside the container is fetching input from somewhere first, runs exec latex and then uploads the output elsewhere?

<comment><AUTHOR> Yes, we use a volume to get files in and out of the container, and then we upload the relevant files to Cloud Files for the client.

</comment></comment><comment><USER6> Love the format of your presentation. I wish all web based presentations were like that.

</comment><comment><USER7> Docker as a layer of security vs. untrusted user input being compiled as root?

I'd be interested in hearing more about the decision-making since Docker doesn't claim to provide protection from untrusted users.

<comment><AUTHOR> Running untrusted programs as root in a docker container is definitely not recommended (and indeed you should be very wary of running anything as root). In the slides, I didn't have time to go into how to run processes in containers without root privileges, but docker does provide features for doing so, and it's definitely worth using them.

<comment><USER8> Would you please consider modifying or extending this presentation to include other basics? You did a great job at making Docker finally understandable as a whole. I'd love to see more of your writing on this topic.

<comment><AUTHOR> Thanks! I will see what I can do to add more. Note that the source for the slides is on github [1], so anyone who'd like to pitch in can do so, and that would be most welcome.

[1] [https://github.com/jdleesmiller/ds-docker- demo](https://github.com/jdleesmiller/ds-docker-demo)

</comment></comment></comment></comment><comment><USER9> I disagree with running RVM in a docker container. The point of RVM is to manage multiple versions of ruby and a container is only meant to have a single responsibility so running multiple versions of ruby is not advised.

I think you're better off installing the required version with Ruby Install [1] rather than adding the complexity of a version manager.

[1] - [https://github.com/postmodern/ruby- install#readme](https://github.com/postmodern/ruby-install#readme)

<comment><AUTHOR> That's a fair point. I guess I recommended RVM by default, since it's what I usually use. Pull requests welcome! [1]

[1] [https://github.com/jdleesmiller/ds-docker- demo](https://github.com/jdleesmiller/ds-docker-demo)

</comment></comment><comment><USER10> Really nice presentation. Thanks for sharing this!

</comment><comment><USER11> q: what did you use to generate the slides?

edit: I see: cleaver

<comment><AUTHOR> They're generated by cleaver: [https://github.com/jdan/cleaver](https://github.com/jdan/cleaver)

You can see how it's set up in the github repo for the slides: [https://github.com/jdleesmiller/ds-docker- demo](https://github.com/jdleesmiller/ds-docker-demo)

</comment></comment><comment><USER12> Would it be possible for you to add support to other TeX formats, in particular, ConTeXt?

<comment><AUTHOR> Yes, we are planning to support ConTeXt on writeLaTeX. I think you can vote for it (or add it) on our feedback forum: writelatex.uservoice.com.</comment></comment>


Why it sucks to build a startup with the "Google Method" - <AUTHOR> http://thestartupfoundry.com/2011/06/08/it-sucks-to-build-a-startup-with-the-google-method/

<comment><USER2> This is not just the Google method. It is also the Facebook, Twitter, and probably Quora method, where you defer thinking about monetisation in order to first better define your product and gain many users.

And in fact it's only obvious in hindsight that this method worked for Google. For a long time before they came up with AdWords they were burning through cash with no clear idea of how to generate profits. Their VC's were rather nervous at this.</comment>