Thursday, August 30, 2007

My notebook

Today I have bought a notebook. It's an Acer Extensa 5610. And it is with Vista Home Premium. So soon I will be able to say me opinion about Vista. At first it looks impressively. I hope my new notebook will improve my productivity: now I'm not wired to any particular workplace and can even work in university in my preferred environment.

Soon I'll write about my first impressions!

Friday, August 24, 2007

My source code library

Next programming book I want to read is "The Pragmatic Programmer" by A. Hunt and D. Thomas. While watching through it I found advice: "Never drop to garbage not-working or unused code. It will help you to avoid same mistakes" (of course that isn't very exact cite). So I've take my step to keep my knowledge base — I've started on Google Code my own project. There I'll keep my code, feeling sure that it will not disappear with hard-drive crush. And also, I'll have access to it from any place, that will have internet connection. Rather useful.

Google search through source code is also can be good to find information.

My recent .NET programming

A month ago I was writing about bugs in Visual Studio 2008 Beta 2. All in all I've escaped trouble and for a month I was using it. Professional edition to be exact. Of course when the Beta will expire I'll be forced to move to free Express Edition. And know I'm studying .NET and C#.

Book of Andrew Troelsen is almost at the end: only 2.5 chapter remain for me. They are all about ASP.NET and Web.

Moreover my text editor became much better. Though it is still have not vast functionality. I have an idea of turning it into IDE for any computer language (Python and Ruby are first candidates), but as I think this is not the matter of near future.

Programming for .NET on C# was good and effective, though there are some things that I don't like in it and want to replace them by equivalents from scripting languages. Of course that relates to new computer language. I made it to parse arithmetic expressions with integer numbers and make *.exe file that performs all these calculations. Not very much and I've stopped on trying to implement print function. The problem is not in the implementing particular built-in function but much more in whole mechanism of implementing functions. I've decided not to make thinking about it, but to take a pause. Though this idea firmly seats in my head so I think I'll return to it after gaining some experience. And moreover I'll need some time to feel pace of study on second year!

Furthermore now I'm working on .NET library to create diagrams. I've wanted to have one to make colourful diagrams from my data which is output from scripts, not in Excel format. For now it already can make proper diagram! So in future I need to add much more customisation to it.

Moreover, I've tried Ruby. It looks rather interesting and has simple solutions for problems which I've already faced in other languages(and not yet faced). I'll study it more deeply and try use it in my projects. For now if I need to make some routine tasks I prefer Python. Hope in near future I'll write more on computer languages.

— Buy! :)

University is coming

That was a long time since I've write last time. And my new study year is coming soon. Now I'm having a two-week vacation. And relax at home. Err.. relax means do some programming :). I've made something that is text editor. May be i near future I'll advance it be something like IDE for a computer language. But I don't know which language :(. Or may be I should better just use Eclipse and Visual Studio? All in all, if even my text editor will never be useful, I already have got some experience from it.

Moreover I've joined team of developers of computer game Battle for Wesnoth... not as a programmer, but as a Russian translator. Who knows... may be in future I'll help as a programmer. But future is in future and now is today :).

Hey! And soon is my birthday — 18 years!

Thursday, August 02, 2007

Microsoft Visual Studio 2008 Beta 2 — too bugy

I've recently started to try latest release of upcoming Visual Studio 2008 — Beta 2. But I found it having much problems on my system: Visual C# Express Edition crashed on compiling of my project and I've needed to reinstall it. After installing Express Editions I've tried to install Professional version. After installing MSDN I've experienced problems with my context menus in explorer — Explorer was just crashing after right mouse click. Of course may be not MSDN was a source of problem, but all in all I was needed to Recover my system. And what is more Professional stopped in the end and even refused to perform command to abort installation. After that I've recovered my system to morning state.

What is more bad, that now Visual Studio refuses to load my projects! I again trying to reinstall it... I've liked C# and .NET Framework (not in all, but in whole) and I'm wanting to program on them more, but... May be the solution is to come back from Visual Studio 2008 (all in all it is beta) to 2005. Another way is to practice on Java. The latter is better in aspect of migrating to another platforms, for example of I would want to work on Linux more that now (now it is equivalent to zero...)

Morale? I was trapped by my aptitude to use the latest versions of software... It isn't problem in many cases but not in that...

