Samstag, 25. Dezember 2010

Collection was modified exception

I saw some pretty strange solutions for this problem, most of all, ones which involve a "helper" list to store the items to remove... this of course is overkill (memory and cpu wise - think of collections with a million items ...)

Here's how to do it:
for (int i = pageList.Count; i-- > 0; )
{
    if (itemsToRemoveList.Contains(mainList[i]))
        mainList.RemoveAt(i);
}

Sonntag, 19. Dezember 2010

Antonia Jane Chords

Hello Everybody :-)

Maybe you know the canadian Rock-Band Lightning Dust... If not, I guess you've seen the great video on youtube where brian fallon of The Gaslight Anthem performs this song. If you don't know who Lightning Dust is, check them out and if you like it - also give Balck Mountain a try (Lightning Dust - Amber Webber and Joshua Wells - are both core members of this GREAT band).

Oukey, here are the chords (and I really, really hope there's not gonna be any whining about copyright shit. Music is art, art is culture and culture belongs to the society).

Support the artist: Go to the shows, buy your CD's there (and from Indie Labels).

Intro: Play around D

D
Did you ever come close to home?

Bm
Riding the tide of the silver line,

D
Maybe dress them up in ribbon and golds,

Bm
Never fall back into the one you love,

D
Pick pocket lady with her mind on you,

Bm
She'll break a million hearts until she makes it through,

    G            D       A
But I declare a war on you,

        D    A
Someday soon

D
Hiding with the border skies,

Bm
Lead down ditches on the side of the road,

D
Be careful you don't look to the sun,

Bm
Lazy head lions you'll get fed to the wolves,

D
So rally up the soldiers there's a war to win,

Bm
If hearts can't be alarmed I can't let em win,

    G                D        A
But I would give it all for you,

        D    A
Someday soon

        D    G
Someday soon

        D    A
Someday soon

D
Bury all the silver and gold, 

Bm
We can walk to the top and look down at it all,

D
What happens when the feelings gone?

Bm
It's a love angel with the wings cut off,

D
So the parents tell the children 'That's no way to live'

Bm
So we capture what we're after left of the rest of them,

  G                  D       A
Antonia Jane will rise again

Edit:
Give them a watch on youtube, they seem to be quite a fun bunch :-)

Sonntag, 5. Dezember 2010

Public Signage

Here are some pictures of public signage (since they're taken in switzerland, they're either german or french).


Samstag, 4. Dezember 2010

Winter's Heart

Hey everyone, well if your not as lucky as everyone on the southern hemisphere, you're stuck in winter right now. Here are some pictures (go one and use them as wallpaper or whatever ...) of this icy menace.

Uuuuultra high-res download:




Smaller 'previews'











Wallpaper Saturday

And here are some (well, there are exactly six) wallpapers (photos I took last summer). I hope you like them.

It's Mikee hanging out.

