• Activity
  • Votes
  • Comments
  • New
  • All activity
    1. Do you enjoy programming outside of work?

      I have found this to be a semi controversial topic. Its almost becoming a required point for getting a new job to have open source work that you can show. Some people just enjoy working on...

      I have found this to be a semi controversial topic. Its almost becoming a required point for getting a new job to have open source work that you can show. Some people just enjoy working on programming side projects and others don't want to do any more after they leave the office.

      Whats your opinion on this? Do you work on any side projects? Do you think its reasonable for interviewers to look for open source work when hiring?

      16 votes
    2. Coding Challenge - Design network communication protocol

      Previous challenges It's time for another coding challenge! This challenge isn't mine, it's this challenge (year 5, season 3, challenge 3) by ČVUT FIKS. The task is to design a network...

      Previous challenges

      It's time for another coding challenge!

      This challenge isn't mine, it's this challenge (year 5, season 3, challenge 3) by ČVUT FIKS.

      The task is to design a network communication protocol. You're sending large amount of bits over the network. The problem is that network is not perfect and the message sometimes arrives corrupted. Design a network protocol, that will guarantee that the decoded message will be exactly same as the message that was encoded.

      MESSAGE => (encoding) => message corrupted => (decoding) => MESSAGE
      

      Corruption

      Transmitting the message might corrupt it and introduce errors. Each error in a message (there might be more than one error in a single message) will flip all following bits of the message.

      Example:

      011101 => 011|010
      

      (| is place where an error occured).

      There might be more than one error in a message, but there are some rules:

      • Minimum distance between two errors in a single message is k

      • Number of bits between two errors is always odd number

      According to these rules, describe a communication protocol, that will encode a message, and later decode message with errors.

      Bonus

      • Guarantee your protocol will work always - even when errors are as common as possible

      • Try to make the protocol as short as possible.

      8 votes
    3. Programming Challenge: Build an Interpreter

      Hello everyone! It has been a while since last programming challenge, it's time for another one! This week's goal would be to build your own interpreter. Interpreter is program that receives input...

      Hello everyone! It has been a while since last programming challenge, it's time for another one!

      This week's goal would be to build your own interpreter.

      Interpreter is program that receives input and executes it. For example Python is interpreted language, meaning you are actually writing instructions for the interpreter, which does the magic.

      Probably the easiest interpereter to write is Brainfuck interpreter. If someone here doesn't know, Brainfuck is programming language, which contains following instructions: ,.<>[]-+. Other characters are ignored. It has memory in form of array of integers. At the start, pointer that points to one specific memory cell points to cell 0. We can use < to move pointer to left (decrement) and > to move pointer to right (increment). . can be used to print value of cell the pointer is currently pointing to (ascii). , can be used to read one character from stdin and write it to memory. [ is beggining of loop and ] is end of loop. Loops can be nested. Loop is terminated when we reach ] character and current value in memory is equal to 0. - can be used to decrement value in memory by 1 and + can be used to increment value in memory by 1. Here's Hello World:

      ++++++++++[>+++++++>++++++++++>+++>+<<<<
      -]>++.>+.+++++++..+++.>++.<<++++++++++++
      +++.>.+++.------.--------.>+.>.
      

      People with nothing to do today can attemp to make an interpreter for the Taxi programming language.

      You can even make your own language! There are no limits for this challenge.

      23 votes
    4. I want a budget mechanical keyboard. Help me.

      I'm looking for a cheap small factor mechanical keyboard. I love the looks of XD64 or a JJ50. How do i go about it? I Don't want the numpad, don't care about leds and prefer more retro/sober...

      I'm looking for a cheap small factor mechanical keyboard. I love the looks of XD64 or a JJ50. How do i go about it? I Don't want the numpad, don't care about leds and prefer more retro/sober styles than the ones with wings and dragons and lasers blazing across the keys.

      I live in Brazil, so i'll have to import everything. I'm looking to buy everything from one place if possible.

      I was looking at KPrepublic. What do i need for the xd64?

      1. Plastic case
      2. Key caps
      3. XD64 PCB with gateron switchs (Kit 10)

      Do i need plate and stabilizers? It's already $91 without it. If it's necessary, i think it would be a better idea to just buy a Durgod Taurus k320 since it's cheaper.

      What do you guys think?

      EDIT: Got a Magicforce 68 for $47. Thanks for the help!

      10 votes
    5. My first time using LInux as someone who's not a computer aficionado - It's perfect

      To clarify I'm not incompetent at computers, I'm sure people don't tend to install Linux if they aren't familiar with technology in a decent capacity. But for instance I can't code, can't operate...

      To clarify I'm not incompetent at computers, I'm sure people don't tend to install Linux if they aren't familiar with technology in a decent capacity. But for instance I can't code, can't operate the command line short of copying and pasting command, and don't really know what I'm doing with the technical aspect other than following online guides. I have used windows all my life. I'm Linux illiterate for lack of a better description.

      I decided I wanted some form of USB bootable computer, i'm familiar with chrome books, enjoy the light weight OS, and am bed bound to the google ecosystem so I when I saw how you could plug in a USB and have the computer boot into Chrome OS running off the USB I thought that sounded perfect. But during my research of discovery I found that Linux seemed like a very good alternative, I had always had it in my head that it was very technical and finicky system where to do a simple google search you had to code in half a dozen lines into the control terminal in some bizarre 2018 text adventure to use the web, I do exaggerate of course but the image I had conjured up over the years was of a very non-user friendly experience and a system made for those running technical aspects such as web servers and system management.

      I decided you can't knock it to you try it and besides turns out you can't get chrome OS on a 32GB USB it has to be 8GB or 16GB apparently. So I installed Ubuntu on my USB, no clue if this is some snooty distro, or a version of Linux that's mocked in the community, or the perfect distro but after minimal research it seemed the most popular and well received version to put it on a USB and booted into it.

      Instantly all my preconceived notions we're erased. It's clean, modern, simple, light weight, and easy to use with a very intuitive and familiar UI. It's pretty much a more open and degooglified (That's a nice word) version of Chrome OS. Since Firefox Quantum was released I emigrated over to try break some ties with google for privacy reasons like it's some pervy conjoined twin of mine, I know it's not good for me, I don't want it there but I can't get rid of it without harming me.

      It's got a simple UI that's familiar to windows albeit without all the bloatware and ads spread everywhere, it doesn't track you like window does (that's as far as I'm aware it did ask to collect anonymised telemetry data which I opted out of). With windows I'm so used to having to go through 3 different pop up windows to change a setting that in Ubuntu it feels like I'm missing features although I'm yet to find one that's not there. The best bit about Linux, is if theirs a setting you want to change and can't find, than someone online has wrote a guide giving you a command line code to copy paste into the terminal to fix it.

      Although to me it feels more on par with Chrome OS than Windows as a bare bones OS with simple apps and a web browser to use the internet with, in this regard Linux wins easy, way more open, no profit based motivation, and more accessible allowing itself to be used anywhere.

      All though that comparison holds up for the normal user and if you are someone who just browses the web and uses apps like Spotify than Linux is amazing it's not complex or difficult, truly wonderful.

      What makes Linux even better is the fact it's not a fair comparison, sure to me it's like Chrome OS due to the simple purposes I use it for but what's truly great is all that nerdy technical stuff I thought Linux was for you can do, if you are hosting a web server than linux gives you a free platform to do it, it feels like you are directly modding the PCB of the computer it's that open.

      In retrospect to typing all that I feel I've just blurted out a generic description of Linux and for those that use it I'm sure they just think I was naive, but this is more aimed at the average user, Linux, or at least Ubuntu, is great, it's: simple, easy, fresh, clean, open, modern, intuitive, versatile, multi-purpose, and free. It's not some difficult to use system, it's alarmingly simple, but infinitely useful

      It's easy to learn and difficult to master.

      64 votes
    6. How much testing do you guys do?

      Pretty straight forward question, but basically I was watching a discussion panel the other day talking about the ethics of Self-Driving cars. A topic came up about people writing crappy code, and...

      Pretty straight forward question, but basically I was watching a discussion panel the other day talking about the ethics of Self-Driving cars. A topic came up about people writing crappy code, and more than that, people not testing their code. And if they do, they do point testing. I am in my last semester of uni and I am working with some companies where we are doing pretty extensive testing, happy flows and a lot of alternate flows, as well as UI/UX testing. I wanted to extend this question to you, do you guys do testing, what type? How much do you focus on it? And if u love it/hate it?

      12 votes