Tuesday, July 24, 2007

Writing a book

That could sound weirdly, but I started to write a book. I was writing only for one evening, so I couldn't even say if I will be writing it regularly or it's just a short-time activity. The book isn't about computers, it a fiction book in fantasy genre. I even couldn't understand about what is it. I can only say that it is about 3 friends :)

Ubuntu — first try

Recently I've tried to use Ubuntu Feisty Fawn. On virtual machine.

I've tried Linux and FreeBSD a few times before. Not very successful. Though I have to say that these attempts make my brain to think how to use, not just simply "install and use". However I wasn't able to move from familiar Windows environment to unknown *nix.

Some days ago I've decided to try Ubuntu on virtual machine. I've used two of them: VM and VirtualBox.

VirtualBox was the first. What was bad: progress bar of user interface which must be orange was instead almost invisible. But that is not serious bug. Much worse was that while installing OS on virtual HDD it failed on some step without any warning and I wasn't able to start OS from hard drive, the only choice was live-cd but that is not very good because I need to install some software on my OS to feet my purposes.

Then I've tried VM player. It hadn't got problems with progress bar and it installed successfully and now I can run it from virtual HDD. But... I couldn't find how to switch my audio card to OS (that was rather easy on VirtualBox) and, what is much more worse, it had problems with Internet. Internet is too much important for me to use OS without access to it.

As a result of this faulty attempts I've putted Ubuntu on virtual machine in a long-term box and decided.... to try it on real machine. I've already wrote that I'm studying C# now, so I don't think I could leave Windows for a long time, but I could try Ubuntu as an OS for browsing Internet :) Time will show...

Thursday, July 19, 2007

Texter

I've found a good tool from Lifehacker: Texter. What does it do? It watches on input from keyboard and if it find special combination of symbols it replaces if with text snippet. For example I've setted replace MS with Microsoft. So bow I don't need to type full name but only some letters by the result is the full name not the acronym.

This application can be extremely useful in programming if your editor doesn't support code snippets (or supports them badly, or you want to share snippets between different application without some "import/export"). These can be not just simple snippets but full templates of code.

What is more Texter support bundles: groups of text replacements that can be exported and imported. So if you can share your bundles with your friends and colleagues.

And finally: Texter can perform not just text replacement but scripts: it can imitate key commands (for example Tab). This can be useful when filling some forms in which you definitely know tab order of fields.

In conclusion I think Texter is rather a good tool (it provides statistics on how much letters was replaced and how much time this saved to you).

Links:
  • Lifehacker [Site with tips and downloads for getting things done]
  • Texter [text substitution app]


Thursday, July 12, 2007

Butterflies