An ear of corn (at least I hope it's really called an "ear").

A flower. Yay.

 Another flower, with a drop of water on it.

I have no idea what those are called (in english).

 Aaand another flower (a rose this time).

Donnerstag, 25. November 2010

If programming languages were music albums - Part 1

Hey all you programming music fans out there. Yes, we (that is, programmers) are rockstars trapped in offices. I like to play the guitar or the piano while thinking on problems such as how to make that damn piece of code faster, better or obsolete. Later on, while writing the code, I really need to listen to some music. Now, what if my favourite albums were programming (or scripting) langauges? So here we go...

PHP
Ok, this one was really hard, since i have to choose an album I actually like, which I can't say about PHP. Well PHP got better over the time (Version 5 and up) but not like wine does. It kinda got less bad. While PHP may be ok to use for small projects hosted on a cheap (standard apache) server like personal websites or blogs, it should NEVER EVER be used for anything bigger. Code maintainability is a bitch. If you know what a binary tree is, I think you'd prefere an abacus over PHP.

So, which album does fit?

It's Stoner Witch by (the) Melvins. It was released in 1994. And like PHP you look at it and think, what the fuck. It's strange, doesn't seem to fit - there's grunge, metal and stoner rock and a dog.

I grabbed this album a few years back and didn't like it. But after some time it, like PHP, got less bad.

But as I said, my dislike of this language can't be described (productive) by any album I own.

Maybe some electro album would serve better. Fast, not deep and boring after two weeks. If someone has a better idea, just give it a comment.



C / C++
I really don't have to talk about those. They're here. They always have and always will, at least until quantum computing or what ever there will come and make those good old electrical transistors go away. Motörhead!

Mötrhead? Ace Of Spades! Yes, say what you want, it's the best album of Motörhead there is, was and ever will be. Just like C / C++, its hard, brute force and ugly. Not really ugly as in Visual Basic ugly. Since C / C++ is to Motörhead as Visual Basic is to a 59 year old, crack whore.

But it's so basic without bells and whistles, it's one step above assembler so you can dug your hands in and get dirty (well you could do this too with Visual Basic, but just not in a good way).

The same is Ace Of Spades, its beautiful trash, it's - I don't know - Tank Girl, beer in the morning and drunk sex.


Javascript
It will die with human civilization as we know it. Period. Javascript is woven into the Internet like veins thorugh a body. While any language which is bound to a technology you can actually grab or replace like microchips and harddrives, Javascript is the Internet. The Internet will live forever and so will Javascript.

London Calling by The Clash. Just as Javascript will stay and not go (hope you get the hint) so will this album. Charismatic, simple yet deep, emotional and easy.

Joe Strummer will live forever.

Stay tuned for part 2.

Montag, 19. Juli 2010

C# selective clone with a generic extension method

Hey guys, ever had to clone an object - but only duplicate the properties you actually needed. Or maybe you don't want to copy the id property... Something like that, well then take a look at this.

public static class ObjectExtensions
{
 public static T SelectiveClone(this Object obj, string[] properties)
  where T: new()
 {
  T temp = new T();
  PropertyInfo[] propertyInfos = typeof(T).GetProperties();
  foreach (PropertyInfo pi in propertyInfos)
  {
   if(properties.Contains(pi.Name))
    pi.SetValue(temp, pi.GetValue(obj, null), null);
  }

  return temp;
 }
}

Well you can then do something like the following.
/* 
 Product is a class with the properties
 "title", "titleAlias", "subTitle", "description", 
 "price", "stock" and "id"
 "original" is an existing object of the class Product
*/

// The following copies all properties except "id"
Product product = original.SelectiveClone(new string[] {
 "title", "titleAlias", "subTitle", "description", "price", "stock"
});

Freitag, 9. Juli 2010

Silverlight 4: Bye bye ControlParameter

If you've been using Silverlight 4 and some of its ria stuff, you may have noticed that the ControlParameter has gone missing. Actually it has gone for good - and that's a good thing.

ControlParameter was a misfit, why? Look at the following (old) code:
<riaData:ControlParameter ParameterName="title"
                             ControlName="filterTextBox"
                             PropertyName="Text" />

Now there's no databinding, and that most certainly isn't the (new) .NET way. Check out below how it should look now, with Silverlight 4. Here we doe some data filtering with DomainDataSource.FilterDescriptor.

<riaControls:DomainDataSource Name="ExampleSource" QueryName="GetExampleQuery" AutoLoad="True">
<riaControls:DomainDataSource.FilterDescriptors>
<riaControls:FilterDescriptor PropertyPath="title"
Operator="Contains" Value="{Binding Text, ElementName=filterTextBox}">
</riaControls:FilterDescriptor>
</riaControls:DomainDataSource.FilterDescriptors>
<riaControls:DomainDataSource.DomainContext>
<domain:ExampleDataContext />
</riaControls:DomainDataSource.DomainContext>
</riaControls:DomainDataSource>

See, everything is well now. :-)

Donnerstag, 8. Juli 2010

An UI Framework for (the front-end) of Websites

