Posted on Leave a comment

My new ‘garden’ space

I’ve wanted to try growing vegetables for a while now but my garden is rather restrictive being only 15ft x 15ft and of that already being fully occupied by flowers, some outdoor storage space and a small table and chairs. I found an allotment conveniently near my house however after enquiring about it found that there is a 2-5 year waiting list 🙁

I searched online and found a guy nearby that was offering his un-used garden space behind his house as an allotment-style area for someone and since then have grabbed it up and started to work through it. It’s going to be a rather tough going job as the ground I’ll be working with hasn’t been tended to for quite some time, being laid with tarps in attempt to control the weeds and then gravel being placed over the tarps when they failed to suppress the weeds. The area is approximately 10m x 4m although I think I will just work on a small chunk at a time as I need more and more room for plants.

Here’s two views of the garden after I’d already been working on it for a bit, trying to first clear most of the gravel on the tarps so I could put them off the ground.

The beginnings of the garden
The beginnings of the garden

After a days work of weeding, pulling tarps off, finding more weeds under the tarps and then finally starting to upturn the soil, this is what the result so far looks like:
After some work on the garden

The plants shown in the newly dug garden area are from the neighbors that were thinning out their plants and offered some to me. I don’t know if I’ll keep them because I had intended to have a vegetable plot but I have at least stuck them in the ground temporarily so they don’t wilt.

In seed trays at home I have prepared pumpkins, spring onions, broccoli, and courgettes to germinate. I also have pea and carrot seeds which I will sow directly once the garden is properly prepared. Hopefully something grows!

Posted on Leave a comment

Sorting Gridview (Get it working quick!)

There are lots of references out there for getting a sortable gridview up, however I feel each of them are missing certain bits of information which make them incomplete. I ended up having to use three different references before I could get mine working!

Firstly, the stuff you are here for, the complete code to get a sortable gridview up and working! Below the code are the details you may/may not want to be bothered with.

.aspx.cs file

using System;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page
{
private string _connectionString;
private SqlConnection _conn;
private const string ASCENDING = " ASC";
private const string DESCENDING = " DESC";

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
gvSortable.DataSource = getData();
gvSortable.DataBind();
}
}

private DataSet getData()
{
_connectionString = ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString;
_conn = new SqlConnection(_connectionString);
SqlDataAdapter ad = new SqlDataAdapter("SELECT * FROM tbl_user", _conn);

DataSet ds = new DataSet();
ad.Fill(ds);
return ds;
}

public SortDirection GridViewSortDirection
{
get
{
if (ViewState["sortDirection"] == null)
ViewState["sortDirection"] = SortDirection.Ascending;

return (SortDirection)ViewState["sortDirection"];
}
set { ViewState["sortDirection"] = value; }
}

protected void sortGv(object sender, GridViewSortEventArgs e)
{
string sortExpression = e.SortExpression;

if (GridViewSortDirection == SortDirection.Ascending)
{
GridViewSortDirection = SortDirection.Descending;
SortGridView(sortExpression, DESCENDING);
}
else
{
GridViewSortDirection = SortDirection.Ascending;
SortGridView(sortExpression, ASCENDING);
}
}

private void SortGridView(string sortExpression, string direction)
{
DataTable dt = getData().Tables[0];
DataView dv = new DataView(dt);

dv.Sort = sortExpression + direction;
gvSortable.DataSource = dv;
gvSortable.DataBind();
}
}

.aspx file

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Sorting Gridview</title>
</head>
<body>
<form id="form1" runat="server">

<asp:GridView ID="gvSortable" runat="server" Width="100"
AutoGenerateColumns="false"
AllowSorting="true" OnSorting="sortGv">
<Columns>
<asp:boundfield DataField="user_id" HeaderText="Id" SortExpression="user_id" />
<asp:boundfield DataField="name" HeaderText="Name" SortExpression="name" />
<asp:boundfield DataField="age" HeaderText="Age" SortExpression="age" />
</Columns>

</asp:GridView>

</form>
</body>
</html>

Add into the webconfig

<connectionStrings>
<remove name="LocalSqlServer"/>
<add name="LocalSqlServer" connectionString="Data Source=YOUR_SERVER_URL_HERE;Initial Catalog=YOUR_DB_NAME;Persist Security Info=True;User ID=YOUR_USER_NAME;Password=YOUR_PASSWORD;" providerName="System.Data.SqlClient"/>
</connectionStrings>

If you stick all of this code into your project and have a table (tbl_user) with user_id (int), name (varchar) and age (int) then your gridview will be up and working already!

You can choose to divert from the above and go with different options, but for seeing it working the code above is all that you need.

I’m going to revisit this post later to add in some options and comments however for now I have to go finish the project that I needed this sortable gridview for in the first place!

Posted on 2 Comments

Change database owner in SQL server
(single and multiple items)

Changing a single table owner:

Exec sp_changeobjectowner ‘dbo12323.my_table’,’dbo’

dbo12323 = make this whatever the table currently has as the db owner
dbo = the new db owner