There is a popular story about ugly duck who became a swan. There is also a popular example of such transformations: caterpillars become butterflies. What most of us think about caterpillars? They are ugly and nasty. I hate them. Especially when they are on my fruits... :( Some caterpillars become insects which are also nasty, but some caterpillars become beautiful butterflies. Don't you think we can say the same about people? Some become "butterflies" (good people?), some become disgusting bugs (bad people?), and others, probably most of people, become other insects, for example hard-working people can be compared with bees...

What's the morale? When you look at a young person look at what she "eats": that's will be a building material for her mind and personality during period of cocoon. If she eats mostly not good building material (rudeness, abuse language, violence, and lack of culture, etc.) then we will get another "bad brick" in our society. If she fills herself with something good (mind training, some books that may be are idealistic but shape mind in a way useful for society, etc) then we will get "good brick" in society. Or not the brick but mason?..

Monday, July 09, 2007

Egnoly Text Editor

For about one year ago, I bought my first book about programming — it was "C++ How to Program" by H.M.Deitel and P.J.Deitel. I've read 4th edition and now they are preparing to publish 6th edition. I think that's rather a good book for starter, all in all I've learned much from it, in despite of that it is about C++ — not very easy language. For that year I've learned basics of Python, Perl, Java, Ada, C#, Visual Basic and in university I've studied Turbo Pascal for one year. All of I've programmed were console applications. The only exception was working with Microsoft Access on courses were I used VB for modules, but that was not "normal" programming of GUI — all in all it is Access not Visual Studio. And after the year of programming I've changed the situation.

Now I'm working in Visual Studio on my first "normal" GUI application — text editor which I've called Egnoly. I'm writing it on C#. Yesterday I finished first version of it (0.0.1). It can open and save file. Plus built in Windows Forms TextBox class abilities of cut/copy/paste. Not very much. But it works! Moreover development GUI apps is rather unfamiliar task for me, so Egnoly hasn't any tests written and strong system of exceptions. Furthermore I don't know C# well.
To resolve the last problem I've bought Andrew Troelsen "Pro C# 2005 and the .NET 2.0 Platform, Third Edition". I think after reading it I'll be comfortable with developing GUI, e.g. modifying classes from System.Windows.Forms (as a understand that what I need to make a color syntax highlight).

So I've started my way to become a GUI wizard :) For now Egnoly is only a program to develop my programming skills from bad to "something better" :), bit what it will be in future?.. Time will show... :)

Wednesday, July 04, 2007

"Old new" pace of life

Now when I'm working there are serious changes in my daily timetable. I'm at work for about 8 hours every day and I still haven't adopted to this. Of course I want to perform some programming as usual, but after the work I now haven't got enough energy for this. Today I've read two articles in Spectrum magazine and pieces from "The Republic" of Plato. That's not very much and moreover I've realized that I don't remember almost anything from most philosophic books I'd read... :-( I think I should reread some of them...

Furthermore as I've already mentioned I want to buy a book about C# and then about UML, but I still don't decided when to buy first of them.

And I want to sleep very strong for now..

Tuesday, July 03, 2007

Choises

There are choices. They are all around us. We are making choices every day (click here). And one decision could be better that others. But why we usually choose one that's not better?

And may be we have only one choice... The choice to accept or not, that was chosen for as.

And sometimes we couldn't follow our choice.

Thursday, June 28, 2007

Plans for summer

Now second semester is over officially. I have best marks on all subjects as in first semester :). During next 2 months I think my main activity will be work. I want to buy a laptop. What is bad, is that, as I think, there is no real need in it for me. I only *want* it... But in the end of summer there will be my birthday and I want laptop as a present :). Moreover I have some other plans for summer:
  • Read some dialogues of Plato
  • Study C# (I have a choice between two books. I've already decided which I'll buy, but I think, in future I will buy also an another, because these books cover different parts of language and software development)
  • Study UML (I've also found a book about it)
  • Write Egnoly: text editor on C#. Main aim of this project for me is to to study development of Windows applications and practice in C# and in programming in whole
  • Write application with codename UP: now it's just an evaluator of arithmetical expressions. That's also a practice in programming and it is rather interesting.

Sunday, June 24, 2007

My programming

So good to have a rest from study! Now I can make what I want to do. :)

Today I worked a little with some C++ headers that will be useful in different applications so a named them ksvlib (from KoleSoV :). Moreover I'm planning to write now two applications: UP - that is something that could be a computer language in far far future and text editor. The former I write on C++ to enhance my skills in it. The latter I will write on C#. At know I almost don't know C#, but I think I could learn enough fast. I want to start this project to learn programming with GUI not on console.

I think this summer could be rather productive for me in writing software. :)

Launchy

I have a very nice desktop — I've removed all icons from it. Now it is clear and rather beautiful. Moreover I've set Start Menu of Windows to auto-hide. Because I'm needed it in very rare cases. To call applications I now use Launchy.

It's a free utility that scans through set directories and remembers all executable files and shortcuts. When you start in typing in Launchy name of application you want to start Launchy automatically suggests it and if it is right you don't need to type full name of application. Moreover Launchy remembers your choice and when you again type this part of application name Launchy suggests it firstly, so starting frequently used applications is an easy task. Although starting rarely used applications is also rather easy.

You can download Launchy from its site: http://www.launchy.net

Saturday, June 23, 2007

Yeah... Relax...

Today I've passed physics exam on best mark. I'm really pleased with that. Now there is only exam in programming, but, to be honest, I know programming enough well to be sure that there won't be any problems with it. I'm rather tired after exams so need some rest... some programming... :) and play "Battle for Wesnoth"... :)

And what is more: Google has its Summer of Code, so why I can't have my own? That not be a contest (at least at first time) and in this year there will be only me, all in all this name will be much more symbolic than the representation of real matters... But why not have some fun with names? :)

Tuesday, June 19, 2007

