• Most votes
  • Most comments
  • Newest
  • Activity
    1. Its been a while since we did one of these, which is a shame. Create a program that takes is an input of the type: "d6 + 3" or "2d20 - 5", and return a valid roll. The result should display both...

      Its been a while since we did one of these, which is a shame.

      Create a program that takes is an input of the type: "d6 + 3" or "2d20 - 5", and return a valid roll.
      The result should display both the actual rolls as well as the final result. The program should accept any valid roll of the type 'xdx'
      Bonuses:

      • Multiplication "d6 * 3"
      • Division "d12 / 6"
      • Polish notation "4d6 * (5d4 - 3)"

      As a side note, it would be really cool if weekly programming challenges became a thing

      33 votes
    2. I saw back in January that a lot of you were on Linux, I guess I should've expected that considering it's ~comp but I'm curious how the trend is going. But to spice things up a little bit more,...

      I saw back in January that a lot of you were on Linux, I guess I should've expected that considering it's ~comp but I'm curious how the trend is going. But to spice things up a little bit more, tell us about you favourite programs, any hidden gems?

      I personally run a fairly standard Fedora 30 install running gnome and some flatpaks. I'd say my favourite programs are

      Gnome Builder :

      Well, I've been trying to fight the electron uprising while still using a modern and open source IDE and well, I think it works great and looks pretty good too.

      Dino.im (Using the Flatpak PR) :

      It's light, supports XMPP and looks relatively modern, what more could you ask?

      Firefox gnome theme :

      It's not really a program and just really a skin for Firefox but I really like it. It integrates pretty neatly with the rest of the desktop. Can't wait for the Gnome 3.32 changes to come in though since it kinda clashes with the new theme.

      27 votes
    3. When Edge died, I got worried about loosing competition to the Blink engine and as such, I went exploring other alternatives to realize.. there's not a whole lot, there's blink, gecko and webkit....

      When Edge died, I got worried about loosing competition to the Blink engine and as such, I went exploring other alternatives to realize.. there's not a whole lot, there's blink, gecko and webkit.

      So with that, I decided to try epiphany - Gnome's web browser. It uses Webkit which is what Blink was forked from so it's not terribly different in theory but the years apart has made that more apparent. It's fairly elegant in my opinion and it lacks some features, sure.


      Anyways, to get to what I wanted to do this week, well, I'd like to challenge you all to use it for a week, mostly for bug hunting purposes and possibly to throw ideas at the project. Worth mentioning, I'm not affiliated with the project, just a user.

      So to make sure we're all on the same page, we'll use the development Epiphany flatpak, this way we can be sure that the problem is in the current codebase. So, to install it :

      Let's install the gnome-nightly repos as per instructions here :

      flatpak remote-add --if-not-exists gnome-nightly https://sdk.gnome.org/gnome-nightly.flatpakrepo
      flatpak remote-add --if-not-exists gnome-apps-nightly --from https://sdk.gnome.org/gnome-apps-nightly.flatpakrepo
      

      Then, let's install the development version by doing so :

      flatpak install org.gnome.Epiphany.Devel
      

      Then just launch it and have fun with it!


      if you run into any bugs, look at the contribution guide here and report the bugs in the repo after checking that the bug is not already present of course!

      12 votes
    4. Wow it was hard to describe this in the title! I should have said "data-centric APP" not UI. Sorry! LOL I have had an idea for 25 years that I keep NOT pursuing because I was convinced that the...

      Wow it was hard to describe this in the title! I should have said "data-centric APP" not UI. Sorry! LOL
      I have had an idea for 25 years that I keep NOT pursuing because I was convinced that the next big version of Linux/Windows/etc would include a more civilized way to manage data. It just seems obvious in my strange mind, I guess that means intuitive. I've discussed the idea and worked on refining the concepts with about 20 people and they all agreed.

      My idea is based on a huge paradigm shift about managing all forms of data by the user. It's about how we manage data, not just file-system stuff or yet-another Windows/File Explorer or any of the numerous current Linux varieties. I'm honestly shocked that in 2019, the most original idea that's come about is to remove all the menus and toolbars (freeman) or add a bunch of tabs and hundreds of buttons (pretty much everything on Windows).

      I am a software engineer and designer with 35 years experience - but with business class apps, not OS stuff. I am semi-retired and have a great deal of time to work on whatever interests me. And please note: Despite my advanced years ;-) LOL I am very current on the technologies I work with daily, which is mainly .net/c#. However, I just finished a year-long project that had a Java client running on a Raspberry Pi (which I love) paired with a WCF service running in IIS, along with an asp.net web client. Now I'm not an expert in any of that, but I'm not too shabby I don't think as I've made a good living and do mostly volunteer work right now.

      I currently manage a massive amount of data, from files/dirs on Windows and Linux file-systems, to MSSQL and mySQL on both Windows and Linux, and of course some cloud data. And it takes several tools as you know, and it's incredibly inefficient and painful. And of course on Windows, Windows/File Explorer is - eh, I can't find a word strong enough. On Linux not much better. And I've spent the past two years searching, researching, testing, and praying.

      My idea is to build an app that allows users - not just developers like me - but mostly aimed at business users - to manage data from various sources/technologies in a single unified and intuitive manner. The physical aspect is divorced from the UI which is divorced from the management engine. And it's grouped the way the user THINKS and WORKS with it. For example, let's say for PROJECT-A (and Client-1) I have various source code locations on 2 local hard drives, but also documents (technical specs, or maybe letters to the client, spreadsheets or timelines), and of course likely a database or two, some web-site links. How many places and how many apps would I have to use today to keep them all close by so I could get to them? Well, there'd be a couple of drive letters probably, maybe a few sub-folder levels deep, maybe documents on a network share, some collaborative docs in the cloud, and some web-site links in whatever-browser-you-use. You get the idea.

      No file manager on any OS can give you much more than "Places" or file-system - drive letters on Windows or some mount points on Linux. Things like MyDocuments, MyMusic, MyInsanity - that stuff makes no sense because it's not how people work. What I want is a "work-space" where I can have any number of what I call "Data Sources" - and it doesn't matter what physical technology is underneath it - local hard drive, local sub-folder, mapped drive, unc mount, cloud, ftp - don't care - don't need to. I create a work-space, add data sources, order them however I want, name them whatever I want, and each "Data Source" has a manager or provider. A filesystem provider would make your data source look like Windows Explorer. But a database provider could look like MS SQL Server Manager or other db admin tool. And you put that workspace in a tab if you want, and have as many others in other tabs - or you put them on a menu, or on a popup that a middle-click brings up - doesn't matter. And everything I've just written, plus it's settings, is represented by Viewer objects. A hierarchical - tree-view or the likes - a flat view - a list-view - a preview pane, or editor pane - navigation tool (path/breadcrumbs) - a command line shell pane - drag/dock wherever in the tab you want. A main menu/toolbar + status-bar would be global and shared. And all THAT is bundled into a PARENT object - which contains the work-spaces, which contains the tabs, which contains the data sources + provider views/panes. And you can have as many of THOSE - parent objects - as you need, easily accessible in the custom titlebar at the top, or bottom, etc..

      The point is - when I am working on PROJECT-A I manage it in a tab that contains ONLY the drive letters, or mount points, that are relevant (and named what I choose, meaning no drive letters forced on me even if that is the underlying reality nor any full paths or full URLs - just logical names I assign). This will NOT be some massive file manager with every folder on the system or 18 drive letters I'll never use. It will have all the web-site bookmarks I need, as well as databases I'm working with. This won't be an ALL-IN-ONE type of thing - you will STILL use your external apps, web browser, IDE or editor, mail app - but it will be a SINGLE place where ALL those data items get represented and where you can manage them in exactly the same way. I can copy/paste an email message to a file on my workstation, or copy a file from a network share to some machine remotely using ftp or http.

      I hope this makes some kinda sense and doesn't just sound like the ramblings of yet-another aging geek who thinks he's got a great new idea. My usage scenarios are literally based on things I do every day, and are the result of observing myself as I work to see what my mind is doing. I do realize that we all work in our own way, and I've taken that into account. But there are basic things we all do concerning data management. And as I have hired, trained, and worked with a huge number of fellow programmers over my 35 years - without exception this was the most common soft point for them all. Keeping track of data. The same applies to all my clients. I've written software for accountants and attorneys, and a wide variety of business types - and without exception - every one of them had trouble with managing their data. One look at their Desktop or MyDocuments - or just watching them trying to find a letter in MS-Word - tells the whole story.

      Ok there's my pitch - I'm looking for anyone who has interest, no matter what your skill level or how much time you can or cannot devote. We need people who can contribute only opinion and advice, as well as hardcore keyboard jocks like me who love to code for 36 hours at a clip ;-) LOL

      12 votes
    5. I'll be writing a relatively large piece of scientific code for the first time, and before I begin I would at least like to outline how the project will be structured so that I don't run into...

      I'll be writing a relatively large piece of scientific code for the first time, and before I begin I would at least like to outline how the project will be structured so that I don't run into headaches later on. The problem is, I don't have much experience structuring large projects. Up until now most of the code I have written as been in the form of python scripts that I string together to form an ad-hoc pipeline for analysis, or else C++ programs that are relatively self contained. My current project is much larger in scope. It will consist of four main 'modules' (I'm not sure if this is the correct term, apologies if not) each of which consist of a handful of .cpp and .h files. The schematic I have in mind for how it should look is something like:

      src
       ├──Module1 (Initializer)
       │         ├ file1.cpp
       │         ├ file1.h
       │         │...
       │         └ Makefile
       ├───Module2 (solver)
       │          ├ file1.cpp
       │          ├ file1.h
       │          │...
       │          └ Makefile
       ├───Module3 (Distribute)
       │          ├ file1.cpp
       │          └Makefile 
       └ Makefile
      

      Basically, I build each self-contained 'module', and use the object files produced there to build my main program. Is there anything I should keep in mind here, or is this basically how such a project should be structured?

      I imagine the particularly structure will be dependent on my project, but I am more interested in general principles to keep in mind.

      15 votes