Свалка мыслей и идей...
воскресенье, 21 марта 2010 г.
Параметры командной строки и KolibriOS
воскресенье, 14 февраля 2010 г.
Подарок девушке на ДР
Завтра у моей любимой день варения и одновременно завтра день всех влюблённых, хочу сделать оригинальный подарок, домен "iloveann.net" и хостинг оплаченные на год :) . Надеюсь ей понравиться , очень надеюсь...
вторник, 9 февраля 2010 г.
KCC - Kolibri C Compiler
Вступление (под капотом)
Я не особо великолепно разбираюсь в опциях gcc и линковщика, поэтому пошёл не стандартным путём обучения gcc компилировать код для колибри, а сделал программку на перле которая программу созданную gcc для linux в асме AT&T синтаксиса, преобразует к Intel синтаксису и в вид программы для колибри. Звучит запутанно, но описав с комментариями весь процесс будет понятнее. (В след версии весь этот процесс будет автоматизирован, как и установка)
- gcc test.c -S // gcc создаёт ассемблерный файл в AT&T синтаксисе с именем test.s
- perl kcc.pl test.s // kcc транслирует AT&T листинг в FASM Intel для колибри в файл test.asm
- fasm(./fasm) test.asm test // fasm создаёт бинарный файл для колибри test
Hello, world!
Пример "hello , world". Хочу, заметить, что kcc пока работает не очень хорошо и в качестве полноценной среды лучше его пока не применять. И да, размещаю его под 'New' BSD лицензией.
суббота, 2 января 2010 г.
Linux класс сокетов.
#include iostream //тут не хватает кавычек, подставьте сами и тд#include sys/types.h#include sys/socket.h#include netinet/in.h#include stdlib.husing namespace std;class Server {public:Server(int port, int waiters) {listener = socket(AF_INET, SOCK_STREAM, 0);if( listener <>cout<<"SERVER Error creating socket"<exit(0);} else {addr.sin_family = AF_INET;addr.sin_port = htons(port);addr.sin_addr.s_addr = INADDR_ANY;if( bind(listener, (struct sockaddr *)&addr, sizeof(addr) ) <>cout<<"SERVER Error binding port"<exit(0);} else {listen(listener, waiters);}}}~Server() {close(listener);close(user);}bool Accept() {user = accept(listener, NULL, NULL);if( user <>return true;}string Read() {string socket_data;do {bytes_read = recv(user, buff, 5000, 0);} while( bytes_read <= 0 );socket_data=buff;return socket_data;}void CloseUser() {close(user);}void CloseListener() {close(listener);}void Send(string send_data) {send(user, send_data.c_str(), send_data.size(), 0);}void operator >>(string* line) {*line=Read();}void operator <<(string* line) {Send(*line);}private:int listener;int user;int bytes_read;char buff[5000];struct sockaddr_in addr;};
int main() {Server MainServer(30000, 5);while( true ) {if( !MainServer.Accept() ) {cout<<"Error accepting"<exit(0);}if( fork() == 0 ) {MainServer.CloseListener();string data;MainServer>>&data;cout<<MainServer<<&data;MainServer.CloseUser();_exit(0);} else {MainServer.CloseUser();}}MainServer.CloseListener();return 0;}
суббота, 19 декабря 2009 г.
О цикличности вселенной и возможны ли путешествия во времени.
- БВ - Большой Взрыв
- Количество энергии (вещество рассматривается как форма энергии) во вселенной, это константа (как до БВ, так и после). Обоснование: Вселенная это система не подвергающаяся внешним воздействиям, по закону сохранения энергии , энергия просто так ни откуда не появляется и никуда не исчезает.
- После большого взрыва, материя-энергия постепенно расширялась, впоследствии медленно начинает сжиматься, пока не сожмется в 1 объект в своеобразном центре вселенной (предположительно гигантская черная дыра), после этого произойдет новый большой взрыв. Обоснование: сходится с существующими теориями о БВ.
- Таким образом назовем последний БВ, БВ(0). До него соответственно была бесконечность БВов и еще будет бесконечность БВов. Графически это можно выразить так:
- Вселенная - система не подверженная никаким внешним воздействия. А следовательно она не затухает из цикла в цикл абсолютно идентична. То есть и циклы этой системы идентичны 1ин другому. (Из этого вытекает что каждый из нас, и земля и солнечная система существовали и будут существовать еще бесконечное число раз).
===Ну вот с часть про цикличность закончили, дальше вступаем на шаткую почву путешествий во времени===
- Путешествие в будущее. Способы: а) Поместить объект в точку, где он сможет дождаться необходимого момента(побочные явления вроде старения решить должны уже медики) б) Воспользоваться теорией относительности. Сделать корабль и отправить его над или под диском галактики(для уменьшения вероятности встречи с другими кораблями в будущем) по параболической траектории. При постоянном ускорении 3g которое может выдержать и к которому может адаптироваться человек корабль будет медленно приближаться к скорости света. Чем ближе он будет к ней подходить, тем быстрее будет происходить путешествие в будущее.
- Путешествие в прошлое. Особенности: Если вы хотите изменить прошлое, то знайте наверняка, у вас это не получится. Причина объяснена в конце блока. Путешествие в прошлое, это путешествие в будущее просто в следующий цикл. Для путешествующего разницы не будет, тк он не заметит смены цикла. При этом необходимо учитывать, что если вы перешли в следующий цикл(1), то и ваш двойник из цикла(-1) переходил в ваш цикл(0) и в нем делал все то что будете делать вы, соответственно ваше время есть результат вашего путешествия и вы можете являться причиной тех событий которые хотели исправить.