Changing multiple items owners:

SELECT * from sysobjects where uid = user_id(‘UseNAme’)
declare @Return int
exec @Return = sp_configure ‘allow updates’, ‘1’
SELECT @Return as ‘Returned Code’
GO
reconfigure WITH OVERRIDE
GO
DECLARE @Rows int, @Error int
BEGIN TRANSACTION
update sysobjects set uid = user_id(‘dbo’) where uid = user_id(‘UseNAme’)
SELECT @Error = @@Error, @Rows = @@RowCount
SELECT @Rows as ‘#Rows’
IF @Rows > 0
BEGIN
SELECT @Rows AS ‘#Rows’
COMMIT TRANSACTION
END
else
BEGIN
SELECT @Error AS ‘Error #’
ROLLBACK TRANSACTION
END

exec sp_configure ‘allow updates’, ‘0’
reconfigure WITH OVERRIDE
go

Posted on 1 Comment

Babbel – Learn Italian easily in this flex based environment

I’ve ‘started’ to learn several different languages, all ending up in the same place that I didn’t want to spend the time or money taking classes at a school or a lot of money on a set of training-up cd’s. Recently I’ve taken to learning Italian and started by purchasing a rather in-expensive cd from Earworms (warning, the site is not high on the ‘pretty’ scale) whose method actually works really well. It combines the learning experience with a base of music, the same concept as putting the alphabet to a tune to help it stick in your mind.


As of yesterday however, I discovered Babbel.com, a flex based (+1 point) online language learning tool (+1 point) that is free!(+10 points!!) I registered and had a play through two of ‘packages’ and found the user-experience and ability to learn from it to be excellent. They start off by teaching you single words, which are each associated to an image, they then eventually go on to teach you to memorise them and learn to understand them when spoken within phrases. By the end I was very pleasantly surprised at how much I got through and how much was easily retained into memory. They also marked one of my finished exercise packages as needing a refresher in 4 days time, which I think is great to keep you interested and remembering previous lessons. So there’s my bit raving about how great it is for learning a new language, which isn’t just available for Italian either, but so far it also has German, French and Spanish.

I’m quite pleased to see it’s been created with Flex. It’s allowed them to create a fluid learning step-through environment, making it easy to learn the language. It’s also good to see that they’ve made it really simple for the community to contribute to it. On the home page, for example, there is an area of phrases that require images, and you as a user can click one of these phrases and choose to upload an image that you believe describes this phrase best. You can also mark images that others have uploaded as good/bad as you go through the exercises, although what effect that ultimately has on the image you’ve marked I’m not quite sure yet. All in all I still have to have a thorough play in it, but it is by far the best tool I have ever used for learning a language and I highly recommend you give it a try as well.

Ciao!

Posted on Leave a comment

I’m a mac girl

Mac girlOh yes, I’ve got a MacBook Pro and am immensely proud of it as well. As a new mac user I was (and still am) noticing constant ‘attention to detail’ bits that make using a computer ‘fun’ again. Ok, so that sounds really cheese but it’s true! Little things like when it’s too dark the keyboard lights up (ok, I might have got a wee bit over excitable at that one than I should have) or how nice most installations are comparatively to Windows. The initial drawback is having to experience the humbling effect it has when you can’t figure out what should be the simplest tasks, the ones that you laugh at your mom for when she gets completely lost, I am now my mom (to mom: sorry for the reference).

So after the first 2 hours playing with Photo Booth I finally was ready to put the intriguing effects away and get some programs on so I could actually use it for development. I had / decided to go in search of a few different programs than normal to suit the mac environment.

Adium - An excellent IM client for MacFirstly, of course, was an instant messaging system. I ended up installing Adium and seems to be working out just fine so far. It has most of the features you’d expect in a typical IM client and it also allows for multiple email addresses to be bundled and controlled at once.

I also really needed a remote desktop client to access our Windows servers at work and found and would highly recommend one named CoRD. So far I’ve found this program to be excellent, allows for connections to be saved and easily connected to, multiple connections at once and generally well provide a well organised system for managing remote access to our Windows servers.

I do quite a bit of .net development so it led to a bit of a problem in that you can’t get a version of visual studio for Mac (yet). A solution I’ve found and I’m sure many of you are familiar with already is Parallels - An excellent VM allowing you to use Windows programs on your MacParallels. A virtual machine that allows me to set up Windows and run the programs which I otherwise couldn’t have running off the Mac. I’ve read though a lot of the documentation and can’t seem to find if you are supposed to download all of the windows updates and install anti-virus as if it was a completely separate machine so if someone has some advice on this it would be much appreciated. At any rate I have decided to take the safest route for now and get all the updates and install Clamwin on the VM, a free anti-virus for Windows.

I still have to sort a few other programs that I’m going to need but I’m rolling along nicely now
Does anyone know of a good Mac program that works well with Exchange? Mail just isn’t cutting it and prefers to spaz out then keep a constant and accurate connection with my new emails…I blame exchange (I love my Mac, it can do no wrong)