К основному контенту

Сообщения

Автоматическое выключение linux - машины в определённый день месяца.

Встала необходимость сделать так, чтобы в последнюю среду месяца (санитарный день) компьютер выключался самостоятельно несколько раньше, чем обычно. Пошарив немного по руководству cron понял, что вот прямо так сделать никак нельзя. Можно лишь указать промежуток времени особым способом, то есть, можно сказать, что я хочу, чтобы в конце месяца (задаётся числовым промежутком) и если день равен, скажем, среде, выключать в не в 18:00, а в 16:00. Но в этом случае, оно не будет проверять, что оба условия выполняются, а будет делать это если хотя бы одно выполнено. Поэтому надо было сделать что-то чуть более сложное. В результате, я написал код на питоне. Совсем короткий и простой, но всё же: import os import time from datetime import date if 31 - date.today().day < 7 and date.today().weekday() == 2:     os.system('/sbin/poweroff') quit() Работает нормально. Добавил задание в cron.

А как блокировка и фильтрация контента для детей выглядит на местах?

В продолжение  темы блокировок  решил вставить и свои две копейки. Автор абсолютно точно и правильно изложил истинные причины всего этого «движения», но на мой взгляд, на самом деле, кроме указанных им, есть и реальная необходимость в фильтрации. Что я имею в виду? Начну по порядку и расскажу, как это было у меня. Не судите строго. Я работаю заведующим отделом автоматизации в нашей скромной  библиотеке  и ещё до официального принятия закона передо мной поставили задачу фильтрации и цензурирования контента в зале информационных ресурсов. Поскольку тогда было совсем неясно, что именно от меня хотят, опять же, оттого, что никто и не знал, что нужно, было выдвинуто требование блокировки «нехороших» сайтов, а уж как это сделать, естественно, оставили на моё усмотрение. Само — собой, первым делом я стал искать, как этот вопрос решили другие. И, представьте себе, обнаружил следующее: в большинстве случаев люди обходятся банальным «белым» списком, что автоматически делает ...

Программное отключение ctrl+alt+del, at+tab и тому подобного

I wrote an article back in 2007 that is still around the web, in various discussions including  StackOverflow  and  DotNetSpider , so I have decided to re-publish the article. This article was relevant back then - and it wasn't tested on a Windows 7 environment purely due to the fact that it did not exist and please also note that comments are disabled for this post. Before continue reading please note that this article doesn’t intend to call upon you to create nasty applications. If you use this code it should be for your own fun or for learning purposes. After doing some research on disabling keys or key combinations I found out that there are several ways of achieving the before mentioned key combos. CTRL-ALT-DEL combo is part of the SAS ( Secure Attention Sequence) thus the solution to disable this is to write your own gina.dll ( Graphical Identification and Authentication ). Don’t worry, I’m not looking into that as for now, I’m going to show you the work arou...

Сравнение дат в MySQL

Поскольку пишу сейчас программу для библиотеки, пришлось создать такой вот запрос: select (select date_format((current_date),'%m'))-(select date_format((select birthday from users where id = 1),'%m'))+(select date_format((current_date),'%d'))-(select date_format((select birthday from users where id = 1),'%d')); Он нужен для того, чтобы понять, День Рождения сегодня у человека, или нет. С тем же успехом можно использовать его и в других случаях. Думаю, что для человека знающего MySQL пояснения не нужны. Но если что, то пишите. Ну, и если я не прав, используя такой запрос, то предложите лучший.

Базостроение

Как говорится, я просто оставлю это здесь. CREATE TABLE ALLITEMS ( itemid INT ( 10 ) UNSIGNED , itemname VARCHAR ( 50 ) ); ALTER TABLE ALLITEMS CHANGE itemid itemid INT ( 10 ) AUTO_INCREMENT PRIMARY KEY ; DESC ALLITEMS ; INSERT INTO ALLITEMS ( itemname ) VALUES ( 'Apple' ), ( 'Orange' ), ( 'Banana' ); SELECT * FROM ALLITEMS ; I was confused with CHANGE and MODIFY keywords before too : ALTER TABLE ALLITEMS CHANGE itemid itemid INT ( 10 ) AUTO_INCREMENT PRIMARY KEY ; ALTER TABLE ALLITEMS MODIFY itemid INT ( 5 ); While we are there, also note that AUTO_INCREMENT can also start with a predefined number : ALTER TABLE tbl AUTO_INCREMENT = 100; Взято с  http://stackoverflow.com/questions/6957370/alter-table-adding-autoincrement-in-mysql

Удаление ошибочно внесённых записей

Случается, что мы по ошибке копируем не те данные совсем не в ту базу данных. И с этим надо  что-то делать, удалить неверно скопированное. И каким же образом это сделать? Ну, конечно, через запросы! Раз уже такое дело, то в работе с БД частенько приходится рисковать, работая прямо на живую. Я же, запутавшись, скопировал из одного рабочего каталога в генеральный, хотя должен был в другой рабочий. Признаться честно, сначала Я думал написать небольшую программу на каком-нибудь из знакомых языков программирования, но потом во мне вновь включился админ и Я решил отказаться от этой странной затеи, просто поискав возможность подключиться к двум базам данных. И, как оказалось, в моём случае, по-крайней мере, при использовании MS SQL Server 2005 (or later), можно написать несколько простых строк: delete A from db1.dbo.doc A inner join db2.dbo.doc B on A.item like B.item  Вот таким простым и нехитрым способом можно вычистить ошибочно добавленные записи. UPD: после выяс...

Добавление сиглы хранения в Марк SQL

Чтобы добавить новую сиглу хранения в Марк SQL, проще всего написать маленький запрос в модуле "Администратор": UPDATE siglas SET shortname = 'оли' WHERE id = 7 Таким образом можно создать какую угодно сиглу хранения. Быстро и удобно.