-
4 votes
-
Reddit Terminal Viewer development is shutting down, owner citing burnout and disillusionment with Reddit as a platform
56 votes -
aerc: Email Client for the Terminal
17 votes -
Salsify: Better real-time video
7 votes -
The problem with SSH agent forwarding
4 votes -
CSS Grid Level 2 – subgrid is coming to Firefox
8 votes -
Tech veganism
19 votes -
Why We’re Relicensing CockroachDB
12 votes -
Uncovering the Silicon: demystifying how chips are built and how they work
4 votes -
Tail Call Optimization: The Musical
5 votes -
I’m harvesting credit card numbers and passwords from your site. Here’s how.
17 votes -
What are the main considerations/downsides to make before adding an index to a column
I was asked this question in an interview and I said the downsides would be extra disk space used to store it and more disk writes from the database to maintain the index on updates. I asked a...
I was asked this question in an interview and I said the downsides would be extra disk space used to store it and more disk writes from the database to maintain the index on updates. I asked a friend and he said the downsides are space used in memory to store the index as well as the fact that an index could take days to build on a large dataset.
What does everyone here think about this question?
8 votes -
The GameCube's Lost Internet Browser
19 votes -
100s of tabs: what is there?
Those of you who keep hundreds of tabs open: I'm curious how and why you use them. I'd hoard tabs in the past, but in a sad incident a browser (Firefox) restart caused the loss of all my 10s of...
Those of you who keep hundreds of tabs open: I'm curious how and why you use them. I'd hoard tabs in the past, but in a sad incident a browser (Firefox) restart caused the loss of all my 10s of open tabs that was accumulated over weeks long research about a topic, I decided to never trust tabs again. Now I'm making use of my bookmars toolbar, Org mode and Instapaper for most of the stuff having many tabs open was the method before. So, for me, tabs were for keeping stuff handy during research, read-it-later lists, and temporary bookmarks. What are the use cases for you?
19 votes -
Announcing the Unity Editor for Linux
9 votes -
AMD announced Ryzen 3000
22 votes -
Metadata Investigation: Inside Hacking Team
4 votes -
Seeking recommendations for infosec podcasts
I have been listening to "Darknet Diaries" and it's a great podcast, but I am looking for more. Maybe more technical. Does anyone have any good recommendations? Thanks! Edit: if you are like me,...
I have been listening to "Darknet Diaries" and it's a great podcast, but I am looking for more. Maybe more technical.
Does anyone have any good recommendations? Thanks!
Edit: if you are like me, and learning about this stuff, here is an interesting and hilarious episode of mini-stories from Darknet Diaries: https://darknetdiaries.com/episode/22/
8 votes -
Programming Challenge: Text compression
In an effort to make these weekly, I present a new programming challenge. The challenge this week is to compress some text using a prefix code. Prefix codes associate each letter with a given bit...
In an effort to make these weekly, I present a new programming challenge.
The challenge this week is to compress some text using a prefix code. Prefix codes associate each letter with a given bit string, such that no encoded bitstring is the prefix of any other. These bit strings are then concatenated into one long integer which is separated into bytes for ease of reading. These bytes can be represented as hex values as well. The provided prefix encoding is as follows:
char value char value ' ' 11 'e' 101 't' 1001 'o' 10001 'n' 10000 'a' 011 's' 0101 'i' 01001 'r' 01000 'h' 0011 'd' 00101 'l' 001001 '~' 001000 'u' 00011 'c' 000101 'f' 000100 'm' 000011 'p' 0000101 'g' 0000100 'w' 0000011 'b' 0000010 'y' 0000001 'v' 00000001 'j' 000000001 'k' 0000000001 'x' 00000000001 'q' 000000000001 'z' 000000000000 Challenge
Your program should accept a lowercase string (including the ~ character), and should output the formatted compressed bit string in binary and hex. Your final byte should be 0 padded so that it has 8 bits as required. For your convenience, here is the above table in a text file for easy read-in.
Example
Here is an example:
$> tildes ~comp 10010100 10010010 01011010 10111001 00000010 11000100 00110000 10100000 94 92 5A B9 02 C4 30 A0
Bonuses
- Print the data compression ratio for a given compression, assuming the original input was encoded in 8 bit ASCII (one byte per character).
2. Output the ASCII string corresponding to the encoded byte string in addition to the above outputs. - @onyxleopard points out that many bytes won't actually be valid ASCII. Instead, do as they suggested and treat each byte as an ordinal value and print it as if encoded as UTF-8.
- An input prefixed by 'D' should be interpreted as an already compressed string using this encoding, and should be decompressed (by inverting the above procedure).
Previous Challenges (I am aware of prior existing ones, but it is hard to collect them as they were irregular. Thus I list last week's challenge as 'Week 1')
Week 113 votes - Print the data compression ratio for a given compression, assuming the original input was encoded in 8 bit ASCII (one byte per character).
-
WebAssembly at eBay: A Real-World Use Case
9 votes -
Go is Google's language, not ours
15 votes -
Generating YouTube Titles Using Image Captioning
4 votes -
Rust Koans
10 votes -
Announcing GitHub Sponsors: a new way to contribute to open source
19 votes -
Why Precompiled Headers do (not) Improve C++ Compile Times
4 votes -
Few-Shot Adversarial Learning of Realistic Neural Talking Head Models
4 votes -
Programming Challenge: Dice Roller
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 -
Tor Browser for Android 8.5 offers mobile users privacy boost
3 votes -
Apple arms web browser privacy torpedo, points it directly at Google's advertising model
4 votes -
Python built-ins worth learning
13 votes -
South Korea's government will switch to Linux over cost concerns
9 votes -
What OS do you use and what are your favourite programs?
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
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?
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.
26 votes -
Git ransom campaign incident report—Atlassian Bitbucket, GitHub, GitLab
14 votes -
CPU.fail - Multiple attacks against modern Intel CPUs disclosed (ZombieLoad, RIDL, Fallout)
43 votes -
The struggles of an open source maintainer
10 votes -
Cyclic Redundancy Check Explanation
4 votes -
Falsehoods programmers believe about Unix time
7 votes -
Introducing the Mastodon Server Covenant
16 votes -
PHP in 2019
8 votes -
The Trade Secret: Firms That Promised High-Tech Ransomware Solutions Almost Always Just Pay the Hackers
9 votes -
BrainFuck optimizing JIT compiler
11 votes -
I challenge you to use Epiphany for a week!
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 -
Matrix.org - Post-mortem and remediations for Apr 11 security incident
9 votes -
Introducing GitHub Package Registry
16 votes -
For Better Computing, Liberate CPUs from Garbage Collection
15 votes -
The little printf
15 votes -
Any developers/designers interested in a helping build a proof-of-concept for a new type of data-centric app?
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 -
How do you structure larger projects?
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.
14 votes -
HTTP headers for the responsible developer
7 votes -
CSS Only Chat - An asynchronous chat client built with no JS
11 votes