There are many nice User Interface Frameworks for the Web. Some of the are made for Java (and they do a pretty good job of deuglifying it - at least for the user) but most of them can be used for every architecture, because they base solely on JavaScript (and / or JavaScript Frameworks like JQuery, MooTools, etc.) and CSS. Here's a list of a few of them.


While those Libraries are all very good and contain lots of widgets and other nice things - they are also big, hard to (learn to) use and did I say big? They are huge!

If you're designing a CMS backend or an enterprise intranet solution you just have to use one of them. But if you're "just" designing a "mid-range" website and you just like to provide a little more User Experience, those framworks / libraries are just overkill.

Now, whats the first thing you need if you start to build a website (from scratch)? A nice layout. Now there are a few options... you could spend some time building a CSS based cross-browser layout, you could just slam in a table or you could use a CSS framework. There are some very interesting, grid based CSS Frameworks. My favourite is blueprint - there are others, just do a google for "css frameworks".

Now long story short - i slammed together a little, let's say, website template, or website starter kit. This template (or kit) contains my micro ui widgets for jquery and a modified blueprint css framework.

Check a demo out here.

Now keep in mind: This is a work in progress and I'm creating this template for my own use (as well as for anyone's who likes it).

Download the package here.

Now run along and create a beautiful website!

Montag, 5. Juli 2010

Yellow Fish

Oh look, a fish!

Freitag, 2. Juli 2010

Silverlight 4: Drag and drop from desktop or image

Ok, Silverlight 4 is here and everyone's very happy and excited (well.. I think it's just more fun now to use Silverlight - especially with the nice toolkit, which can be found on codeplex). Yesterday I tried one of the new features and wow, it was pretty easy to implement drag and drop for Silverlight 4 applications.

So let's say you got a Listbox, like the following one
<ListBox x:Name="myListBox" />
Now you have to add e few things:
  • Allow Drop with AllowTrop="True"
  • An eventhandler for the Drop event
  • And finally if you want eventhandlers for DragEnter and DragLeave
The whole thing should look like the following
<ListBox Name="myListBox" 
         AllowDrop="True" 
         Drop="myListBox_Drop" 
         DragEnter="myListBox_DragEnter" 
         DragLeave="myListBox_DragLeave" />
Lets talk about the "Drop" event for a moment. Drop supplies the event handler with the arguments from DragEventArgs: Take a look at it on MSDN. Here's how I handle the event
private void myListBox_Drop(object sender, DragEventArgs e)
{
 FileInfo[] droppedFiles = e.Data.GetData(DataFormats.FileDrop) as FileInfo[];

 for (int i = 0; i < droppedFiles.Length; i++)
 {
  this.myListBox.Items.Add(droppedFiles[i].Name);
                /* you have to access the data in the listbox via droppedFiles[i].OpenRead()
                   things like File.OpenRead(droppedFiles[i].FullName) won't work because
                   of the Silverlight 4 security model */
 }

 e.Handled = true;
}
Additionally you can use the DragEnter and DragLeave event to alert the user, that dragged files can be dropped on the object - just change the background colour or something like that (a border is quite nice as well).

Donnerstag, 1. Juli 2010

MicroGallery

MicroGallery is one of the smallest (800 bytes) gallery plugins around. There are no fancy animations (as if one's watching pictures of products, one doesn't want to wait for them to fade in, slide down or whatever ...).

What MicroGallery does is:

  • Showing thumbnails
  • Letting the user click on  the thumbnails
  • Showing the clicked thumbnail in a bigger size
  • The 'target-element' in which the big pictures will be shown can be chosen, so you'll  be able to change the background-image of any element.


Screenshot

Demonstration
Check the demo out here.