Where time goes?

Not very original name for the post, but that is the question I've asked myself today. On Saturday I will have an exam in physics. So I had some plans on preparing to it... but there is evening now, but I still haven't made even half of planned work! And I couldn't understand what I was doing today that the all time went out without remarkable result...

Bad! Very bad! May be I need some rest?..

Monday, June 18, 2007

Microsoft Visual Studio Codename "Orcas" Beta 1 (VS 2008)

MS have released first beta version of its Visual Studio Codename "Orcas". Officially it will be Visual Studio 2008.

For a long time I was of bad opinion about MS & its products. However while writing programs I've realized that it is not an easy work & bugs always appear & and in such a complex structures as e.g. Windows it's almost impossible to find all bugs during beta testing. So now my attitude to MS products is not so bad as it was in the past.

I've decided to try MS Visual Studio Express Edition. At first I've used VS 2005 and now I switched to VS 2008. It's my trait — I love to be on the front edge of technology, though I'm not always able. :( Of course sometimes VS crashes, but this is not common case and I haven't got significant problems with that, in spite of Safari... At first I've used Express Edition which is free, but now I've decided to try Pro version which is free while in beta. Of course after beta period will expire I would have to return to EE, but now I want to understand "What is pro version and how it differs from EE and my favourite PSPad Editor". I think it will be good to compare VS and PSPad. However, to be honest, these are products of different types: VS is an IDE, while PSPad is a text editor, which can be used as an IDE. So to make comparison richer I think it will be useful to add to it Notepad++ and may be Netbeans:I haven't got much experience with it, but little portions of work in it make me feel that it is rather good IDE.

So... It seems I've found a good source of posts for this blog: write about software I like and don't like and why. All in all, I think PSPad is worth giving him a chance. :)

Mathematics exam

Today I've passed an exam in mathematics on best mark! I'm really pleased with that, and now I have only 2 exams left and one of them is programming and I haven't got any problems with it. Another is physics. I'm not so good in it as in programming but I think there will be nothing too difficult for me.

I now haven't got much time for my own activities and paused my programming work. Moreover I'm experiencing some internal conflict: I have a lot of things I want to do, but time goes as a sand from hands without any significant result... But I think exams are legitimate reason not to be enough productive.

Wednesday, June 13, 2007

Lumosity - reclaim your brain

Brain is like muscles — to be in fit it should be trained a lot. While performing intellectual operations brain trains and one of the best things about this is that it trains in something while doing this, so the best way to learn play chess well is to play chess, the best way to learn programming is to write programs. However just performing some operation can train brain to do this operation well but to boost progress in training and learn even more techniques than just from self-studying it is important to get information from another sources, not just own experience.

In article on lifehack.org I've read about Lumosity — training program for brain. It consists of different games to train brains memory, processing speed, attention and cognitive control. I've tried it and found it very interesting to play some these games. Of course without serious study I couldn't say that my memory was improved by Lumosity, but I can say that at least I've trained in these games and now I can play much better than at the beginning. And what is more games are rather exiting, so I advice to try Lumosity while it is on beta and free.

up

I'm writing an application to evaluate numeric expressions and in future I want to expand it to perform much more complex operations, even to programming language.

0.0.1a1 - that is number of first version that was doing something. In fact it takes from standard input binary operation with integer values, calculates result and prints it.

Now i'm working on refactoring object model in this application. At first I've made a template which was a wrap to existent classes and types. But than I've understand that it will be much better to create exact classes for types, so instead of Value<> I'll have class IntType. Moreover I will soon add an ability to parse multiple binary expressions from input and (of course) print version number if there is specified flag --version. After that I plan to add parsing of expressions of any number of operands. And after that... my plans are not very clear...

Tuesday, June 12, 2007

Safari web browser

Recently Apple released beta version of it's web browser Safari. What is cool is that now it is available not only for Macs but also for PC. So I've decided to try Safari.

However my attempt wasn't successful. Browser installed normally but on many sites it doesn't show web links! Only an underlined empty place. I've experienced this in GMail and Google Reader. And that are vital web apps for me, some months ago I switched from Opera to FF only because Opera didn't work properly with some AJAX websites, for example Google Reader. Of course I can replace GMail and Reader with other apps, but does it worth the price? I think not, because Safari bugs with links are on many different sites not only Google. I've read on Digg that some people have problems with Yahoo!.

