Jan 13 2009

solution to disappearing SVN overlay icons

Category: Programming, toolsMaciek Talaska @ 7:52 pm

If you are using both: SVN (Tortoise SVN) and Total Commander you may have encountered some problems regarding overlay icons. There is a special option in Total Commander available that forces it to display SVN (and not only) overlay icons, but not only me was having a problem with it. The strange thing was that icons were visible in Explorer, but not inside TC. The solution I came upon was to open Task Manager (Ctrl+Shift+Esc) and manually kill “TSVNcache.exe”. After a while icons appeared in TC, and the problem seem to be gone – till the next reboot. The solution was not very convenient, so I was looking for some smarter approach to this problem. And finally I have found one. It didn’t work immediately (I had to reboot) but now it works fine (sometimes icons do not appear at once, but after a couple of minutes after booting everything is ok). It is funny, that I didn’t think of doing so before, and that nobody on TC forum knew about how to find a way round this problem.

Tags: ,


Dec 31 2008

Refactor for C++ – addendum

Category: Programming, toolsMaciek Talaska @ 6:01 pm

A few days ago I have written a short note in which I have enclosed some of my thoughts about freely available Visual Studio 2005/2008 plugin for C++ developers (DevExpress Refactor for C++). I have pointed out that Refactor had some problems with simple refactorings in one of my projects. The simplified code snippet I have provided is not good enough to help understand the problem (the snippet seems to be too simple, and it is impossible to encounter the issue I was writing about). I have spent some of my spare time to find the code that caused problems and try to analyze it and provide a code snippet that illustrates the issue. The following code is very close to the one that I have checked to be error-prone:

// forward declaration    					//(1)
void functionEx( );    						//(2)
typedef void( *void_function_pointer)(void);			//(3)

class SimpleClass
{
private:
	void (*function_pointer)( );				//(4)
	void_function_pointer func_ptr;

	void SetCallBack( void (*function_pointer)(void) )
	{
		this->function_pointer = function_pointer;	//(5)
	}

public:
	void function( )
	{
		printf("\n");
	}

	void Prepare( )
	{
		SetCallBack( functionEx );
	}

	void Invoke( )
	{
		function_pointer();
	}

};

SimpleClass *externalObject;

void functionEx( )
{
	externalObject->function();				//(6)
}

int _tmain(int argc, _TCHAR* argv[])
{
	externalObject = new SimpleClass();
	externalObject->Prepare();				//(7)
	externalObject->Invoke();				//(8)

	return 0;
}

First three lines (marked with (1), (2) and (3)) are just simple forward declarations of global function and pointer to the function that takes no arguments and does not return anything (’procedure’ in some languages). Declared function pointer is used inside SimpleClass (4) and SetCallBack assigns argument value (function pointer) to variable inside SimpleClass (5). Global function ‘functionEx’ (6) does nothing more than calling ‘function’ from object of type ‘SimpleClass’. Where’s the problem here? It seems everything is simple, right? Right. But it is the simplified version of the code I have after I manually renamed function names. The code I was working on was not object-oriented at all – at the beginning. Let’s imagine, that the name of global function is not ‘functionEx’ but ‘function’. Code does not compile. Ok. Lets use Refactor C++ to rename the name of the global ‘function’ to anything that will be different than the name of the method inside SimpleClass. The problem is, Refactor tries to rename things that shouldn’t be renamed, and skip those, we would like to have renamed. Moving cursor to ‘Prepare’ function, selecting ‘function’ (remember, we do not have any ‘functionEx’ in our code!) makes something strange: refactor tries to rename ‘function’ but… it renames the name of the method inside SimpleClass instead of the global function. And now imagine, that the code is a bit more complex, that there are a couple of files inside the projects – headers and .cpp files… This ‘unwanted’ refactoring makes more harm than good (in this case). You may say, that it is because of the code, that looks the way it does… I do not think so. I would expect refactoring tool to be much more ‘intelligent’, but still it is better to have anything (even not the state-of-the-art refactoring tool) than to be forced to make all editing by hand.