HowTo
The HTML
<div id="microgallery-view"> 
</div> 
<div class="microgallery"> 
 <div class="microgallery-element"> 
  <a href="Images/mercury.jpg"><img alt="Planet" src="Images/mercury.jpg" /></a> 
 </div> 
 <div class="microgallery-element"> 
  <a href="Images/venus.gif"><img alt="Planet" src="Images/venus.gif" /></a> 
 </div> 
 <div class="microgallery-element"> 
  <a href="Images/earth.jpg"><img alt="Planet" src="Images/earth.jpg" /></a> 
 </div> 
 <div class="microgallery-element"> 
  <a href="Images/mars.jpg"><img alt="Planet" src="Images/mars.jpg" /></a> 
 </div> 
 <div class="microgallery-element"> 
  <a href="Images/jupiter.jpg"><img alt="Planet" src="Images/jupiter.jpg" /></a> 
 </div> 
 <div class="microgallery-element"> 
  <a href="Images/saturn.jpg"><img alt="Planet" src="Images/saturn.jpg" /></a> 
 </div> 
 <div class="microgallery-element"> 
  <a href="Images/uranus.jpg"><img alt="Planet" src="Images/uranus.jpg" /></a> 
 </div> 
 <div class="microgallery-element"> 
  <a href="Images/neptun.jpg"><img alt="Planet" src="Images/neptun.jpg" /></a> 
 </div> 
</div> 

The JavaScript
$('.microgallery-bg').microGallery({
    view: 'body'
});

$('.microgallery').microGallery({
    view: '#microgallery-view',
    defaultSelected: 2
});

Look at the demo for css samples :-).


Download
Source code
Packed for deployment

Freitag, 25. Juni 2010

Colors of the Solar System

I've been, well, less uncreative than normal and came up with this nice Wallpaper (at least I think it's nice ;-)). The illustration represents the 8 planets of our solar system as well as the sun (in the centre - obviously).


16:9 Resolutions





16:10 Resolutions





Have Fun!

Oh, and in case you're missing Pluto: As you may know, Pluto is no longer considered a Planet. As of 2006, Pluto is a dwarf planet called 134340 Pluto, occupying an orbit (partially) in the Kuiper-belt. Read up on the whole topic here and here.

Donnerstag, 24. Juni 2010

List bullets for your HTML

I got bored with the usual List Bullets on a recent Project of mine - so I created a few new ones. Here they are


Black bullets in action: Watch here.
White bullets in action: Watch here.
Transparent bullets in action: Watch here.

Download the full pack here.

Mittwoch, 23. Juni 2010

Ugly java UI of the month: June