I think problems with links are connected with font rendering, because some links are shown normally, while problems are usually with bold links. And moreover I've read a blogpost about problems with font rendering on CodingHorror. And on Digg discussion there are two main lines of opinions: "Font rendering on Safari looks awesome!!" and "Font rendering on Safari looks terrible!".

So Apple tries to expand it's market in Windows apps. iTunes has been downloaded by 500 millions of Windows users. Will be Safari? Life will show. All in all it is beta version and it is made to find bugs in application, so I couldn't strongly criticise Apple for Safari that doesn't work good. And that beta shows that there are serious problems with porting of Mac look-and-feel on Windows.

Thursday, June 07, 2007

Beggining of the summer

So it's a June 7, day of the first exam in this session. So good that lecturer gave me best mark without any exam! :)

During these days I can stay at home and make a lot of different stuff. At first I need to prepare to exam in mathematics. I think after it I will have an allergy on mathematics...

Secondly I'm programming between studying mathematics. I made some progress with my app CodeExplorer which works with source code and analyses it. Though now there is nothing interesting in these app. Just some stuff from a young programmer. But now I also made an app which should work with mathematical expressions and evaluate them. Now it can only perform addition on integer numbers, but it will be much easy to add another operations. Thought adding another types of data will be much harder and what is more I'm not pleased with code that was written. I think I'll add to it common arithmetic operations, some features, write tests and then will try to refactor this awful code. At least I'll try to think of approaches of how to represent in program different data types.

Furthermore I think now I'm giving too little time to my mental study (or how it better to name?..). I haven't read any book than tech books since January! In except of some periodic reading of Confucius. I should think of that and return to this reading. At least one non-tech book must be read by me during this summer!


What is more during these summer I sometimes play in computer game called "Battle for Wesnoth". It's a free strategy game with fantasy entourage. I like it.

Sunday, May 27, 2007

Attack problems

The best way to defend is to attack — common aphorism that we often hear. But what is in it? "Those who need to be on the alert everywhere has a little strength, those who make another to be on the alert everywhere has a lot of strength". That is from Sun Tzu "The Art of War". Recently I watched another part of "Samurai Jack". Main hero ran away from big monster, who shouted at him with strong laser beam. The only thing that Jack was able to do was to run. He even hadn't chance to watch what is happening behind his back. So he couldn't fight or even defend in any way.

Of course Jack found a way to defeat his enemy. But what is in real life? Could anyone be as a main hero of cartoon film? I think no. Sometimes situation is very bad and beats come from many sides and it is even impossible to solve the situation. And the best way top solve problem is to avoid it. Or solve it in its beginning when it is weak. So the problem is a red flag to attack, to attack it. Of course that not mean that you must go forward your problem with naked sword, this can lead more damage than usual waiting for bad news.

First thing to do is to dig problem, understand and classify it. It is also useful to make a formal description of the problem. On this stage it is needed to understand with what fight will be, what will be a condition of win and even is there a necessity of fight.

After that plan to defeat problem can be created. To be formal, plan is a sequence of actions that will lead to the win condition. It is very useful to study solutions for similar problems happened in past. In general, I have to say, studying history is a good practice, that helps to prevent mistakes of predecessors.

And then comes the most interesting part: attack problem with your plan. Defeat it. Celebrate victory...

...and don't forget that problems and enemies doesn't sleep.

And don't wait when your problems will defeat you.

Monday, May 21, 2007

Black and white

There is always white and black stripes in our life. I think my black suit and shoes are the black stripes. So everything other should be white stripe. :)

Saturday, May 19, 2007

xkcd

Two pics from xkcd that I love the most.
Matrix transform
Fourier

Thursday, May 17, 2007

Accidental thoughts...

  1. Why I have a feeling that something is on the wrong place in my life?
  2. I usually live with words "I'm on the way of war" in my mind. Sometimes this phrase is shaded by others by it always back to me. Now is the time when it backs.
  3. Is there any link between first and second?
  4. "On the way of war" — I think soon I'll write a post about this.

Wednesday, May 16, 2007

Big targets and small details