I was very interested if the mentioned earlier Whole Tomato’s Visual Assist X will be intelligent enough to cope with renaming the ‘function’. Well, Visual Assist X provides its own mechanism for renaming (not so well integrated with Visual Studio editor as in case of Refactor for C++) and it is much easier to perform renaming, because Visual Assist X shows what actions it is going to perform (and you may uncheck those, you don’t want to happen). Visual Assist X by default wanted to rename the method inside SimpleClass – just like Refactor for C++. So it seems that there is no perfect solution, and one has to be very careful while refactoring anything that contains any non standard pieces of code. Just be aware that something like the issue I have described above may happen, and that’s it.

Happy coding in 2009 :)

Tags: , , , ,


Dec 11 2008

FreeMind alternative, really?

Category: toolsMaciek Talaska @ 11:03 am

For quite a long time I have been using FreeMind as a mind mapping software for day-to-day basis. I am used to it, but its ugly user interface (and especially those ugly fonts!) keeps me searching for replacement from time to time. Recently I spent another hour searching for alternative. I have found XMind. XMind was a commercial only application before, but now a free version is also available. The differences between PRO and free versions are not crucial for me, and I didn’t even thought about spending money on the PRO version (you may check detailed feature comparison). Anyway, lets start testing it. First impression? Whoa! It is beautiful! Ctrl+Shift+Esc… and hm… XMind allocates about 60MB at the very beginning. A bit too much I think… (and I didn’t start working! I just run the app!) A few more clicks (importing my mind map created in FreeMind) and… yup, definitely it is eye-catching. Fonts on the mind map are very well antialiased, all the shapes looks very nice, same as connecting lines. The whole structure is very clean, icons are big enough to notice them at the first sight. Mind map is actually colored but it does not look like a fireworks during fiesta – no need to be worry about it ;) The impression while using are, although, mixed. The app looks great, but sometimes user does not have good experience of application’s responsiveness… what am I talking about? I have tested both apps (XMind and FreeMind – just for comparison) with the same mind map (created originally using FreeMind). This mind map consists of 76 object (including the ‘root’ one). The maximum depth is 6 levels. As you see it was not very complicated. And while using XMind I had the feeling that my quite new cpu (2.6GHz Core2Duo) is lacking some power… yes ;) Collapsing / expanding and moving whole mind map (even if big part of it was already collapsed – so not visible) was quite slow. Much better impression is being made while scrolling with scrollbars than “dragging workspace” (right-click & drag). There are two panes that I think should be incorporated into FreeMind: outline and properties. Outline is special view that lists all objects on workspace in hierarchy. It would be great if clicking on anything in outline made it active in main view… It does not work that way at the moment (it is very strange, because one expects that). Properties pane is used to quickly change properties of workspace and how it is being rendered. It allows changing outlook of workbook (workspace), user may change default shape, default type of connector lines and font. Properties pane makes a lot of work easier and allows to quickly change whole outlook of current workbook (workspace) in very convenient way (it is very easy to see how the structure will look if one uses different font or connector lines type). A few minutes passed, time to see how much memory does XMind consume… 180MB. Well… it is way too much. Working with XMind is easy. One do not have to search through help to find how something should be done. User interface is really well designed, there are dozens of predefined shortcuts, so most of the work could be done without touching mouse. It may be a power of being used to, but I think that +/- (XMind) for collapsing / expanding is worse than just hitting space bar. But customizing XMind’s shortcuts is really easy, and there is always a possibility to revert all changes and restore default settings. XMind allows using one of predefined themes – bunch of predefined colors and properties, that change the way your scheme looks like. Another couple of minutes… and XMind uses about 290MB (hey, and some said that Vista’s memory consumption is huge, so how do you call that?). The best thing about XMind is that is not only a mind mapping software. It allows creating many different types of structures: fishbones, spreadsheet, organizational, tree and logic charts (and mind maps of course ;) There are a few more things that XMind has to offer: markers, notes, creating relationships, boundaries (creating a special shape around selected objects) and a few more.