Remember Azureus? This nice BitTorrent client has been there long before my current favourite uTorrent (you should get uTorrent, it's small, easy to use and quite well coded). Like all good things Azureus came to an end when they renamed it to Vuze, bloated it with stuff no one (at least I hope no one) uses and made Shitware out of it. Now it has an integrated high def (wow) player and shitty rss stuff. For $24.99 it even comes with DVD bruning and built-in antivirus protection. WHAT A PIECE OF SHIT.

But that's not the worst of it, because features can be turned off (at least I hope one can turn of Built-In antivirus protection, since wow.. I already have anti-virus software installed). No, the worst thing is the fugly User Interface. The UI of Vuze literally looks like Apple puked all over it. Or maybe Azureus got drunk and met iTunes in a dark backyard.

Just look at it, doesn't this remind you of ugly iTunes? Well I wont get into iTunes now, because it's the worst Shitware out there. But why do UI designers like this lame iTunes style that much? I don't know... maybe because they don't get screwed by Apple like developers do. iTunes and Vuze kinda look like Pampers meets a drunk bum-version of the guy who designs CD covers for MUSE.

Bullshit.

Sonntag, 20. Juni 2010

MicroModal

INFO: Take a look at my microUI website template. It contains the newest version of MicroModal and lots of other nice goodies!

MicroModal can be used to display a modal window on click. Useful scenarios include: "Are you sure you want to ...?", "Please enter ...!", and so on.

This isn't one of those huge modal scripts with CSS files and fancy graphics - if you want it fancy, use (or wait for) CSS3. This solution is fat-free.

Screeshot


Demonstration
Check out the demonstration here.

Example
The JavaScript
$('.micromodal').microModal({
    autoPositioning: true, // set true if you wish to center the modal window (default: true)
    overlay: {
        show: true,        // set true if you wish to how an overlay (default: true)
        color: '#fff',     // set the colour of the overlay (default: '#fff')
        opacity: 0.8       // set the opacity of the overlay (default: 0.8)
    }
});

The Html
<button class="micromodal target-changecolor">Let's change the background colour!</button>
  
<div id="changecolor" class="dialog">
 Do you really want to do this?
 <br /><br />
 <button onclick="$.fn.microModal.dialogs['#changecolor'].close();">No way!</button>
 <button onclick="$('body').css('background-color', '#fedcba');$.fn.microModal.dialogs['#changecolor'].close();">Sure</button>
</div>

The Css - if you don't know what to do yourself - find another JQuery Plugin ;-)

Download
Source Code
Compressed Code (for use in productive environment)

Mittwoch, 16. Juni 2010

MicroTab 0.1 Released

Hey, there's been another Micro release. This time it's MicroTabs. If you want a small (1 Kb) and easy to use tab plugin with no (in my view) lame animations. Check it out.


How To
The HTML
<div class="micro"> 
    <a href="#">Title</a> 
    <div>Content</div> 
</div> 

The JavaScript
$('.microtabs').microTabs({
    selected: 1 // yeah this is the only option - which tab do you want to show on startup?
});

And some CSS
.microtabs { margin:20px 20px; max-width:800px;}

.microtabs-button { 
 padding: 10px; 
 background-color:#333; 
 color:#fff; 
 text-decoration:none; 
 font-family:Segoe UI, Helvetica, Arial; 
}
.microtabs-button:hover { color:#abcdef; }
.microtabs-selected { 
 background-color: #fff; 
 color: #333; 
 border-right:1px solid black; 
 border-top:1px solid black; 
 border-left:1px solid black; 
}

.microtabs-element { 
 background-color:#fff; 
 color:#555; 
 padding:10px; 
}

.microtabs-header { margin-bottom: -1px; }
.microtabs-container { border: 1px solid black; 

Demonstration
Get a look at the demo here.

Download
Source code
Compressed version (for production)

MicroTab 0.1 Released

I have moved! You'll find MicroTab on my new Blog: http://salatsosse.ch/jquery/

Dienstag, 15. Juni 2010

Drag and Drop files from WPF ListViews to the Desktop / Windows Explorer

Hey guys, this morning (yeah, beginning 7.00) I tried to implement what seemed to be quite an easy task: Dragging files out of my app onto the desktop or into an open explorer Window.

It’s not quite easy. So let’s start this small tutorial. First (of course) you create an ListView – let’s call it “FileView”.

<ListView x:Name="FileView" 
PreviewMouseLeftButtonDown="FileView_PreviewMouseLeftButtonDown"
MouseMove="FileView_MouseMove">
<ListView.View>
<GridView>
<!-- Put in here whatever you need -->
<GridViewColumn Header="Name" CellTemplate="{StaticResource file}" />
</GridView>
</ListView.View>
</ListView>


Now to the code behind the xaml. You might have noticed that I added two events to the ListView. The PreviewMouseLeftButtonDown (the dragging starts) and the MouseMove (the dragging is happening).



private Point start;

private void FileView_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
this.start = e.GetPosition(null);
}

private void FileView_MouseMove(object sender, MouseEventArgs e)
{
Point mpos = e.GetPosition(null);
Vector diff = this.start - mpos;

if (e.LeftButton == MouseButtonState.Pressed &&
Math.Abs(diff.X) > SystemParameters.MinimumHorizontalDragDistance &&
Math.Abs(diff.Y) > SystemParameters.MinimumVerticalDragDistance)
{
if (this.FileView.SelectedItems.Count == 0)
{
return;
}

// right about here you get the file urls of the selected items.
// should be quite easy, if not, ask.
//string[] files = ...;
string dataFormat = DataFormats.FileDrop;
DataObject dataObject = new DataObject(dataFormat, files);
DragDrop.DoDragDrop(this.FileView, dataObject, DragDropEffects.Copy);
}
}


Now that’s that, thanks for reading.

Donnerstag, 10. Juni 2010

A StringBuilder for JavaScript

I am currently working on making some cool .net framework classes / functionality available with JavaScipt. When I'm done, there will be a nice js# framework ready for download (my goal is to keep it under 10kb compressed).

Well the first part I did is something I find myself frequently missing when coding with JavaScript: A StringBuilder. When working on a web project, there are loads of occasions which scream for such a nice class. So here we go, the source code:

// =============================================================================
// System.Text.StringBuilder
// =============================================================================
// Implements a StringBuilder.
// Differs from C#! Capacity and Length properties have been removed.
// Prepend has been added.
var StringBuilder = function(string) {
 var _str = (string == null) ? '' : string;
 // Appends a string to the stringbuilders internal string.
 this.append = function(string) {
  _str += string;
 };
 // Appends a formatted string to the stringbuilders internal string.
 this.appendFormat = function(string, array) {
  for(var i = 0; i < array.length; i++) {
   string = string.replace('{' + i + '}', array[i]);
  }
  _str += string;
 };
 // Inserts a string at a specified position inside a stringbuilders internal string.
 this.insert = function(string, position) {
  _str = _str.slice(0, position) + string + _str.slice(position, _str.length);
 };
 // Removes a substring of the stringbuilders internal string.
 this.remove = function(start, end) {
  _str = _str.slice(0, start) + _str.slice(end, _str.length);
 };
 // Replaces any substring inside the stringbuilders internal string.
 // Replaces any substring inside the stringbuilders internal string with ''.
 this.replace = function(oldValue, newValue) {
  newValue = (newValue == null) ? '' : newValue;
  while(_str.indexOf(oldValue) > -1) {
   _str = _str.replace(oldValue, newValue);
  }
 };
 // Returns the strinbuilders internal string.
 this.toString = function() {
  return _str;
 };
};

Well thats that, here's the HTML documentation. Question? Ideas? Comment!

System.Text.StringBuilder

Implements a StringBuilder.
Differs from C#! Capacity and Length properties have been removed.

Constructors

new StringBuilder();

new Stringbuilder(string);

.append(string)

Appends a string to the stringbuilders internal string.
var str = 'abcdef';

var str2 = 'ghijklmnop';

var str3 = 'qrstuvwxyz';



var sb = new StringBuilder();

sb.append(str);

sb.append(str2);

sb.append(str3);



sb.toString();

.appendFormat(string)

Appends a formatted string to the stringbuilders internal string.
var str = 'hello';

var str2 = 'world';



var sb = new StringBuilder();

sb.appendFormat('Oh, {0} there {1}!', [ str, str2 ]);

sb.toString();

.insert(string, position)

Inserts a string at a specified position inside a stringbuilders internal string.
var str = 'abcdef';

var str2 = 'ghijklmnop';

var str3 = 'qrstuvwxyz';



var sb = new StringBuilder();

sb.append(str);

sb.append(str3);

sb.insert(str2, 6);



sb.toString();

.remove(start, end)

Removes a substring of the stringbuilders internal string.
var sb = new StringBuilder('abcdefghijklmnopqrstuvwxyz');

sb.remove(6, 12);

sb.toString();

.replace(oldValue, newValue)

Replaces any substring inside the stringbuilders internal string.
var sb = new StringBuilder('abcdefghijklmnopqrstuvwxyz');

sb.replace('abcdef', '123456');

sb.toString();

.replace(oldValue)

Replaces any substring inside the stringbuilders internal string with ''.
var sb = new StringBuilder('abcdefghijklmnopqrstuvwxyzabcdef');

sb.replace('abcdef');

sb.toString();

.toString()

Returns the strinbuilders internal string.
var sb = new StringBuilder('abcdefghijklmnopqrstuvwxyzabcdef');

sb.toString();

MicroFilter - Filter by elements

I have moved! You'll find MicroFilter on my new Blog: http://salatsosse.ch/jquery/

Filter for Telerik Mvc Grid Version 0.3

Hey, I just did a small update on my gridfilter for the Telerik MVC Grid.

There's just one change: You're now able to put different values into a textbox, just put a ";" between them. So a textbox using the delimiters is handled the same as multiple textboxes with separate values. The column and operator settings will be applied to all elements.

Get the new version here.

Mittwoch, 9. Juni 2010

MicroView

WOOAA!


Microview has been published, read all about it here.

Here we go with my newest JQuery Plugin called MicroView. The main purpose of MicroView is to provide an easy stylable component / widget to display data recieved by JSON or XML. To achieve this, MicroView isn't table based but uses div-nested spans to display the data. This different approach enables you to present your data in many different ways, as the first picture shows. Switching between views is easy as well - and can be triggered client side. By switching a view you can also change the columns you wish to display (and f course their width). And oh yes, as you see in te picture, you can edit your data in every view, as long as your template allows it.

Montag, 31. Mai 2010

Using exfat formatted partitions / drives on ubuntu (linux)

Let's get started right away: Why would someone use exFat to format external drives (yeah never use it to format an internal HD, use NTFS or ext). So here's why (by wikipedia)
exFAT can be used where the NTFS file system is not a feasible solution, due to data structure overhead, or where the file size or directory restrictions of previous versions of the FAT file system are unacceptable.
Ok I want a fs that doesn't have the security features of NTFS and one which has overcome the 4 GB file size limitation of FAT32. Yeah there's a file size limitation in FAT32 - you won't be able to copy a file bigger than 4 GB to your FAT32 harddisk, in other words, you'd have to split HD movies / videos.

Ok enough rambling, here we go - how to use exfat READONLY (you won't find write support as of May 2010) on ubuntu:

  1. Download this gem, a deb made by bluehappybyte. It's source code can be found here on launchpad.
  2. Install the .deb file or compile the source.

Now you're ready to read from exfat, but remember, you won't be able to write to it. Also Ubuntu won't automount exfat partitions, you'll have to do it by yourself (either write a script or do it on the go), here's how to mount a exfat partition with the above driver installed (run the command in your terminal or from a script - whatever):

sudo mount -t exfat /dev/[device] /home/[user]/Desktop/Mountpoint

Mittwoch, 26. Mai 2010

Javascript sorting functions

I recently used some array sorting in javascript (array.sort([callback])). Here are some (hopefully) useful functions which can sort strings and numbers (including currency values) ascending and descending.

// sorting functions
// sort numbers asc
function sortNumberAsc(a, b) {
    var sortBy = $.fn.microView.sortedBy;
    aa = a[sortBy].replace(/[^0-9.,]/, '');
    bb = b[sortBy].replace(/[^0-9.,]/, '');
    return (aa - bb)
}; 
// sort numbers desc
function sortNumberDesc(a, b) {
    var sortBy = $.fn.microView.sortedBy;
    aa = a[sortBy].replace(/[^0-9.,]/, '');
    bb = b[sortBy].replace(/[^0-9.,]/, '');
    return (bb - aa)
}; 
// sort text asc
function sortTextAsc(a,b){
    var sortBy = $.fn.microView.sortedBy;
    if(a[sortBy] == b[sortBy]){
 if(a[sortBy] == b[sortBy]) return 0;
 return (a[sortBy] < b[sortBy]) ? -1 : 1;
    }
    return (a[sortBy] < b[sortBy]) ? -1 : 1;
}; 

// sort text desc
function sortTextDesc(a,b){
    var sortBy = $.fn.microView.sortedBy;
    if(a[sortBy] == b[sortBy]){
 if(a[sortBy] == b[sortBy]) return 0;
 return (a[sortBy] > b[sortBy]) ? -1 : 1;
    }
    return (a[sortBy] > b[sortBy]) ? -1 : 1;
};

Donnerstag, 20. Mai 2010

Elementary Tainted Update



Changes
- Bluish touch to the buttons (on hover)
- Nicer looking window buttons on the metacity theme
- For the best experience get droid sans and use it as an application font :-)

Download it here

MicroMenu

Ok... here' another small and easy to use JQuery plugin. It's a menu that looks like those nice big Web2.0 service website-menus.

Here we go with a short Demonstration, give it a try and Download the plugin if you like what you see.

There are a few options, they're pretty easy to use, so go ahead and play with them.

orientation: 'left',
        backgroundCssClass : 'micromenu-background',
        hoverCssClass : 'micromenu-hover',
        hasChildCssClass : 'micromenu-has-child',
        childCssClass : 'micromenu-child',
        childWidth : 400,
        childHeight : 200,
        showAnimation : function(obj) { obj.show() },
        hideAnimation : function(obj) { obj.hide() }

Mittwoch, 19. Mai 2010

Elementary Tainted


There we go, a new GTK Theme. No the name pretty much says it all... or not. Its a light gray theme with dark titles and bars and a darkish panel.

But wait! You need some stuff installed to make the theme work
- GTK Engine Equinox
- GTK Engine Murrine
- And if you don't want to use another one the elementary icon set


Montag, 17. Mai 2010

Editors for web design on Linux

In this post I'm going to compare a few text, html, css and js editors for linux. There won't be a Dreamweaver or Frontpage clone here, because frankly, I don't like those "web IDE's", I don't like them at all. They are bloated, generate code I don't like and are just kinda slow.  Of course for JAVA related programming, use netbeans or eclipse and for .NET projects Visual Studio.

My all time favourite text editor is notepad++, which is small, fast and plugin-enabled. Sadly, it's windows only. Following are e few alternatives to notepad++ on Linux. The editors I'll list all have syntax highlighting for multiple languages, are small and fast, tabs for multiple documents and some are even plugin-enabled.




Great syntax highlighting (tons of languages).

Has a side pane for documents.

A fullscreen setting - great for small screens.

Supports plugins.

Doesn't support projects.

No debugging. 








Comes with a nice set of tools (Make RPMs etc).

Supports JavaScript projects.

JavaScript debugger.

Supports Plugins.

Built-In CVS support.






Supports overview over functions in left pane.

Supports plugins.

Does not support projects.

The menus aren't easy to navigate.






This list will grow as I try more editors, so far my favorite is Anjunta IDE, because it's small, clean and supports everything I need - it's like Visual Studio meets Notepad.

Freitag, 14. Mai 2010

Beautiful icon sets for web and application development

Following a list of beautiful icon sets I like to use for web and application development.
Pinvoke Fugue Icons


2'800 Icons
16 x 16 px
PNG file format



FAMFAMFAM Silk icons

700+ Icons
16 x 16 px
PNG file format

Silk Companion
adds 460 + icons to silk



PixeloPhilia


66 Icons
32 x 32 px
PNG file format



Sweetie Base-Pack


160+ Icons
8 x 8 - 24 x 24 px
PNG file format (8 and 24 bit)
PSD file format
Download Here



Vaga

60+ Icons
16 x 16 px
PNG file format
Download Here



Circular Icons

100+ Icons
16 x 16 px
PNG file format
Download Here



BWPX Icons


250+ Icons
18 x 18 px
GIF file format
Download Here



Splashy Icons


483 Icons
16 x 16 px
PNG file format
Download Here



LED Icon Set


500 Icons
16 x 16 px
PNG file format
Download Here




MONO Icons
108 Icons
32 x 32 px
PNG file format
Download Here



Farm-Fresh Web Icons


1000 Icons
16 x 16 and 32 x 32 px
PNG file format
Download Here




WOO Functions


178 Icons
32 x 32 px
PNG file format
Download Here



Token


126 Icons
16 x 16 - 256 x 256 px
PNG file format
Download Here



Free Web Design Icon Set 


310 Iccos
16 x 16 px
PNG file format
Download Here



Flavour Extended


452 Icons
48 x 48 px
PNG, PSD file formats
Download Here


Boolean: The Pixel Icon City


100 Icons
16 x 16 px
PNG file format
Download Here

Socialize!