기본적으로는 트위터는 http://www.twitter.com/에 방문하셔서 이메일 주소를 이용하여 가입을 하시면 됩니다. 가입이 완료된 후에 로그인을 하시면 아마도 썰렁할 겁니다.(아니면 정체모를 누군가의 트윗이 보일겁니다). 그다음 뭘 해야하지?
첫번째 할일은 누군가를 팔로우(follow)하는 겁니다. 팔로우는 쉽게 말해 친구를 맺는걸로 보시면 됩니다. 상대방은 나를 팔로우하지 않을 수도 있습니다. 기분 나빠하지 않아도 됩니다.(기분 나빠해서는 안 됩니다.)
누구를 팔로우할지 모른다? 몇명 유명인을 팔로우해 보는 것도 도움이 될 듯합니다. 예 : 이외수(oisoo), 박중훈(movijhp), 박용만(Solarplant), 타이거JK(DrunkenTigerJK) 등
위 사람들은 트윗을 많이 하는 사람들에 속합니다. 이외에도 많은 유명인들이 쓰고 있습니다. 세계 재벌 2위로 물러난 빌게이츠도 하더군요..검색을 통해 사람을 찾거나 관심사가 있다면 키워드로 트윗을 찾아본 후 팔로우를 해도 됩니다.
그리고 트윗을 날려보세요. 다시 말해 글을 쓰는 겁니다. 보는 사람이 없어도 됩니다. 일상의 소소한 일들부터 적어보세요. 사진도 올려보고, 푸념도 해 보고... 누가 좋은 글을 쓴게 있으면 리트윗 하세요. 다시 말해 글 퍼가기 정도? 더 많은 사람이 볼 수 있도록.
아시겠지만 트위터는 140자 제한이 있습니다. 긴글을 쓸 수 있도록 해 주는 기능울 제공하는 곳도 있지만 기본은 140자입니다. 제한된 범위 내에서 글을 써 보세요.
그리고 아는 사람들에게 트위터를 써보도록 하고 서로 팔로우하도록 해 보세요. 이름이나 아이디로 검색해서 팔로우 할 수 있습니다.
다른 사람들의 이야기도 보고, 하고 싶은 이야기도 적다 보면 누군가 나를 팔로윙(Following)하고 있을 수도 있습니다.(아닐 수도 있습니다.) 누가 나를 팔로윙 한다고 꼭 팔로우 해 주지는 않아도 됩니다만 해주면 좋아는 할 겁니다.
누군가 나를 귀챦게 하거나 시끄럽게 하면 조용히 언팔로우(Unfollow)해 주세요. 절대로 실례가 되는게 아닙니다. 나중에 다시 팔로우하면 되니까요..
대충 위와 같은 식으로 조금씩 접근해 가시면 될 거 같아요. 많은 글을 써야만 되는게 아닙니다. 많은 사람들의 이야기에 귀 기울여 주는 것도 좋습니다.
영어 사용에 어려움을 겪는 분들은 http://twtkr.com/ 을 이용하셔도 괜챦습니다. 계정 연동이 되니 별도 가입없이 사용할 수 있습니다.
현재 대부분 스마트 폰을 가지고 계실텐데 트위터에는 수백가지 이상의 트위터 클라이언트 프로그램이 있습니다. 각 스마트 폰 별로 어플리케이션이 있을테니 스마트 폰에서는 웹사이트보다는 어플을사용하시는 게 편리할 겁니다. 상용 어플이 편리한 기능을 많이 제공하겠지만 무료 어플도 많으니 찾아보시면 될 것 같네요.
시작해 보세요...
2010년 3월 11일 목요일
2008년 10월 29일 수요일
Javascript event function
팝업창의 F11 기능 막기
document.onkeydown = function() {
event.keyCode = 0; // 핵심!
return false;
}
HTML Parsing in .Net
Html Agility Pack
HtmlDocument doc = new HtmlDocument();
HtmlAttribute attr = null;
String uri = "";
doc.Load(file, Encoding.UTF8);
if (doc.DocumentNode.SelectNodes("//img[@src]") != null)
{
foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//img[@src]"))
{
uri = node.GetAttributeValue("src", "");
attr = node.SetAttributeValue("src", String.Format("{0}{1}", virtualPath, uri));
}
}
if (doc.DocumentNode.SelectNodes("//td[@background]") != null)
{
foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//td[@background]"))
{
uri = node.GetAttributeValue("background", "");
attr = node.SetAttributeValue("background", String.Format("{0}{1}", virtualPath, uri));
}
}
doc.Save(file + ".htm", Encoding.UTF8);
2008년 10월 22일 수요일
[C#] SharpZipLib을 사용한 복수 개의 파일 압축 및 해제
// 압축
void Compression()
{
try
{
string zipPath = "test.zip";
System.IO.FileStream writer = new System.IO.FileStream( zipPath,
System.IO.FileMode.Create,
System.IO.FileAccess.Write, System.IO.FileShare.Write);
ICSharpCode.SharpZipLib.Zip.ZipOutputStream zos =
new ICSharpCode.SharpZipLib.Zip.ZipOutputStream(writer);
foreach (string file in DiffFiles)
{
int Substringindex = textBox2.Text.Length;
string f = file.Substring(Substringindex + 1);
ICSharpCode.SharpZipLib.Zip.ZipEntry ze =
new ICSharpCode.SharpZipLib.Zip.ZipEntry(f);
System.IO.FileStream fs = new System.IO.FileStream( file,
System.IO.FileMode.Open, System.IO.FileAccess.Read,
System.IO.FileShare.Read);
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
fs.Close();
ze.Size = buffer.Length;
ze.DateTime = DateTime.Now;
// 새로운 엔트리(파일)을 넣는다.
zos.PutNextEntry(ze);
// 쓰기
zos.Write(buffer, 0, buffer.Length);
}
zos.Close();
writer.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
// 해제
void DeCompression(string filename)
{
string zipPath = filename;
string extractDir = Environment.CurrentDirectory;
System.IO.FileStream fs = new System.IO.FileStream( zipPath,
System.IO.FileMode.Open,
System.IO.FileAccess.Read, System.IO.FileShare.Read);
ICSharpCode.SharpZipLib.Zip.ZipInputStream zis =
new ICSharpCode.SharpZipLib.Zip.ZipInputStream(fs);
ICSharpCode.SharpZipLib.Zip.ZipEntry ze;
while ((ze = zis.GetNextEntry()) != null)
{
if (!ze.IsDirectory)
{
string fileName = System.IO.Path.GetFileName(ze.Name);
string destDir = System.IO.Path.Combine(extractDir,
System.IO.Path.GetDirectoryName(ze.Name));
if (false == Directory.Exists(destDir))
{
System.IO.Directory.CreateDirectory(destDir);
}
string destPath = System.IO.Path.Combine(destDir, fileName);
System.IO.FileStream writer = new System.IO.FileStream(
destPath, System.IO.FileMode.Create,
System.IO.FileAccess.Write,
System.IO.FileShare.Write);
byte[] buffer = new byte[2048];
int len;
while ((len = zis.Read(buffer, 0, buffer.Length)) > 0)
{
writer.Write(buffer, 0, len);
}
writer.Close();
}
}
zis.Close();
fs.Close();
}
void Compression()
{
try
{
string zipPath = "test.zip";
System.IO.FileStream writer = new System.IO.FileStream( zipPath,
System.IO.FileMode.Create,
System.IO.FileAccess.Write, System.IO.FileShare.Write);
ICSharpCode.SharpZipLib.Zip.ZipOutputStream zos =
new ICSharpCode.SharpZipLib.Zip.ZipOutputStream(writer);
foreach (string file in DiffFiles)
{
int Substringindex = textBox2.Text.Length;
string f = file.Substring(Substringindex + 1);
ICSharpCode.SharpZipLib.Zip.ZipEntry ze =
new ICSharpCode.SharpZipLib.Zip.ZipEntry(f);
System.IO.FileStream fs = new System.IO.FileStream( file,
System.IO.FileMode.Open, System.IO.FileAccess.Read,
System.IO.FileShare.Read);
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
fs.Close();
ze.Size = buffer.Length;
ze.DateTime = DateTime.Now;
// 새로운 엔트리(파일)을 넣는다.
zos.PutNextEntry(ze);
// 쓰기
zos.Write(buffer, 0, buffer.Length);
}
zos.Close();
writer.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
// 해제
void DeCompression(string filename)
{
string zipPath = filename;
string extractDir = Environment.CurrentDirectory;
System.IO.FileStream fs = new System.IO.FileStream( zipPath,
System.IO.FileMode.Open,
System.IO.FileAccess.Read, System.IO.FileShare.Read);
ICSharpCode.SharpZipLib.Zip.ZipInputStream zis =
new ICSharpCode.SharpZipLib.Zip.ZipInputStream(fs);
ICSharpCode.SharpZipLib.Zip.ZipEntry ze;
while ((ze = zis.GetNextEntry()) != null)
{
if (!ze.IsDirectory)
{
string fileName = System.IO.Path.GetFileName(ze.Name);
string destDir = System.IO.Path.Combine(extractDir,
System.IO.Path.GetDirectoryName(ze.Name));
if (false == Directory.Exists(destDir))
{
System.IO.Directory.CreateDirectory(destDir);
}
string destPath = System.IO.Path.Combine(destDir, fileName);
System.IO.FileStream writer = new System.IO.FileStream(
destPath, System.IO.FileMode.Create,
System.IO.FileAccess.Write,
System.IO.FileShare.Write);
byte[] buffer = new byte[2048];
int len;
while ((len = zis.Read(buffer, 0, buffer.Length)) > 0)
{
writer.Write(buffer, 0, len);
}
writer.Close();
}
}
zis.Close();
fs.Close();
}
포스트 백 후에도 같은 스크롤위치 고정시키기
지랄스럽게도 포스트백이 되버리면 페이지가 리로드 되는 것처럼 스크롤 포지션을 잃어버린다.asp.net2.0 에서는 무지하게 쉽게 스크롤 위치를 유지해준다.
MaintainScrollPositionOnPostback="true"
MaintainScrollPositionOnPostback="true"
2008년 10월 21일 화요일
C#.Net 폴더 삭제
private void DeleteFolder(string dirPath, bool bRecursive)
{
DirectoryInfo dir = new DirectoryInfo(dirPath);
if (bRecursive)
{
DirectoryInfo[] directories = dir.GetDirectories();
foreach (DirectoryInfo di in directories)
{
DeleteFolder(di.FullName, bRecursive);
}
}
FileInfo[] files = dir.GetFiles();
foreach (FileInfo fi in files)
{
fi.Delete();
}
}
피드 구독하기:
글 (Atom)