FreeMind is much smaller application than XMind. Working with FreeMind sometimes fools user: application behaves as if it was doing a lot of hard work, even if the only thing that is happening is just mouse cursor moving over objects. The (default?) behaviour of selecting object that mouse cursor is over gives user kind of a quirky feeling… the selection is not immediate, and it seems lto be a task very hard to achieve. There are a lot of useful shortcuts in FreeMind (and personally I think that they are much better designed than those in XMind). Creating and managing mind maps is easy, but one has to stop focusing on how ugly the app and mind maps created using it are… Being the opposition of XMind – FreeMind consumes only a fraction of memory that XMind does. At the beginning it allocates about 50MB, and if minimalized, this value drops to only few MBs. Sometimes (after using it for quite a while) it take about 20-30 MB more, but I didn’t see it allocating more than 100. The biggest issues with FreeMind are related to its poor GUI design and ugly outlook. The fonts look horrible and whole mind maps too (fonts are not antialiased, so as shapes and connecting lines). If you select all objects on mind map and try to change font – be aware that those object which are not visible (collapsed) will not have its properties changed – not really nice surprise after expanding.

So… Is XMind worth trying? Definitely yes. Am I going to give up using FreeMind? No. Two biggest issues are: memory consumption (it is hardly possible to use it as a background app with almost 300MB allocated by such a simple app) and lack of possibility to export created mind maps into FreeMind again. Mixing FreeMind (and especially its small resource allocation) and xmind (almost everything else ;) is the way to create the perfect mind mapping application.

So, just to sum everything up:

FreeMind:

Pros:

  • free
  • small
  • available for many platforms (written in Java)
  • small memory & resource consumption
  • shortcuts are very well designed, for most of the time one does not have to use the mouse at all

Cons:

  • ugly (especially fonts – not antialiased (even if one sets up antialiasing for all apps)
  • GUI is far from being convenient
  • responsiveness while selecting objects… one may sometimes feel some strange delays
  • still in BETA
  • if there are some objects hidden, hitting Ctrl+A (select all) and changing font (for example) does not have any effect on those objects that are collapsed… don’t like it.

Xmind:

Pros:

  • free
  • beautiful
  • creates very good looking mind maps / charts
  • it is much more than mind mapping software – it could be used for designing variety of things structures
  • outline view is definitely a big plus (or rather to say it will be a good thing if they improve it a bit)
  • properties view – very good idea
  • imports FreeMind’s and MindManager’s mind maps
  • able to store mind maps online (but hey, who really needs this kind of feature in the era of free online storage services?)
  • based on Eclipse, so it is easy to use to all those people used to Eclipse environment
  • available for many platforms: Windows, Mac, Linux…
  • portable version available (quite big, but it has java included, so it may be possible to
    use it on machine that does not have Java Runtime installed)

Cons:

  • huge, HUGE, AMAZING, ridiculous… memory consumption (it may be related to using Eclipse framework, which itself is memory hungry app, but… 300 MB?)
  • lacks export to FreeMind and /or MindManager (it seems that even PRO version is lacking this functionality)
  • slow (while moving mind map around, collapsing / expanding – even if animations are turned off)
  • selecting object on outline view does not select the same object on the main workspace, so outline is somewhat useless…
  • portable version is HUGE: ~110MB of free space is required
  • you have to register to download it (God bless GuerillaMail? ;)

Last minute news: at the time of finishing this note, XMind was allocating 450MB… no comments…

Tags: , , ,


Dec 07 2008

Color customization in CodeRush XPress

Category: Programming, toolsMaciek Talaska @ 8:30 pm

A while ago DevExpress introduced a new, totally free product for developers using Visual Studio – CodeRush XPress. I found it quite helpful, so it became one of the plugins I am using during my day to day developer activities. However, I was looking for possibility to change default colors (I have black background in my VS environment, so not all the colors are easy to notice), and couldn’t find one. Recently, I have found the solution on DevExpress site. It’s a pity, that one must be aware of this magic key combination, instead of being able to configure plugin behaviour from VS options menu. Anyway, after pressing Ctrl+Shift+Alt+O (easy to remember, right? all the modifier keys and ‘O’ as in Options ;) you will see an option dialog, with dozen of things to change (or better: ‘personalize’):

CodeRush XPress' option dialog.

Tags: , , , ,


Nov 22 2008

Disk problems? I hate it!

Category: toolsMaciek Talaska @ 10:04 pm

There is one thing I hate about computers: sometimes something doesn’t work and it takes a lot of time to figure out what is causing troubles. I am really happy when everything works as I am expecting. I am aware that it is important to create backups – I prefer to devote small amount of time every day / week than have to spend all day repairing and trying to get my data back. Unfortunately I am also eager to check a lot of things that shows up – new operating systems’ versions (different Linux distribution for example), different compilers, tools etc. As far as it does not involves playing with disk partitions I feel quite safe – only thing that I have to do is just to create backup of the environment I am currently using. However when it comes to repartitioning or changes in partition sizes (sometimes, I had to do it – no matter how much I am trying to avoid it) it takes much more time than expected. A few days ago I have decided to change organization of partition on my old desktop machine. I didn’t expected it to take so much time…

The strangest thing that happened to me recently was… incidentally loss of a whole partition (the one with quite important data on it… and of course the one I didn’t backed up earlier ;) At the beginning I thought that everything is lost… but after a while I realized, that it have to be possible to recover at least some of the information. It should be possible – just like in case of deleting files. If nothing has been saved on the same place – the information is still there, the issue is that OS somehow does not see it. After a few click I had the first tool. Next couple of seconds, and… the tool informs me, that it found the lost partition, it allows me to see all the data on it… but… I am not able to recover them, because the full version of the software (the one you have to pay for) is needed for the write operation. I didn’t want to waste my time, and wait for the code, so I started to search for the free alternative. After a while I have found TestDisk utility. It is completely free, and it is available in many version for different OSes. It is not as much friendly as earlier mentioned commercial app (TestDisk is a console application) but it does its job very good. After a few moments I had all my data back. And everything is ok (media are playable, archives have been tested and are error free). The best thing is that this utility (TestDisk) comes as a part of great LiveCD called PartedMagic. The LiveCD consist of a bunch of disk utilities, among them: GNUParted (partition tool able to resize, move, create, delete partitions…), TestDisk (partition recovery tool) and PhotoRec (file recovery). I advise to download PartedMagic’s iso image, burn it, and have it always somewhere near – just in case…

A while ago, I went to my friends and they were having a problem – some application (which was really a state of the art when it comes to its design…) stopped working, because there were no sufficient free space on system partition (only 7 GB free…). They tried to reinstall this app on different partition – nothing changed – it claimed about insufficient free space on system drive. And that’s where another utilities I use come in handy: Junction Link Magic and Winbolic. What do these utilities allow? To be short: creating junction points (directory symbolic links, NTFS junction or however you’ll call it). The thing is just to create a special link pointing to a directory on a different drive or partition (that has a lot of free space) and thus overcome the limitation of "insufficient free space". It works similar to standard links, but it is transparent for all applications – the paths are not being changed, and from the view of application or file operations it is the same as it was before creating junction point. A few clicks in Winbolic (this one is my favorite) and everything was back to normal, app was starting without any complaint (all thing was about creating symbolic link for application’s preferences stored in AppData…).

Similar technique I often use to avoid repartitioning my drive, and still be able to use all its space. When I give up some new and fancy Linux distribution (for any reason) – I just format the partition and link them to an empty directory (this is possible using Windows built in Administrative Tools -> Computer Management -> Disk Management). The only thing you have to do is to remove any drive letter that is assigned to drive, and mount the drive to any empty directory to any of the partitions you use. From now on all the space from the specified partition (or drive) is accessible through the directory you’ve chosen. It works very similar to mounting drives / partition in Linux distributions. I find it much more convenient than having a lot of drive letters that you have to switch through to find something.

Tags: ,


Nov 18 2008

Visual SourceSafe to SVN migration.

Category: Programming, toolsMaciek Talaska @ 10:51 pm

After struggling with VSS for quite some time I decided to switch to SVN with all my private projects. I have used SVN before and I think it is great, but never had enough time to migrate all the projects. I thought that such an operation could not be painless. History of all changes was crucial for me – I did not want to devote all those information held by VSS just because of the migration. I started looking for some kind of script I could use… and I was very lucky, because almost immediately I found the solution that did all the work for me. VssMigrate is a command line C++ utility developed by a bunch of folks (y

ou will find all the info on the utility site). At the project page one will find a bunch of releases (bug fixes, additional features…) – personally I think the best idea is follow author’s advice and download one of the latest (the one with ‘tim2′ suffix seems to be the latest one – it automatically removes VSS bindings). VssMigrate seems to be quite mature and as much developer-friendly as could be – the only thing one has to do is to configure this tool by editing .config file. It did take me, however, a couple of minutes to configure it properly, but when I figured out the proper values… the migration was quick as lightning. Below you may find configuration that worked for one of my projects:

<add key="VSSWIN32" value="C:Program FilesMicrosoft Visual SourceSafe"/>
<!-- # VSSWin32 directory which contains ssapi.dll-->
<add key="VSSDIR" value="d:VSS"/>
<!-- #VSS repository directory (contains srcsafe.ini)-->
<add key="VSSPROJ" value="$/RegionCreator/"/>
<!-- #VSS project to start at (ie $/Product)-->
<add key="VSSUSER" value="<user>"/>
<!-- #User to use for VSS commands, use blank for none-->
<add key="VSSPASSWORD" value=""/>
<!-- #password to use for VSS commands, blank is OK-->
<add key="SVNUSER" value="<computer_name><user_name>"/>
<!-- #User to use for SVN commands, use blank for none-->
<add key="SVNPASSWORD" value=""/>
<!-- #password to use for SVN commands, blank is OK-->
<add key="SVNURL" value="file:///D:/Svn/RegionCreator"/>
<!-- #URL to use for the root of the check in-->
<add key="SVNPROJ" value="trunk"/>
<!-- #SVN project to start at (ie $/Product)-->
<add key="SVNREVPROPSPATH" value="d:Svndbrevprops"/>
<!-- #SVN Repository directory (ends in [RepositoryName]dbrevprops)-->
<add key="WORKDIR" value="c:Tempvss"/>
<!-- #Directory under which files and directories will be created as work progresses-->
<add key="DEBUG" value="1"/>
<!-- #turn on debug output, blank is OK-->
<add key="AUTORETRY" value="1"/>
<!-- #if a command fails to run, it will be run automatically 1 time before failing-->

Thanks to the comments, and sample values – editing config file was not such a big hassle as I was expecting. Just to make it even clearer – I will describe some properties that may not be obvious at the beginning:

  • [line 5] “VSSPROJ” should hold internal path of a project inside VSS.
  • [line 19] “SVNREVPROSPATH” should point into “dbrevprops” that is located right under the folder when SVN repository was created
  • [line 21] “WORKDIR” is a temporary directory used during the migration process. The directory must exist before running migration utility.
I am not sure if I have configured it properly, but it worked for me as a charm. The only disadvantage I can think of is that it is impossible to import all the content of VSS at once. One has to change configuration for every project that needs to be copied to SVN. It just take me about 15 minutes to move 8 solutions (most of them consisting of 3-4 projects).

And at the end… it is a good idea to remove source control bindings before releasing your sources, right? And why do it manually if there is another great tool that does all this work? :)

Tags: ,


Sep 19 2008

Visual Studio & SVN integration

Category: Programming, toolsMaciek Talaska @ 2:29 pm

SVN is nowadays one of the most popular version control systems. There is a great tool for Windows called TortoiseSVN – it is very popular, easy to use and has a lot of features. But… it is not very convenient while developing. The need to switch from Visual Studio just to check-in, resolve conflicts… well it is definitely not what I want. I wanted to have a tool that integrates with Visual Studio just like Microsoft’s Visual Source Safe or TFS does. Quite a while ago I tried AnkhSVN, but it didn’t work as good as I wanted – it had a heavy impact on my Visual Studio (sometimes I had to wait very long to be able to do anything – because VS tended to freeze).

Few months ago I found out that many people praise VisualSVN. It is not a plugin (just like the old AnkhSVN) – it uses SCC interface, so it behaves just like VSS/TFS. Some people says that the only thing they dislike is that they feel it just a wrapper for TortoiseSVN (VisualSVN just launches TortoiseSVN’s dialogs for most of the operations). I think it is not a disadvantage – TortoiseSVN is a great client, so if there is a way to use not, and not be forced to switch from Visual Studio to Explorer / Total Commander / any other shell… that’s just great (for me). The only disadvantage of VisuaSVN is that one have to pay for it. In the past it was very cheap (19$) but after gaining popularity it became much more expensive – now it costs 50$ (but there is a way to get it for free – one just have to be active developer involved in open source project).

Well… I wanted to find a free alternative, and that’s how I found Garry Bodsworth’s special settings, that integrates TortoiseSVN with Visual Studio. It is free. It is fast (there is no impact on Visual Studio performance). It contains both: version for VS2008 and VS2005. Perfect? Well… almost ;) It is just a setting file, so ‘Pending Checkins’ won’t work, there is no mechanism showing new files or changed files in projects / solutions…

All those things that Garry’s settings lacks are provided by the latest, totally rewritten version of AnkhSVN! Now AnkhSVN works not as a plugin, but as SCC package – the integration is done the way it should be. The impact on Visual Studio performance is not noticeable. ‘Pending Checkins’ works just like with VSS / TFS, managing newly added, changed or deleted files in solutions / projects is much simpler – thanks to showing all the changes right in the solution view. Personally I think that TortoiseSVN’s dialogs are better ;) so at the moment I am using both – Garry’s settings and AnkhSVN. Garry’s settings allows me to use very well known by me mechanisms provided by TortoiseSVN, and AnkhSVN shows me all the changes I have made recently – it saves me a lot of time, and I am sure I won’t miss any file while doing heck-in.

Tags: , ,


Dec 29 2007

A few thoughts on Apple’s Safari

Category: toolsMaciek Talaska @ 8:08 pm
A few days ago I have found information that Safari (Web browser for MacOS) is available for free for Windows system. I have heard a lot of good things about this browser from it’s user, so I gave it a try. The first thing is that Safari (the one that is available for PC) is still in beta, so don’t be suprprised if something works not as you would expect. After installing – first run of the browser – yup, it mimics the MacOS’s Aqua interface. Quite nice ;) Below I wrote the pos and the cons of the PC version of Safari after using it for a few days.
Pros:
  • very nice rendering (font looks a bit better – and it is not subjective opinion). 
    Firefox
    IE7
    Opera
    Safari
  • renders pages really fast (not only on my development machine, but also on the ‘historical’ pc used by my parents) .  Another thing that is worth to mention is that Safari is not only fast at rendering pages, but it also seem to use not as much of cpu power when it has many tabs open (comapred to Firefox). Of course, you may enojoy it’s speed as long as it does not crash ;) 
  • some of the users may find it’s user interface very interesting
  • fancy glare effect (focus) – when a control that is focusable and it content can be changed by user (all those text fields, checkboxes…) gets focus, it also gets some kind of glare. It is nice to know where the focus is, right? 
  • does not seem to be a bloat-ware. does not consume a lot of memory. It seems to have .net – alike memory management mechanism built in. When you minimize Safari it just frees memory, so it takes only about a few MB of RAM.
  • most sites are rendered correctly.
  • works perfectly with Silverlight! (I have checked it woth Silverlight version of Microsoft Download Center)
  • it is very convenient for the user that they do not want people to change their habbits, and the shortcuts for the most frequently used functions are ’standard (ctr+t for new tab, F5 for refresh content… – it is nice that learned the Opera’s lesson ;)
  • Safari has ver cool ’search ‘ feature. It is somewhat similar to the one in Firefox. Safari highlits all wordswhich contain the specified phrase, and phrase in ‘active’ word is highlited in yellow. It is also possible to move backward and forward through all the words containing search-phrase using buttons. It would be even better if there would be possibility to move between findings using some shortcuts (alt+n for next – just like in Firefox woudl be great ;)
