A site for solving at least some of your technical problems...
A site for solving at least some of your technical problems...
I have not been able to find a reliable source describing the Info/Xing/LAME tag which appears in the very first frame of an MP3 Layer III file.
Here I describe the structure based on the GetVbrTag() function found in LAME.
See: libmp3lame/VbrTag.c (around line 362 in version 3.100).
The tag requires the file format to be of Layer III.
This means the bits 1 and 2 of the second byte of the frame header must be equal to 1.
((frame[1] >> 1) & 3) == 1
Part of the data in the LAME VBR Tag comes from the frame header:
Video showing our firewall counters increase every second.
Once in a while, we get a large number of totally unwanted hits. I am thinking that the ones we're getting now are not really DDoS, but rather spiders looking for forms to fill out to send us spam. That being said, the result has been many:
503 Server Unavailable
So for us it was very similar to a DDoS. That's what happens whenever a robot sends you multiple HTTP requests per second non-stop all day long. Our servers are only for some 10,000 to 50,000 hits a month at this point, so receiving that many ...
Today I really got fed up by the Archive feature. I never archive anything in Thunderbird. I have an automatic archival system and have all my emails since 2010. No need for that in my IMAP3 system!?
The biggest problem for me is that I work really fast. So when I go to my Junk folder and select all the emails to delete them, the Archive button appears where the Delete button was just a split second ago... and you guessed it, I end up clicking on that button...
So I thought I'd file a bug report to see whether they would consider not having the Archive button in the Junk folder. ...
Last night I found a problematic module... Specifically, it was XML Sitemap, but I do not think it was specific to that module.
The problem? I lost the XML Sitemap menu. I could not access it at all. So I decided to run the update.php code to see whether that would wake it up. Did not work. Then I tried going in the Modules list and disabling the modules. Did not work! Wow! I could not disable these modules!!! How weird...
So I finally decided to go in the database and mark the status as disabled (i.e. 0 instead of 1). That worked and the module was now disabled. I could even ...
I'm writing a test against nginx to verify the validity of a module. To make sure that each one of my test runs against a pristine version of nginx and my module, I decided to restart nginx each time. That's my own compiled version of the server, of course.
Once in a while, this causes this bind error:
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
The fact is that if things go too fast then a previous instance of the socket will still be in the TIME_WAIT state.
In order to avoid ...
Often, you adda function so when a user closes your form, it automatically saves the changes to the database. By default, the MS-Access behavior is to ask the user for confirmation, which can be a huge annoyance when you open and close forms hundreds of times all day long.
So... you add a new button, you click on the Event tabs (in the properties) and add a new Code Builder and in your Sub Function you add the following two lines:
DoCmd.OpenForm "New Form Name", acFormView, ... DoCmd.Close acForm, "Old Form Name", acSaveYes
(You'll have to complete the OpenForm ...
As I'm working with nginx, I ran in a problem where the HTTP headers would not appear at all.
Each time I was testing with
wget --server-response
I would get the correct response (i.e. the file looked just fine and could be opened as expected) but no header at all.
I'm writing a module and learning details about nginx which are just not documented out there.
The fact is that if your module returns HTTP data to a client's request, you are pretty much responsible for everything in the reply to make it work as expected. nginx is rough that way (but really very fast as a ...
If you used C++ for a while, you may have come across a note saying that the shared_ptr<>() was not (always) safe to use with tracking resource.
The fact is that there is a trick to using a shared pointer.
The following code will look correct to most of us, after all, you create a resource then save it in a shared pointer which is going to automatically get rid of it on exceptions or when you return from your function. Great!
#include <memory>
void deleter(FILE * f)
{
...
Source of Image: GNOME Panel (Wikipedia)
The Gnome X11 environment comes with a system called Panel.
Gnome panels are bars where the system include menus, icons, the date, statistics, etc.
Without the bar, it is a tad bit complicated to run programs and do all sorts of things (like switching between windows.)
If the panel software itself did not start properly or crashed, you may restart it with the following command:
gnome-panel
In case, however, the problem was that I wanted to hid the two panels I use (the default top and bottom panels.)
So I right ...
I created a little script to generate a daily tarball as a backup of a customer website.
Everyday, though, I would get the following error:
tar: .../public_html/wp-content: file changed as we read it
As you can see, the website is using Wordpress.
The error, though, I could not replicate when I would run the tar command by hand. What gives?
Looking closer into it, I noticed that my crontab setup would actually run the cron.php at the same time as the backup would run:
# m h dom mon dow command 0 3 * * * /.../backups/backup.sh */10 * * * * cd ...
Recent Posts on The Linux Page: