вторник, 23 июня 2009 г.

воскресенье, 7 июня 2009 г.

Задачки Java

Существует большое количество задачек для джавы. Я это обнаружил не давно. Поделюсь с вами. Во всех ресурсов действует онлайн система - компилятор. Которое тестирует вашу программу.

http://javabat.com - Начинать стоит с этого, в основном техника программирование.
http://acm.timus.ru - В основном сложные задачки,алгоритмы. Можно написать на разных языках(С++,Pascal,Java...).
http://uva.onlinejudge.org - Дружелюбный интерфейс. Тоже сложные задачки,алгоритмы. Тоже разные компиляторы(С++,Pascal,Java...).
http://acm.sgu.ru - Тоже такая система.

Подсказки и интересные ресурсы для этих систем.
http://www.comp.nus.edu.sg/~stevenha/index.html
http://www.algorithmist.com/index.php/

А тут список всех онлайн судей.
http://www.algorithmist.com/index.php/List_of_Problemsets

пятница, 17 апреля 2009 г.

Валидация веб-кода

Организация W3C создаёт стандарты для интернета, в том числе стандарты для HTML и CSS. Для проффесионального кода, важно соблюдать эти стандарты, так как могут возникнуть разные проблемы. Основная проблема в современной веб разработке, это кроссброузерность. Чтобы избежать разных проблем, нужно валидировать сайт. Для этого существует множество инструментов. Вот несколько из них.

W3C HTML Validator - стандартный валидатор HTML кода.
W3C CSS Validator - стандартный валидатор CSS кода.
Browsershots - Отличный инструмент. Делает скриншоты сайта под разными версиями многих браузеров на различных операционных системах.
WDG HTML Validator - проверка сразу всего сайта на валидность HTML.

Конечно есть множество инструментов, но я вам советую эти.

Кстати почти у всех гигант-порталов есть большое количество ошибок(google.com, mail.ru, facebook.com, odnoklassniki.ru, yahoo.com)
Валидацию прошёл только yandex.ru :)

вторник, 7 апреля 2009 г.

130 лучших плагинов Firefox с описанием

Плагины с описанием. Тут!

Полезные Firefox плагины для веб разработчиках

Полезные плагины которые можете использовать для веб разработки с помощью Firefox:

1. Firebug - позволяет вам осматривать HTML код, извлекать XPATH и отладить Javascript. Аналогичен плагину IE Developer toolbar для Internet Explorer.
2. Yslow - сравнивает работаспособность сервера и веб сайта.
3. WebDeveloper - Тоже неплохой плагин, имеет различные полезные функции.
4. Tamper data - плагин позволяет осматривать скрытие поля, header поля и манупулировать. Полезен для проверки безопасности.

понедельник, 6 апреля 2009 г.

Aggie C++ Compiler

Сегодня нашёл суперский гаджет. Называеться он Aggie C++ Compiler. С помощью этого гаджета, вы можете компилировать C++.

Update: Нашёл еще один гаджет :) В гаджете Online C/C++ Compiler вы можете написать код С++, и просто компилить...

четверг, 2 апреля 2009 г.

Win32.Sality ВИРУС

Касперский у меня уже давно не работал, лицензия закончилась... И у меня антивируса не было. Сегодня заметил что некоторые программы просто у меня не работают. Подозревал, может вирус? Хотел посмотреть какие процессы сейчас работают, и воаля, после Ctrl+Alt+Del, вылезла ошибка "Task Manager disabled by your administrator". Точно вирус, хотел из регистра поправить значение доступа Task Manager-а, тоже не работает, отключён. Скачал Dr.Web cureit, сканил... Вирус найден, заражены файлы .exe и .scr. Вирус в Dr.Web называется Win32.Sector, а в Касперский Win32.Sality. У меня была модификация Win32.Sector.17. Говорят уже заражённую машину невозможно лечить антивирусом (даже читал, что есть модификации, которые не позволяют установить антивирус).

Есть другой вариант. Попробовать лечить с помощью Dr.Web LiveCD. Скачать можно здесь.
Dr.Web LiveCD - Live CD, операционная система Linux, в нём установлен Dr.Web CureIT, который лечит из Линукса, Windowsские локальные диски.

Второй вариант, просто сделать формат. Ну у меня большое количество файлов которые не нужно потерять. Этот вариант не для меня. Конечно, можно сохранить данные на другом диске. Но кто будет так поступить, после установки Windows-а, СРАЗУ установите из интернета обновлённый антивирус. Так как если вы запустите что нибудь из этих файлов, то ваш компьютер снова заразится!

понедельник, 16 марта 2009 г.

Спутниковый шпионаж

Про спутниковый шпионаж. Вот тут http://www.xakep.ru/post/42680/default.asp

Как узнать ID железа?

В современных программных обеспечениях исползуется защита, так называемый Hardware ID. Смысл в том что, программа возмёт ID различных девайсов, например Motherboard, CPU, HDD, и делает из них например хеш.

Как на Java узнать ID железы? Решение одно! Использовать Native, JNI.
Вот вам несколько примеров на Java с VBScript.

Материнская плата
В этом примере используеться
Win32_BaseBoard, но существует и другие способы. http://msdn2.microsoft.com/en-us/library/aa389273.aspx
import java.io.File;
import java.io.FileWriter;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class MiscUtils {
private MiscUtils() { }

public static String getMotherboardSN() {
String result = "";
try {
File file = File.createTempFile("realhowto",".vbs");
file.deleteOnExit();
FileWriter fw = new java.io.FileWriter(file);

String vbs =
"Set objWMIService = GetObject(\"winmgmts:\\\\.\\root\\cimv2\")\n"
+ "Set colItems = objWMIService.ExecQuery _ \n"
+ " (\"Select * from Win32_BaseBoard\") \n"
+ "For Each objItem in colItems \n"
+ " Wscript.Echo objItem.SerialNumber \n"
+ " exit for ' do the first cpu only! \n"
+ "Next \n";

fw.write(vbs);
fw.close();
Process p = Runtime.getRuntime().exec("cscript //NoLogo " + file.getPath());
BufferedReader input =
new BufferedReader
(new InputStreamReader(p.getInputStream()));
String line;
while ((line = input.readLine()) != null) {
result += line;
}
input.close();
}
catch(Exception e){
e.printStackTrace();
}
return result.trim();
}

public static void main(String[] args){
String cpuId = MiscUtils.getMotherboardSN();
javax.swing.JOptionPane.showConfirmDialog((java.awt.Component)
null, cpuId, "Motherboard serial number",
javax.swing.JOptionPane.DEFAULT_OPTION);
}

}
Винчестер

ID винчестра даёт ОС когда форматируеться винчестер. Это уникальный ID, потому что оно связан со временем, производителем и моделом.

import java.io.File;
import java.io.FileWriter;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class DiskUtils {
private DiskUtils() { }

public static String getSerialNumber(String drive) {
String result = "";
try {
File file = File.createTempFile("realhowto",".vbs");
file.deleteOnExit();
FileWriter fw = new java.io.FileWriter(file);

String vbs = "Set objFSO = CreateObject(\"Scripting.FileSystemObject\")\n"
+"Set colDrives = objFSO.Drives\n"
+"Set objDrive = colDrives.item(\"" + drive + "\")\n"
+"Wscript.Echo objDrive.SerialNumber"; // see note
fw.write(vbs);
fw.close();
Process p = Runtime.getRuntime().exec("cscript //NoLogo " + file.getPath());
BufferedReader input =
new BufferedReader
(new InputStreamReader(p.getInputStream()));
String line;
while ((line = input.readLine()) != null) {
result += line;
}
input.close();
}
catch(Exception e){
e.printStackTrace();
}
return result.trim();
}

public static void main(String[] args){
String sn = DiskUtils.getSerialNumber("C");
javax.swing.JOptionPane.showConfirmDialog((java.awt.Component)
null, sn, "Serial Number of C:",
javax.swing.JOptionPane.DEFAULT_OPTION);
}

}