Cons:
  • unstable (crashes very often). It helps a lot if you just uncheck the ‘Enable plugins’ options in Security -> Web Content.
  • often gives message that is unable to display a page… – if you get the ‘page could not be loaded’ message – try to hit F5 – sometimes Safari needs this key to be pressed several times ;) )
  • there’s no option to double-click on the tab area to create new tab (ctrl+t or right-click and ‘new tab’)
  • plugins for mac version of Safari does not seem to work (you just can’t use Apple’s dmg executable, can you?) And there are very few plugins for PC version of Safari (if any… I haven’t found a one myself)
  • very few options – I just wasn’t able to configure some of the settings I would like to 
  • sometimes it consumes a lot of cpu (I have encountered this issue while watching some movies on youtube). This problem is connected somehow with plugins. I think there are some plugins that works, but sometimes they cause Safari to hang-up or even crash. The browser itself (without plugins) is quite reliable.
  • there are only two options for download location: desktop or any other folder. why can’t I choose folder apropriate for what I am downloading right before clicking ‘download’?
  • kind of a strange bookmark & rss management… well, not really a management, but I am still confused about what should I do (where to click) if I want to manage bookmarks or rsses. I always forget, that I should click on the book icon on the bookmarks toolbar (there is another way to enter bookmark management window… but I have forget it ;) I wonder, why did they decided not to put “Manage your bookmarks” option in “Bookmarks” menu? And the bookmark management is not very friendly. You got it open – ok. Now lets assume that you would like to create a new bookmark folder. Hm… right click is not working… so how should I…? Ah! There are some small plus-icons buttons  _at the very bottom_… I don’t think it really the best idea.
  • I still do not know why I can’t get New York Times pages to show me their dictionary after double clicking on a specified word. In IE/Opera/Mozilla it works without problems. I have enabled all the scripts, JavaScript, Java. I have also let the browser to show pop-up windows… no effect.
  • one thing I really miss in Safari is session saver. (I know that Mozilla also does not have it on board right after installation but there is a plugin ;) and Opera, and even IE – both have this feature built in).
  • web address autocompletion: Safari has this feature. But it works… strange. It takes a while to realize that when there is a list of addresses that are similar to what you have typed shown to you – most of the people are used to hit enter (to get to the address that is first in list of those suggested by browser), or click on the one that they want to choose. In Safari you also may use Enter. But if you’re a fan of a mouse – you have to double click the address you would like to go. Small inconvenience.
  • there is no fullscreen optionn (F11 in Firefox/IE). I really missed it while using Safari – especially when working on my laptop (it’s display is not as big as I would like it to be).
  • Safari has problems managing many tabs. Lets assume that you’ve opened so many tabs, that they don’t fit in tabs bar. You can – of course – select a tab which title is not visible on tabs bar, but there is no way to close it (or I just haven’t found one – after a while I have found one solution: you can ‘Move Tab to New Window’ (’Window’ menu) and then close the window. Hm… a bit too tricky, don’t you think?
  • if you use the ‘Move Tab to Other Window’ and in the new window you add some folders to the bookmarks… be prepared for Safari to crash if you would like to add a page to bookmarks.
  • browser doesn’t save what you have typed in google search – and I find this thing to be extremely useful 
  • sometimes it looses focus – especially when you’re working mostly with keyboard (you go forward, backward, and want to scroll the page using keys? sometimes you just have to click on the site content to be able to do so). Sometimes when editing some texts on pages you cannot go to the line above / below
    using keys – just as if there would be no lines above / below.
I have also made some small memory-usage test. I typed in the web browsers address bars the address of the site I have presented screenshot a bit earlier. So, the results are:
IE7: 39 348K,   7 024K (after minimize-restore)
Safari:     46 328KK, 14 924 (after minimize-restore)
Opera:     20 948K,   6 000K – 7 000K (after minimize-restore)
FireFox:   32 228K, the same after minimize-restore (it is really strange, don’t you think?)
So, is Safari worth a try? Definetly yes. Of course some things works a bit different than in other browsers, but after some time, when you get used to them – you may even think that things should be done Apple way ;) There are some things Safari misses and the most important is: plugins. It would be perfect if PC version could use all those plugins that have been made for Mac version (but I don’t think it is possible). Bare Safari is definitely not enough for many people. One thing I really like Safari for: it has the nicest font rendering engine! Reading sites in Safari is just a pure pleasure! And I think I will keep Safari installed on my PC just for its speed and font rendering.
(Yup, this note was created using Safari ;)