On the last week I saw a part from cartoon film series "Samurai Jack". In that part main hero lost his shoes. He wanted to punish bad guys who broke his shoes but couldn't because he felt uncomfortable without his wooden sandals. He tried different contemporary shoes but he didn't felt good in them and couldn't beat enemies. After all he found a man who made him new pair pf sandals. After that hero beat his enemies.

I think there is a couple of themes to discuss that can be extracted from this film, but I want to mention only one: the importance of small details. No, I don't want to say that big picture is useless and we should concentrate on small details, but inattention to such a small piece of stuff like shoes could break any great plan!

So what to do? How to organize small routines with big plans? How to make them fit together?

As a programmer I could give only one advise: divide and conquer. What's your shoes? It's your equipment as pen, suit and computer. It's not your target activity. You pay attention to your equipment not because they exist, but because they are mean to your target. If your main target is to have pretty shoes and the most advanced computer in the world it's not very good as I think. Main target should produce something or it should be cast out. For what to do something without using it's production?

So in fact only main targets and productive activities make sense. But they are made of smaller pieces which also could be divided on parts. So then you state new task your should understand that "write new computer application" is not a something that make a computer application. It's a bundle for activities that make something, what form new a computer application. You shoes couldn't make a computer application? but they allow you to go on the street without problems and make computer application instead of healing your legs. So is with many different things in your life. That's a stuff that is made on "auto-pilot", without deep thoughts on it meaning. But if over-focus your attention on drawing "great plans" you could fail because of small detail, that you have forgotten...

Forgive my strange linguistic construction and lack of relation between phrases... Just my thoughts...

Summer is coming

Summer is coming... And session follows it... However history has been already passed for best mark — teacher gave me mark without exam on the basis of my participation in seminars. Moreover I've already finished studying English language and Engineering graphics. On physics and discrete mathematics I have only last test works to be done. So now there aren't any problems on my way to the session.

Moreover I continue to work on CodeExplorer. It's rather interesting to develop it, study new features of language and having more ideas on implementation of different solutions. I'm exited with this work!

I think "Code Complete" graved it's mark on my programming style: now I sometimes see new abilities to resolve solution or to implement it better. For example now I'm not using i, j and k as an indices of arrays. I left only them only for prototype code that will be used only once. Furthermore now I'm trying to develop my new habit: writing tests for code before writing code itself. It is called Test-driven development. It is broadly used in Extreme Programming. I think practice of TDD is useful in almost any model of iterational development process. I'm sure it will be useful for me to develop my new habit.

And one more thing... For times I was trying to arrange my time to have a schedule of making tasks. I can't say that I've reached a full success in war with time, but I'm sure that something is changing inside of my mind during my attempts to change myself...

Saturday, May 12, 2007

A lot of news...

Hello! I have a few news about me :)

Some days ago I finished reading "Code Complete". That was a fundamental reading for me. I get a lot of knowledge and wisdom from it. Of course I don't remember all interesting things I've read but I think my programming style will become better after reading. I think in future work while coming to different stages of work I'll get this book from shelf and review checkpoints for my theme, that are pointed in book. All in all I was delighted by "Code complete" and recommend it for all programmers. As for beginners to make a good basis of knowledge and form good habits, so for professionals to improve their skills.

Moreover I started to learn Java programming language. At the moment I'm on basic stages of learning: expressions, statements, etc. They almost like C/C++, so I have no significant problems.

To add more I finished developing first version of CodeExplorer. It works! Now I need to make a list of features to implement in next iteration of development. From first cycle of development I've experienced working with Python built-in PyUnit and distutils. Working with PyUnit was enough successful and in future I continue to write tests for Python software on it. "Communication" with distutils wasn't so good. However I get some knowledge and will make a functional distribution in next iteration. However now I don't understand how to include documentation for software in distribution. All in all I think my experience from this project will be much useful in future life.

In my study life session is coming... So now I pass labs and homeworks. In Engineering Graphics I have only one lab to pass. I think I'll try to make this on Tuesday. In Physics I have only last test to pass. And in programming I need to pass report on penultimate work. However now I'm finding some time not only to study but also for my computer interest. Besides working on CodeExplorer I'm studying Java and taking a breath look ob webbook about data structures. And moreover I'm planning to learn UML.

And I've decided to reread Confucius book while tripping subway.

All in all, life is good! Goodbye, until next post.
— Anthony