Пожалуй начнем.
Меня зовут Дмитрий Степанов. Этот блог я создал для общения людей имеющих два общих признака: они живут или учатся в Харькове и занимаются
программированием.
Это место встречи для тех у кого есть интересные идеи по созданию интернет проектов. Здесь Вы можете обсудить их с другими специалистами в этой области. Но не надо ограничиваться только интернет проектами. Мы с удовольствием обсудим любые идеи и постараемся затем воплотить в жизнь наиболее удачные их них!
Подписаться на:
Комментарии к сообщению (Atom)
24 комментария:
Ага, разом нас багато, нас не подолати :) злобным конкурентам из других контор.
Предлагаю пойти классическим путем:
1 - Создать свою ось.
2 - Разработать новый язык программирования и написать под него компилер.
3 - Переписать ось и компилер на новом языке, используя старый компилер.
4 - Написать свою игрушку.
Поздравляю с открытием блога, ув. Stepsus :)
Я думаю дело полезное, и найдет много своих почитателей.
Кстати, не маловажен тот факт, что блог открылся в преддверии дня программера! [13 сентября] :)
Товарищи, с наступающим!
Надо бы это дело отметить ;)
хмм... Посмотрим-с что из этого получитсяю
Ну для начала можете немного рассказать о себе. Кто на чем пишет, где работает, как проводит свободное время (хе-хе ни у кого ж его нету).
2 lugal,
ты забыл "Напишем свою CMS" :-D
преведко :)
Он сказал "Поехали!" и махнул рукой )))
Вообще-то дело чрезвычайной полезности, я бы сказал. Поздравляю всех не безразличных к программистским деяниям с появлением сего сообщества.
Думаю бложег имеет право быть, развиваться и прочьто и прочьто (Copyright (c) Харченко).
Всех с наступающем...
Ух ты, не знал что 13 число день программера:)
ЗЫ
лугал... ну зачем же с таким скептицизмом то относиться к этому...
2 kuzma
Небольшое уточнение...
День программиста - 256 день в году. Высокосный год - 14 сентября, обычный 13.
хммм... я чет считал это днем админа :)
2 kuzma
День сисадмина - последняя пятница июля.
Продуманные черти ))) нет чтоб среди недели нажраться и как нормальные люди с больной головой на работу, так ишь что выдумали пятницу им подавай ))))
ну так правильно... а нам вот что... завтра - четверг... в пятницу - разбираться с джава-аплетом, не зная джавы :-D
PS эх... нада была идти на одмина :)
одмін то зле - нічого не робити цілий день дуже важко :))
Высокосный год - 14 сентября, обычный 13.
одного кстати не пойму - почему так... наоборот же, в высокосном году должно быть раньше чем в обычном...
удалил первый раз потому что с форматированием напорол... )))
А второй потому что опечток много, сонный... )))
2 kuzma
цитата:
одного кстати не пойму - почему так... наоборот же, в высокосном году должно быть раньше чем в обычном...
Возможно я напорол с 14, но то что 256 день эт точно, век воли...)))
Кста вот и перый прожект - написать софтину чтоб считала число на которое попадает проф пати в высокосно году...ЫЫЫЫ
P.S Все... с 3 раза родил )))
Достоверный источник ;)
Всех с праздником! :)
Compiled by gcc.
Версия 1.0.0 для ламеров, в скором будушем ждите появления версии 2.0.0 для хакеров :)
#include <stdio.h>
#include <stdint.h>
// ///////////////////////////////////////////////
namespace
{
const size_t FIRST_YEAR = 2000;
};
// ///////////////////////////////////////////////
inline bool isBisSextus(size_t year);
// ///////////////////////////////////////////////
int main()
{
size_t currentYear;
int64_t val = 0;;
do
{
printf("Please, input curent year (greater then 2000): ");
scanf("%u", ¤tYear);
printf("\n");
}while (currentYear < FIRST_YEAR);
if (isBisSextus(currentYear))
printf("The progremmers day is september, 12 - ");
else
printf("The progremmers day is september, 13 - ");
for (size_t year = FIRST_YEAR; year < currentYear ; year++)
val += isBisSextus(year) ? 366 : 365;
//Add 256 days of the last year
val += 256;
//First day of 2000 is Saturdau (1 % 7 = 1)
switch (val % 7)
{
case 0: printf("Friday.\n");break;
case 1: printf("Saturday.\n");break;
case 2: printf("Sunday.\n");break;
case 3: printf("Monday.\n");break;
case 4: printf("Tuesday.\n");break;
case 5: printf("Wednesday.\n");break;
case 6: printf("Thursday.\n");break;
}
return 0;
}
// ///////////////////////////
inline bool isBisSextus(size_t year)
{
return ( (year % 4 == 0)
&& ((year % 100 != 0) || (year % 400 == 0)));
}
// ///////////////////////////////////////////////
lugal - пекельний чортяко :))
ООО, я смотрю уже коды пошли...
Надо было снабдить блог компилятором. Kuzma как тебе такая идея? Ничего не напоминает? ;)
Compiled by gcc
И вот он! Долгожданыый релиз программы дня Программера, версия 2.0.0 для Хакеров!
#include <stdio.h>
#include <stdint.h>
#include <getopt.h>
#include <time.h>
#include <stdlib.h>
// ///////////////////////////////////////////////
struct Startup
{
size_t year1_;
size_t year2_;
size_t mode_;
};
// ///////////////////////////////////////////////
namespace
{
const size_t FIRST_YEAR = 2000;
const size_t M_LIST = 1;
const size_t M_DATE = 2;
};
// ///////////////////////////////////////////////
inline bool isBisSextus(size_t year);
bool startup(int argc, char *argv[], Startup *pStartup);
void usage(const char* pAplName);
void print(size_t currentYear);
// ///////////////////////////////////////////////
int main(int argc, char *argv[])
{
Startup startupStr;
if (!startup(argc, argv, &startupStr))
return 1;
if (startupStr.mode_ == M_LIST)
for (size_t year = startupStr.year1_; year <= startupStr.year2_; year++)
print(year);
else
print(startupStr.year1_);
return 0;
}
// ///////////////////////////
inline bool isBisSextus(size_t year)
{
return ( (year % 4 == 0)
&& ((year % 100 != 0) || (year % 400 == 0)));
}
bool startup(int argc, char *argv[], Startup *pStartup)
{
int nextOpt;
const char *shortOpt = "hnls:e:";
const option longOpt[] =
{
{"help", 0, NULL, 'h'},
{"now", 0, NULL, 'n'},
{"list", 0, NULL, 'l'},
{"startyear", 1, NULL, 's'},
{"endyear", 1, NULL, 'e'},
{NULL, 0, NULL, 0}
};
pStartup->year1_ = 0;
pStartup->year2_ = 0;
pStartup->mode_ = 0;
if (argc == 1)
{
usage(argv[0]);
return false;
}
while((nextOpt = getopt_long(argc, argv, shortOpt, longOpt, NULL)) != -1)
{
switch(nextOpt)
{
case 'h':
usage(argv[0]);
return false;
break;
case 'n':
time_t timer;
struct tm *tblock;
if (pStartup->mode_ & M_LIST)
{
fprintf(stderr, "Error: Options -n, --now is uncompactible "
"with options -l, --list.\n\n");
usage(argv[0]);
return false;
}
timer = time(NULL);
tblock = localtime(&timer);
pStartup->mode_ |= M_DATE;
pStartup->year1_ = tblock->tm_year + 1900;
break;
case 'l':
if (pStartup->mode_ & M_DATE)
{
fprintf(stderr, "Error: Options -n, --now is uncompactible "
"with options -l, --list.\n\n");
usage(argv[0]);
return false;
}
pStartup->mode_ |= M_LIST;
break;
case 's':
if (pStartup->mode_ & M_DATE)
{
fprintf(stderr, "Error: Options -n, --now is uncompactible "
"with options -s, --startyear.\n\n");
usage(argv[0]);
return false;
}
pStartup->year1_ = atoi(optarg);
pStartup->mode_ |= M_LIST;
break;
case 'e':
if (pStartup->mode_ & M_DATE)
{
fprintf(stderr, "Error: Options -n, --now is uncompactible "
"with options -у, --enddate.\n\n");
usage(argv[0]);
return false;
}
pStartup->year2_ = atoi(optarg);
pStartup->mode_ |= M_LIST;
break;
case '?':
usage(argv[0]);
return false;
break;
default:
abort();
}
}
if ( (pStartup->mode_ & M_LIST)
&& (pStartup->year1_ == 0 || pStartup->year2_ == 0) )
{
fprintf(stderr, "Invalid parameters: Start year or End year is not passed.\n\n");
usage(argv[0]);
return false;
}
if ( pStartup->mode_ & M_LIST && pStartup->year1_ > pStartup->year2_)
{
fprintf(stderr, "Invalid parameters: Start year must be less then End year.\n\n");
usage(argv[0]);
return false;
}
if ( pStartup->mode_ == 0)
{
pStartup->mode_ |= M_DATE;
pStartup->year1_ = atoi(argv[optind]);
}
if ( pStartup->year1_ < 2000
|| ((pStartup->year2_ < 2000) && (pStartup->mode_ != M_DATE)))
{
fprintf(stderr, "Invalid parameters: All years must be great or equal 2000\n\n");
usage(argv[0]);
return false;
}
return true;
}
void usage(const char* pAplName)
{
printf("Usage: %s [OPTIONS] [YEAR]\n\n", pAplName);
printf("Valid OPTIONS:\n");
printf("\t-h, --help \t\tPrint help (this message)\n");
printf("\t-l, --list \t\tPrint list of years (This mode is uncompactible\n");
printf("\t \t\twith parameter YEAR and options -n, --now).\n");
printf("\t \t\tFor use this options you must set start and end\n");
printf("\t \t\tyears use -s, --startyear and -e, --endyear \n");
printf("\t \t\toptions.\n");
printf("\t-s, --startyear VALUE Start year in the list (This options use with\n");
printf("\t \t\t-l, --list options. Valid VALUE must be greater\n");
printf("\t \t\tthen 2000 and less then -e, --endyear.\n");
printf("\t-e, --endyear VALUE End year in the list (This options use with\n");
printf("\t \t\t-l, --list options. Valid VALUE must be greater\n");
printf("\t \t\tthen 2000 and greater then -s, --startyear.\n");
printf("\t-n, --now \t\tPrint information about Programmer days in the\n");
printf("\t \t\tcurent year. This options is uncompactible with\n");
printf("\t \t\t-l, --list options. If you use this option \n");
printf("\t \t\tParameter YEAR is ignored. If Value YEAR is\n");
printf("\t \t\tempty, then this option use by default.\n\n");
printf("YEAR: Print information about Programmers day for year YEAR. PARAMETER YEAR is\n");
printf(" uncompactible with -l, --list options and ignored with -n, --now options.\n");
printf(" If parameter YEAR is empty, then use options -n, --now by default.\n\n");
}
void print(size_t currentYear)
{
uint64_t val;
if (isBisSextus(currentYear))
printf("The progremmers day in %d year is september, 12 - ", currentYear);
else
printf("The progremmers day in %d year is september, 13 - ", currentYear);
for (size_t year = FIRST_YEAR; year < currentYear ; year++)
val += isBisSextus(year) ? 366 : 365;
//Add 256 days of the last year
val += 256;
//First day of 2000 is Saturdau (1 % 7 = 1)
switch (val % 7)
{
case 0: printf("Friday.\n\n");break;
case 1: printf("Saturday.\n\n");break;
case 2: printf("Sunday.\n\n");break;
case 3: printf("Monday.\n\n");break;
case 4: printf("Tuesday.\n\n");break;
case 5: printf("Wednesday.\n\n");break;
case 6: printf("Thursday.\n\n");break;
}
}
// ///////////////////////////////////////////////
идея снабдить блог компилятором - у меня вызывает нервную дрожь и истерический смех... ты думаю поймешь почему... :)
Отправить комментарий