Tags:


Nov 25 2007

Getting started with Silverlight

Category: Programming, toolsMaciek Talaska @ 1:59 pm
Recently I have heard about INETA’s “Silverlight European Challenge” and I have thought that it is a great opportunity to learn this cool new technology from Microsoft. My first steps were to go to Silverlight’s site (community -> gallery) – just to install the runtime and watch some samples. Some of them were really amazing, so I was very excited, and started to install everything I thought I would need as a developer. I have installed:
After a couple of minutes, when everything I have listed above was installed I created first Silverlight project in Visual Studio 2008 Beta 2. It compiled at once with no errors or warnings. But when I wanted to run the application (you know, the simpliest “Hello world from Silverlight” thing) it didn’t work. I saw the “Get Microsoft Silverlight” instead of what I expected. I went back to the silverlight.net site, just to check if problem was with the application, or something was broken in my developer’s environment. Samples I was watching a few minutes earlier just stopped working. I decided not to spoil my working environment and to test Silverlight’s installation on virtual machine. I used images with Visual Studio 2008 Beta 2. At the very beginning I realized that I did not need to install Silverlight 1.0 SDK. The next thing I have discovered was that samples stopped working after installing VS 2008 Tools for Silverlight. Unfortunately it is impossible (at least very hard) to develop anything using Silverlight without those VS tools (VS Beta2 is not able to cope with Silverlight’s project type without this add-in). The last thing I tried was to install only Silverlight 1.1, and VS 2008 Tools for Silverlight 1.1. and… it worked!

It is really dissapointing that there is no information concerning what you should install to get everything work as it should. There is a topic on a forum on a Silverlight community site, but it describes installation issues with older version (July 2007) of Silverlight 1.1 Alpha package.

So… just to sum everything up, to have environment for Silverlight development configured properly all you need to do is install:

  • Silverlight 1.1
  • VS 2008 Tools for Silverlight

and that’s it! Nothing more! (you may also install SDK for Silverlight 1.0 and 1.1 – it should not spoil your environment).

Hope it helps… happy Silverlight-contest coding ;)

Tags: , ,