• Activity
  • Votes
  • Comments
  • New
  • All activity
    1. Reading Series: The Phoenix Project

      Hey Tildes, Any interest in a weekly reading series of The Phoenix Project, by Gene Kim? It's a fantastic novel on IT infrastructure, process control, and promoting dev ops culture.

      8 votes
    2. Weekly Programming Challenge - making our own data format

      Hi everyone! There was no coding challenge last week, so I decided to make one this week. If someone wants to make his own challenge, wait few days and post it. I'm running out of ideas and I'd...

      Hi everyone! There was no coding challenge last week, so I decided to make one this week. If someone wants to make his own challenge, wait few days and post it. I'm running out of ideas and I'd like to keep these challenges running on Tildes.


      Everyone here knows data formats - I'm talking about XML or JSON. The task is to make your own format. The format can be as compact as possible, as human-readable as possible, or something that's really unique. Bonus points for writing encoder/decoder for your data format!

      How do you handle long texts? Various unicode characters? Complex objects? Cyclic references? It's up to you if you make it fast and simple, or really complex.

      I'm looking forward to your data formats. I'm sure they will beat at least csv. Good luck!

      8 votes
    3. Advice on how to make a personal website

      Hi, I want to make a personal website, as basic as possible (I don't even want SEO or stuff like that). This is totally a personal project, I don't want to generate revenue from it or anything...

      Hi,

      I want to make a personal website, as basic as possible (I don't even want SEO or stuff like that).

      This is totally a personal project, I don't want to generate revenue from it or anything like that (at least for now), I just want an old school website to link it to possible employers and contacts. I have about 12 years of coding experience but mostly low-level (DSP, ASM, C, C++) and scientific code (Python, R, Julia). So I'm not scared of doing it from scratch (even though it will be much uglier in the beginning than pre-generated websites) or using some basic lightweight libraries.

      Until now I have been using github pages but I want to put some projects that require server side work, so I'll probably have to host somewhere else. I really like tildes' technical goals, but I don't know if the stack it uses is overkill for a personal website (I know I will need some database for some of the projects though).

      My questions are:

      • Is Pyramid a good choice or is it more appropriate for huge multiuser platforms? I do need some level of interaction between users (some of my more artsy projects are related to NLP) as well as interaction between user-server (some projects include simulations with parameters etc.).
      • How does hosting/DNS work? How much should I expect to spend per year? I know there exist hosting services and also places like Heroku, I don't really know the difference between them or what should I be looking for.
      • How much should I worry about security? In other words, what is the threat level? I don't plan to have confidential info in the website, or information about the users (other than a hash value). But should I be worried about other kind of threats?
      • Is making a website as basic as possible and then keep on improving it as time goes a sound plan for a long-term personal project? With this I mean, will it be fun or will it be 100% frustrating and I should just go to (whatever hosting service that has premade web applications) and make my website there even though it will be bloated with scripts and stuff?
      • Is there something I'm not asking that I should be asking? As I said I know how to code but it feels like web development is a completely different beast sometimes.
      • Is there any compelling reason for me to use google analytics, SEO, all that stuff that big websites use? I have never understood the point for it in, for example, github pages.

      Thanks for your help! Feel free to correct me on any stupid thing I may have said, I definitely speak from ignorance.

      Edit: My biggest issue with this kind of format for conversations is that I cannot thank everybody at the same time, and responding to everyone with a thanks is definitely not contributing anything to the conversation. So I'll put it in an edit. Thanks for all your help! I'll probably be coming for more advice soon...

      22 votes
    4. Self-directed learners of programming, sysadmin topics and so on: what is your approach to material that is too advanced?

      First post: hello Tildeans! In fairness, the title question no doubt applies to those on traditional courses/paths too - such is software. Anyway -- in my experience, reading technical material...

      First post: hello Tildeans!

      In fairness, the title question no doubt applies to those on traditional courses/paths too - such is software.

      Anyway -- in my experience, reading technical material which is too advanced is without a doubt the most intellectually confusing, emotionally damaging, and personally rewarding part of learning about software development. How about you?

      I started basically from scratch last September without any knowledge about programming or Linux except a very brief stint in 2010. I'm a somewhat disorganised person (to say the least), and my learning habits have reflected that: I've followed my nose and impulse, reading pretty much whatever I've felt like. But I've ended up with a presumably ridiculous ratio of hours reading about code vs hours actually coding.

      I'm a lazy person, so I'd rather sit and struggle with something I am definitely not ready to understand than go sit in front of a REPL, working from the ABCs til I can do the A-Zs. But the longer I look into things, and the more I play, the more I realise how much coding is like an instrument -- you really do have to just sit down and practice your damn scales! My experiences also support the argument for that 'T-shape' style of mastery (learn one thing very well, then branch). 20-odd Project Euler problems in a week or two has taught me far more than several months half-reading or half-listening to online material.

      (Though, I think my 'inverse-T' approach simply has it's own set of trade-offs, rather than being plainly weaker, but that's for another discussion...)

      The most ridiculous thing about this field is that there is no end to things you've never heard of: and I hate not having heard of things. My usual style when getting into a new obsession is to read very widely, but it feels like this is at best wasted effort here, if not actively counter-productive. It takes just a few clicks through HackerNews (or say, a read of some of the comments on Systems Programming topics) to find a paragraph that is entirely impenetrable to me. Man, that pisses me off. I think maybe as an ego-defense thing, I've always tried to get a 'gist' of the conversation or topic, but I reckon now this probably just breeds half-formed misunderstandings at best (Alexander Pope, "a little learning is a dangerous thing" etc etc).

      Over the past couple months I've made far more visible progress than in any before, and I think a large part of that is learning how to admit when I am completely unable to access some sentences written in English, and how that's totally fine. My path is a lot clearer, and a visceral notion of sub-goals and stages of learning is a really nice thing to have. It's very relaxing to skim a blog post that goes completely over my head and think 'NBD'.

      So, what are your experiences? Blocked by hubris/a short attention span like me? Or perhaps the opposite problem - finding you could grasp way more than you gave yourself credit for, after sticking too long with what you already knew? (These questions definitely intersect with things like perfectionism and imposter syndrome.)

      I'm really curious to hear how you've dealt with things you feel you 'should' understand -- or how you manage the sheer volume of potentially-useful information out there (RSS, Pocket, something else?). Thanks for reading.

      14 votes
    5. Alternatives to Markdown for writing short documentation/TODOs?

      Hi guys, I often find myself writing small text files for projects, like a bit of documentation or TODOs. I have a proper system in place for larger projects, but would love to be able to scribble...

      Hi guys,

      I often find myself writing small text files for projects, like a bit of documentation or TODOs. I have a proper system in place for larger projects, but would love to be able to scribble down things for larger ones.

      As big of a fan of Markdown as I am, I find that it's often inappropriate for these kinds of tasks. For example, I find myself mimicking a task list with multiple-paragraph list items.

      What do you guys use? Do you know of any Markdown alternatives that give you a bit more control over the layout?

      Thanks!

      14 votes
    6. Need help dispelling myths about how hackers access websites

      I hope I’m posting this in the correct place. I’ve been having a disagreement with someone over the abilities of hackers. I kinda hope Deimorz pops in because he wrote automod. I said that the...

      I hope I’m posting this in the correct place. I’ve been having a disagreement with someone over the abilities of hackers. I kinda hope Deimorz pops in because he wrote automod.

      I said that the only way for someone to gain access to a subreddit to make changes is if they steal a moderator’s account password or they are added to the mod team. The person I’m having a disagreement with believes that adding text to the wiki for users to view (like the extensive wiki r/skincareaddiction has) would make it easier for hackers to insert malicious code in order to gain access to the sub. This person also mentioned being able to change the subreddit through browser tools. She insists the sidebar and wiki are potential access points for scripting attacks. Automod just so happens to be enabled which is why I mentioned Deimorz.

      I’m not an IT professional. My brothers currently are which helped me learn most of what I know. I’ve supplemented that over the years with whatever info I came across online. What she’s saying sounds like crazy town to me. But since I’m not a hacker, is there a way to use the sidebar or wiki area to hack into a subreddit?

      Thanks in advance to anyone who pities me by providing a detailed answer to this thinly veiled request to help me win an internet argument 🙇🏾‍♀️.

      10 votes
    7. Sysadmin Appreciation Day

      Barely half an hour ago, I wrote a comment linking to this entertaining piece and re-discovered this little snippet: Most people don’t even know what sysadmins do, but trust me, if they all took a...

      Barely half an hour ago, I wrote a comment linking to this entertaining piece and re-discovered this little snippet:

      Most people don’t even know what sysadmins do, but trust me, if they all took a lunch break at the same time they wouldn’t make it to the deli before you ran out of bullets protecting your canned goods from roving bands of mutants.

      Having not had a dedicated sysadmin to help me with the myriad of headaches I've had to deal with over the last few months, this has only proven to me to be a truer statement than I had ever realized. Then, out of curiosity, I decided to look into when sysadmin appreciation day was. It turns out that, quite serendipitously, it happens to be today.

      So, with that in mind, I thought I would take a moment to remind you all to remind your sysadmins just how much you appreciate them keeping the roving bands of mutants at bay with all that they do. And to those of you who are yourselves sysadmins, keep being awesome :)

      29 votes
    8. For any given product, why is the iOS client often the best client?

      Background: I was deciding what to do since we use Atlassian’s Stride and it will be sunsetted. For us, the options are Teams or Slack. I’m going to give Teams a try since we already pay for it....

      Background:
      I was deciding what to do since we use Atlassian’s Stride and it will be sunsetted. For us, the options are Teams or Slack. I’m going to give Teams a try since we already pay for it. Someone I know also happens to be a PM there. I texted him “wow, Teams iOS has a 4.7 rating in the App Store!” He said, yes, it’s probably our best client. It made me realize that this is very often the case. The iOS client is often the best client for many services.

      Questions:
      Do you all find this to be true as well?

      If so, why do you think this is? iOS itself? iOS app guidelines? iOS devs are more product minded? Android device fragmentation?

      Any and all thoughts appreciated.

      note: I am mobile OS agnostic, I use them all (both) regularly.

      12 votes
    9. Programming Challenge: creative FizzBuzz

      Pretty standard: Write a program that prints the numbers from 1 to 100. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which...

      Pretty standard:

      Write a program that prints the numbers from 1 to 100. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”.

      The twist: come up with the most creative or unusual way to solve this in your language of choice.

      39 votes
    10. Programming Challenge: Freestyle textual analysis.

      I just realized that I completely glossed over this week's programming challenge. For this week, let's do something more flexible: write a program that accepts a file as input--either through a...

      I just realized that I completely glossed over this week's programming challenge. For this week, let's do something more flexible: write a program that accepts a file as input--either through a file name/path or through standard input--and perform any form of analysis you want on its contents. That's it!

      For instance, you could count the occurrences of each word and find the most common ones, or you could determine the average sentence length, or the average unique words per sentence. You could even perform an analysis on changes in words and sentence structure over time (could be useful for e.g. poetry where metre may play an important role). You can stick with simple numbers or dive right into the grittiest forms of textual analysis currently available. You could output raw text or even a graphical representation. You could even do a bit of everything!

      How simple or complex your solution ends up being is completely up to you, but I encourage you to challenge yourself by e.g. learning a new language or about different textual analysis techniques, or by focusing on code quality rather than complexity, or even by taking a completely different approach to the problem than you ordinarily would. There are a lot of learning opportunities available here.

      11 votes
    11. Thoughts on a ~comp survey of some sort?

      After seeing the "what OS do you use?" thread earlier, I was wondering what everyone here on ~comp would think of a sort of group demographics survey. I think that it would be super interesting to...

      After seeing the "what OS do you use?" thread earlier, I was wondering what everyone here on ~comp would think of a sort of group demographics survey. I think that it would be super interesting to see the data on things like preferred OS, main programming language, preferred text editor/IDE, device OEM, etc.

      14 votes
    12. Programming Challenge - Let's build some AI!

      Hi everyone! In this challenge, we will build simple genetic algorithm. The goal is to create genetic algorithm that will learn and output predefined text ("Hello World!"). The goal can be...

      Hi everyone! In this challenge, we will build simple genetic algorithm.

      The goal is to create genetic algorithm that will learn and output predefined text ("Hello World!").

      The goal can be achieved with any language and you'll need just simple loops, collection and knowledge how to create and use objects, even beginners can try to complete this challenge.

      How?

      I'll try to explain it as best as I can. Genetic algorithms are approximation algorithms - they often do not find the best solution, but they can find very good solutions, fast. It's used when traditional algorithms are either way too slow, or they even don't exist. It's used to, for example, design antennas, or wind turbines. We will use it to write "Hello World".

      First of all, we define our Entity. It is solution to given problem, it can be list of integers that describe antenna shape, decision tree, or string ("Hello World"). Each entity contains the solution (string solution) and fitness function. Fitness function says, how good our entity is. Our fitness function will return, how similar is entity solution text to "Hello World" string.

      But how will the program work? First of all, we will create list of entities List<Entity>. We will make, for example, 1000 entities (randomly generated). Their Entity.solution will be randomized string of length 11 (because "Hello World" is 11 characters long).

      Once we have these entities, we will repeat following steps, until the best entity has fitness == 1.0, or 100% similarity to target string.

      First of all, we compute fitness function of all entities. Then, we will create empty list of entities of length 1000. Now, we will 1000-times pick two entities (probably weighted based on their fitness) and combine their strings. We will use the string to create new entity and we will add the new entity to the new list of entities.

      Now, we delete old entities and replace them with entities we just made.

      The last step is mutation - because what if no entity has the "W" character? We will never get our "Hello World". So we will go through every entity and change 5% (or whatever number you want) of characters in their solution to random characters.

      We let it run for a while - and it is done!

      So to sum up what we did:

      entities <- 1000 random entities
      while entities.best.fitness < 1:
        for every entity: compute fitness
        newEntities <- empty list
        1000-times:
          choose two entities from "entities", based on their fitness
          combine solutions of these entities and make newEntity
          newEntities.add(newEntity)
        for every entity: mutate // Randomly change parts of their strings
      
      print(entities.best.solution) // Hello World!
      

      Now go and create the best, fastest, and most pointless, genetic algorithm we've ever seen!

      23 votes
    13. File sharing over a network

      Me and my friend arrive at an arbitrary place, we have access to a network from there. Now, we want to share a file and the network connection is all we have. The challenge: make the file go from...

      Me and my friend arrive at an arbitrary place, we have access to a network from there. Now, we want to share a file and the network connection is all we have. The challenge: make the file go from my device to my friends device in a pure p2p setting. If you know, for sure, that incoming connections are allowed this is very simple but here i want to explore which solutions exist that do not assume this.

      Assumptions:

      • Same network altough possibly different access points (one might be wired and the other wireless)
      • We have no prior knowledge about the network, incoming traffic might be blocked (outgoing isn't for sure)
      • No extra machines can aid in the transaction (no hole punching etc)
      • Should work reliably for any kind of device that you have free -- as in freedom -- control over. that is PCs, android phones/tablets and macs. most of Apple's other hardware can be excluded because they don't allow for anything anyway.
      • hard mode: We are both digitally illiterate

      Goal:

      • Send a file, p2p, from one party to another.

      Me (MSc cs) and my friend (PhD cs) tried to do this last week. And it appears to be among the hardest problems in CS. I would like to discuss this and hear which solutions you might have for this problem.

      Edits:

      1. this is not an assignment
      2. Added some specifics to the assumption set
      3. we're looking for practical solutions here.
      4. more specs
      10 votes