<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-7752604992674614388</atom:id><lastBuildDate>Mon, 20 May 2013 09:07:49 +0000</lastBuildDate><category>flash</category><category>Visual Studio</category><category>باگ‌زیلا</category><category>کدباز</category><category>GD Library</category><category>Get</category><category>کد پلکس</category><category>news</category><category>Zen</category><category>Team Foundation Build</category><category>Session Management</category><category>Bug</category><category>Civil</category><category>String</category><category>UI</category><category>Java ME</category><category>RentACoder</category><category>Rhino Mocks</category><category>Exprience</category><category>Trouble Ticket Express</category><category>barnamenevis</category><category>Partial Class</category><category>Trace</category><category>Random Date</category><category>Error Handling</category><category>Test</category><category>query</category><category>cs</category><category>Job</category><category>Code</category><category>idealism</category><category>5S</category><category>uNHaddins</category><category>AI</category><category>ToString</category><category>IWAM_computer</category><category>ORM</category><category>Debugging</category><category>email</category><category>Disaster</category><category>SysCache</category><category>Named SQL Query</category><category>Solution</category><category>XML Schema</category><category>FNH</category><category>WinForms</category><category>ECE Protocol</category><category>IPv6</category><category>SCM</category><category>i18n</category><category>CDO</category><category>Subversion</category><category>IoC</category><category>Unit Test</category><category>GridView</category><category>ماتصا ۹۱۴۷</category><category>Event Listener</category><category>Decoupling</category><category>FOSS</category><category>Software Enginerring</category><category>MSBuild</category><category>IIS</category><category>Extreme Programming</category><category>founation</category><category>Namespace</category><category>ITIL</category><category>ويروس</category><category>interview</category><category>Unicode</category><category>Microsoft Ajax Library</category><category>DateTime</category><category>Projection</category><category>NuGet</category><category>بنیاد کدپلکس</category><category>Castle Windsor</category><category>clean code</category><category>prioritize</category><category>GFDL</category><category>NHibernate</category><category>Babouneh</category><category>MIDlet</category><category>proxy pattern</category><category>Damn</category><category>git-dot-aspx</category><category>Methodology</category><category>Load</category><category>SOPA</category><category>Blog</category><category>Sorting</category><category>Vista</category><category>LibreOffice</category><category>Mocking</category><category>introduction</category><category>Escrow</category><category>net</category><category>Cache</category><category>کپی‌لفت</category><category>Source Control</category><category>DDT</category><category>Review</category><category>.Net</category><category>DRY</category><category>Generator</category><category>Moq</category><category>Copyleft</category><category>Build</category><category>CTP</category><category>Idea</category><category>حسابداری</category><category>logo</category><category>حق مولف</category><category>Dirty</category><category>Opinion</category><category>scraping</category><category>Profiler</category><category>Leadership</category><category>Exception</category><category>NHibernate 3</category><category>ios</category><category>Industry</category><category>Parameter</category><category>FxCop</category><category>CGI</category><category>Shared Hosting</category><category>business code</category><category>dynamic stat</category><category>فونت</category><category>FeedBurner</category><category>iDevCenter</category><category>SFD</category><category>Continuous Integration</category><category>Freelance</category><category>positiveness</category><category>Declarative Programming</category><category>Software Development</category><category>RC</category><category>ALT.NET</category><category>مایکروسافت</category><category>CSV</category><category>gpedit.msc</category><category>MS SQL</category><category>Fun</category><category>Human</category><category>CpBT</category><category>Web Scraping</category><category>Open Source</category><category>Advice</category><category>Profession</category><category>Castle ActiveRecord</category><category>Git-Web-Access</category><category>PHP</category><category>Company</category><category>IssueTracker.NET</category><category>Ruby</category><category>TeamCity</category><category>twitter</category><category>log</category><category>afsharm</category><category>Autofac</category><category>Tools</category><category>EF</category><category>NMTN</category><category>وقف</category><category>Hard</category><category>WPF</category><category>TortoiseGit</category><category>Pascal</category><category>Tips and Tricks</category><category>Login</category><category>TF Build</category><category>Complain</category><category>Windows 2003</category><category>Sharp Arch</category><category>Mapping</category><category>weblog</category><category>Join</category><category>magazine</category><category>Software Engineering</category><category>Final</category><category>web application project</category><category>DatePicker</category><category>web</category><category>Game</category><category>kbdfa.dll</category><category>ITSM</category><category>programmers.stackexchange.com</category><category>Html Agility Pack</category><category>Persian</category><category>framework 3.5</category><category>حساب مرکز هزینه</category><category>حساب تفصیلی</category><category>Computer</category><category>كوئري</category><category>WF</category><category>stash</category><category>Community</category><category>standard</category><category>PerSession</category><category>Rhino</category><category>HBM</category><category>IIS 6.0</category><category>Extension Methods</category><category>Career</category><category>Social Network</category><category>AAA</category><category>repair</category><category>Work</category><category>HR</category><category>Mono</category><category>SourceForge</category><category>Error</category><category>Unknowing</category><category>ezine</category><category>Operation</category><category>AAFS</category><category>ActivePerl</category><category>نمایشگاه</category><category>ELMAH</category><category>jQuery</category><category>QueryOver</category><category>odesk</category><category>TFS Build 2010</category><category>IEnumerable</category><category>Declarative</category><category>TFS2010</category><category>UML</category><category>XML</category><category>language</category><category>Developer</category><category>ICriteria</category><category>Experience</category><category>sample</category><category>Best Practices</category><category>Domain Drive Design</category><category>Pattern</category><category>poka yoke</category><category>ماتصا ۶۲۱۹</category><category>حساب معین</category><category>Developers</category><category>android</category><category>SourceSafe</category><category>market</category><category>Dynamic</category><category>Collaboration</category><category>Free</category><category>CodeActivity</category><category>Education</category><category>Serialization</category><category>Usability</category><category>Named SQL</category><category>MVC</category><category>Architecture</category><category>public</category><category>javascript</category><category>Technology</category><category>Award</category><category>Trigger</category><category>Dependency Injection</category><category>UTC</category><category>Date</category><category>IT</category><category>user agent string</category><category>AJAX</category><category>Paging</category><category>Free Software</category><category>change</category><category>E-Government</category><category>DataBinding</category><category>ansi</category><category>http</category><category>forum</category><category>America</category><category>ISession</category><category>اتوران</category><category>Server Application Error</category><category>Burndown Chart</category><category>Virus</category><category>Non-Clustered</category><category>ایده</category><category>Book</category><category>entlib</category><category>Error logging</category><category>hero</category><category>back asp browser</category><category>Outsourcing</category><category>Design Patterns</category><category>Build Conference</category><category>deploy</category><category>Foundation of Programming</category><category>lazy loading</category><category>debug</category><category>recommendation</category><category>me</category><category>Internet</category><category>CodePlexFoundation</category><category>dynamic language</category><category>Reservation</category><category>stream</category><category>git server</category><category>Autofac WCF</category><category>باگ زیلا</category><category>useragentstring.com</category><category>WP7</category><category>Workflow</category><category>employee</category><category>careers</category><category>website</category><category>Java</category><category>سهو تالیف</category><category>student</category><category>ELECOMP</category><category>C#</category><category>Xml Namespace</category><category>Remoting</category><category>blogger</category><category>SysConfig</category><category>WCF</category><category>rsclientprint.dll</category><category>Singleton</category><category>RadGrid</category><category>PerCall</category><category>فاینال</category><category>ODBC</category><category>Time</category><category>Template Process</category><category>دبیرخانه</category><category>Customize</category><category>fiddler</category><category>karvis</category><category>Object Oriented</category><category>Versioing</category><category>Host</category><category>J2ME</category><category>addiction</category><category>Off Topic</category><category>Performance</category><category>xmlns</category><category>ISIRI</category><category>UTF</category><category>localization</category><category>Membership</category><category>C# 2008</category><category>Castle</category><category>Film</category><category>bonobo</category><category>Windows</category><category>Translation</category><category>LINQ-to-Objects</category><category>Nostalgia</category><category>UI Mocking</category><category>Team Work</category><category>Team Build 2010</category><category>Feed</category><category>TDD</category><category>RUP</category><category>Cuyahoga</category><category>Backup</category><category>git</category><category>IQueryable</category><category>University</category><category>FTP</category><category>Delphi</category><category>fresh</category><category>UpdatePanel</category><category>SmtpClient</category><category>assholism</category><category>FireFox</category><category>NUnit</category><category>micro blogging</category><category>StackOverflow</category><category>reading</category><category>Service</category><category>System</category><category>Feature Builder</category><category>Team Build</category><category>SQL Server 2005</category><category>Source Safe</category><category>تکنولوژی</category><category>OpenOffice</category><category>Design</category><category>Perl</category><category>Session</category><category>Professional</category><category>USB</category><category>Chinese Room</category><category>GPL</category><category>Cascade</category><category>Consultant</category><category>Assembly</category><category>report</category><category>VMware</category><category>Agile</category><category>TFS 2010</category><category>HttpContext</category><category>asp word</category><category>Scrum</category><category>CMS</category><category>جیرا</category><category>OOP</category><category>asp.net</category><category>ريكرسيو</category><category>کپی‌رایت</category><category>project</category><category>LINQ-to-NHibernate</category><category>app.config</category><category>Rubber Duck Debugging</category><category>Event</category><category>shci</category><category>Excel</category><category>Extension Method</category><category>Random</category><category>Architect</category><category>Innovation</category><category>PersiaBME</category><category>کدپلکس</category><category>software company</category><category>WPF DataBinding</category><category>Duplex</category><category>Fardis</category><category>SilverLight</category><category>Remote</category><category>Podcast</category><category>ISO</category><category>Simple</category><category>recursive</category><category>Consulting</category><category>Durable Services</category><category>DataGrid</category><category>github</category><category>Restart</category><category>Mock</category><category>Non-Clustered Index</category><category>اطلاعات</category><category>Low Level</category><category>GNU</category><category>BizSpark</category><category>بتا</category><category>Data Type</category><category>Shiraz</category><category>mvp</category><category>برنامه نویس</category><category>Git Extensions</category><category>Hosting</category><category>JIT</category><category>steve jobs</category><category>Index</category><category>R and D</category><category>Joel Spolsky</category><category>gist</category><category>MCPD</category><category>Money</category><category>Method Stub</category><category>DDD</category><category>JSON</category><category>learning</category><category>markup</category><category>Facebook</category><category>Anonymous Methods</category><category>MIDP</category><category>share</category><category>Use Case</category><category>Manager</category><category>Reports</category><category>CopSSH. PuTTY</category><category>Copyright</category><category>استالمن</category><category>Cooking</category><category>Windsor</category><category>Lock</category><category>OTRS</category><category>header</category><category>writer</category><category>Restore</category><category>Server</category><category>migration</category><category>Mobile Programming</category><category>Per Session</category><category>Reporting Services</category><category>Linq-to-Sql</category><category>Instance Management</category><category>ISIR 6219</category><category>Reflection</category><category>Loud Thinking</category><category>Outsource</category><category>Active Record Pattern</category><category>حساب پروژه</category><category>Database</category><category>Linux</category><category>nhforge.org</category><category>Design Pattern</category><category>FardaPardaz</category><category>Data Binding</category><category>log4net</category><category>Authentication</category><category>Autoplay</category><category>If</category><category>TF Version Control</category><category>CDC</category><category>SchemaUpdate</category><category>Yalda</category><category>CMMI</category><category>CodePlex</category><category>Stub</category><category>Jira</category><category>install</category><category>TfsSdk</category><category>Team</category><category>WCF Facility</category><category>Server Error</category><category>Attachmate</category><category>Novell</category><category>elance</category><category>SQL</category><category>Motivation</category><category>Exam 70-536</category><category>Code Analysis</category><category>Windows Workflow Foundation</category><category>Hibernate</category><category>CodeProject</category><category>yagni</category><category>Schema</category><category>Fear</category><category>Mark Zuckerberg</category><category>Faraconesh</category><category>product</category><category>XAML</category><category>Productivity</category><category>MSDN</category><category>KISS</category><category>RSS</category><category>grep</category><category>Beta</category><category>CRC</category><category>Social benefit</category><category>Native SQL</category><category>History</category><category>Windows Service</category><category>OperationContext</category><category>static stat</category><category>MS Office</category><category>windows phone</category><category>Green Hopper</category><category>web.config</category><category>humor</category><category>Off-Topic</category><category>LINQ</category><category>business</category><category>Project Management</category><category>MySQL</category><category>One-to-One</category><category>Store Procedure</category><category>Charting</category><category>BugNET</category><category>Gmail</category><category>utf-8</category><category>bada</category><category>Xml Serialization</category><category>TFS Power Tools</category><category>joel test</category><category>HQL</category><category>Virtual Server</category><category>DI</category><category>Up-to-date</category><category>Development</category><category>ASP.NET AJAX</category><category>View</category><category>Upgrading</category><category>NHDay</category><category>Upgrade</category><category>Telerik</category><category>Association</category><category>MSDN Way</category><category>stats</category><category>quality</category><category>Restrictions</category><category>Fluent NHibernate</category><category>CLDC</category><category>TortoiseSVN</category><category>Software Architect</category><category>Activity</category><category>Trick</category><category>dll</category><category>Windows 8</category><category>LGPL</category><category>revision control</category><category>Per Call</category><category>Developing</category><category>stat</category><category>XP</category><category>Farids</category><category>Academic</category><category>BugZilla</category><category>SQL Server</category><category>Friends</category><category>ISIRI 6219</category><category>CI</category><category>EnableSEOPaging</category><category>Clustered Index</category><category>Fetch</category><category>Authorization</category><category>Management</category><category>TFS Build</category><category>conference</category><category>Process Template</category><category>Security</category><category>remote connections</category><category>Visual Studio 2010</category><category>Font</category><category>Programming</category><category>ASP.NET MVC</category><category>winform</category><category>afsharm.com</category><category>Throttling</category><category>SMTP</category><category>ALM</category><category>Programmer</category><category>bare</category><category>FDL</category><category>IPv4</category><category>Assembla</category><category>Software</category><category>ISIRI 9147</category><category>Clustered</category><category>VM Ware</category><category>Report Viewer</category><category>Mobile</category><category>Social</category><category>SSADM</category><category>convert</category><category>TFS</category><category>static</category><category>Scott Hanselman</category><category>FSF</category><category>SessionScope</category><category>ActivityPack</category><category>TTX</category><category>Caching</category><category>VWorker</category><category>کد باز</category><category>ascii</category><category>Source Code</category><category>AjaxControlToolkit</category><category>Web Service</category><category>Sequence Diagram</category><category>ADO.NET</category><category>ASP.NET Health Monitoring</category><category>criticism</category><category>Iran</category><category>Stack Overflow</category><category>Concept</category><category>Issue Tracking</category><category>Confusion</category><category>Exhibition</category><category>MCTS</category><category>microsoft</category><category>SQL Express</category><category>Disaster Recovery</category><category>SVN</category><category>Training</category><category>zip</category><category>AnkhSVN</category><title>AfsharM</title><description>My experiences in software development</description><link>http://blog.afsharm.com/</link><managingEditor>noreply@blogger.com (Afshar Mohebbi)</managingEditor><generator>Blogger</generator><openSearch:totalResults>429</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Afsharm" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="afsharm" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7752604992674614388.post-5996132779511514736</guid><pubDate>Tue, 14 May 2013 04:49:00 +0000</pubDate><atom:updated>2013-05-14T09:19:12.256+04:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">software company</category><category domain="http://www.blogger.com/atom/ns#">Iran</category><category domain="http://www.blogger.com/atom/ns#">logo</category><title>لوگوی تعدادی از شرکت‌های نرم‌افزاری ایرانی</title><description>&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://afsharm.com/images/blog/logo/01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://afsharm.com/images/blog/logo/01.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://afsharm.com/images/blog/logo/02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://afsharm.com/images/blog/logo/02.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://afsharm.com/images/blog/logo/03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://afsharm.com/images/blog/logo/03.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://afsharm.com/images/blog/logo/04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://afsharm.com/images/blog/logo/04.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://afsharm.com/images/blog/logo/05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://afsharm.com/images/blog/logo/05.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://afsharm.com/images/blog/logo/06.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://afsharm.com/images/blog/logo/06.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://afsharm.com/images/blog/logo/07.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://afsharm.com/images/blog/logo/07.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://afsharm.com/images/blog/logo/08.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://afsharm.com/images/blog/logo/08.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://afsharm.com/images/blog/logo/09.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://afsharm.com/images/blog/logo/09.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://afsharm.com/images/blog/logo/10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://afsharm.com/images/blog/logo/10.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://afsharm.com/images/blog/logo/11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://afsharm.com/images/blog/logo/11.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://afsharm.com/images/blog/logo/12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://afsharm.com/images/blog/logo/12.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://afsharm.com/images/blog/logo/13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://afsharm.com/images/blog/logo/13.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://afsharm.com/images/blog/logo/14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://afsharm.com/images/blog/logo/14.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://afsharm.com/images/blog/logo/16.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://afsharm.com/images/blog/logo/16.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://afsharm.com/images/blog/logo/17.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://afsharm.com/images/blog/logo/17.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://afsharm.com/images/blog/logo/18.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://afsharm.com/images/blog/logo/18.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://afsharm.com/images/blog/logo/19.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://afsharm.com/images/blog/logo/19.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;hr /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=XMyNv6Tw_IU:NzT0N97rPlk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=XMyNv6Tw_IU:NzT0N97rPlk:-LR1_4ybTb4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?i=XMyNv6Tw_IU:NzT0N97rPlk:-LR1_4ybTb4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.afsharm.com/2013/05/blog-post.html</link><author>noreply@blogger.com (Afshar Mohebbi)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7752604992674614388.post-2760693390821053618</guid><pubDate>Sun, 21 Apr 2013 04:14:00 +0000</pubDate><atom:updated>2013-04-21T08:44:01.361+04:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">Software Development</category><category domain="http://www.blogger.com/atom/ns#">yagni</category><category domain="http://www.blogger.com/atom/ns#">.Net</category><category domain="http://www.blogger.com/atom/ns#">idealism</category><title>پرهیز از کمال‌گرایی غیر ضروری در توسعه نرم‌افزار</title><description>&lt;div style="direction: rtl; text-align: right;"&gt;
آیا در توسعه نرم‌افزار واقعاً لازم است که همیشه از راه حل‌های عالی و زیبا استفاده شود؟ نمی‌شود بعضی وقت‌ها از راه‌حل‌های نیمه سالم ولی ساده و سریع استفاده کرد؟ خیلی وقت‌ها انجام یک کار به صورت نیمه دقیق فقط چند دقیقه وقت می‌گیرد ولی انجام دقیق و درست آن یک روز کامل. البته نه این که پیاده‌سازی نیمه دقیق آن اصلاً هم به درد نخورد. بلکه نیاز کاربری را به طور هفتاد هشتاد درصدی برآورده می‌کند و فقط استفاده از آن ممکن است کمی غیر عادی باشد.&lt;br /&gt;
&lt;br /&gt;
شاید برای شما هم خیلی زیاد پیش آمده باشد که روی بخشی از سیستم وقت و انرژی خیلی زیادی گذاشته‌اید ولی وقتی که به مشتری نشان داده‌اید او به سادگی گفته این بخش را نیاز نداریم و باید طور دیگری پیاده‌سازی شود! مثال دیگر وقتی است که روی یک صفحه یا بخشی از سیستم دقت خیلی زیادی به خرج داده‌اید تا به خوبی کار کند. اما بعد از زیر بار رفتن نرم‌افزار متوجه شده‌اید که آن صفحه یا بخش سیستم از کم استفاده‌ترین بخش‌های سیستم است.&lt;br /&gt;
&lt;br /&gt;
البته یکی از اصول توسعه نرم‌افزار خصوصاً در سال‌های اخیر که روش‌های «چابک» رواج بیشتری پیدا کرده‌اند این است که &lt;a href="http://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it" target="_blank"&gt;تا به چیزی به طور کامل نیاز پیدا نکرده‌اید، آن را انجام ندهید&lt;/a&gt;. از طرفی درست است که یک code base خوب به شما کمک می‌کند که امکان توسعه‌های آتی راحت‌تر فراهم شود و حتی خطایابی و پشتیبانی هم راحت‌تر و سریع‌تر شود، اما چیزی که واقعاً برای مشتری مهم است کارآیی برنامه و از طرفی پایین بودن زمان و هزینه توسعه است. اگر قرار باشد همه چیز به روش اصولی و صد در صد درست انجام شود، حتی موارد ساده و کم استفاده، آن وقت هزینه‌های تولید و پشتیبانی نرم‌افزار بیشتر از آنی خواهد بود که باید باشد. باور کنیم که تیم‌های تولید نرم‌افزار هم در استفاده از روش‌های برنامه‌نویسی باید &lt;a href="http://fa.wikipedia.org/wiki/%D9%85%D9%82%DB%8C%D8%A7%D8%B3%E2%80%8C%D9%BE%D8%B0%DB%8C%D8%B1%DB%8C" target="_blank"&gt;«مقیاس‌پذیر»&lt;/a&gt; باشند. اگر مشتری کارش را در نصف زمان و با نصف هزینه خواست، تیم هم باید بتواند با به کارگیری روش‌های ساده‌تر و معمولی‌تر هزینه‌ها را کاهش دهد. نه این که با اصرار بر ایده‌آل گرایی هزینه‌ها را افزایش دهد.&lt;br /&gt;
&lt;br /&gt;
به عنوان مثالی که اخیراً به آن برخورد کردم باید به ذخیره و خواندن تنظیمات سیستم از app.config اشاره کرد. مورد استفاده من نگهداری چندین value به ازای یک key یکسان بود. هر چند که دات‌نت اجازه چنین کاری را می‌دهد و خطا اعلام نمی‌کند. اما استفاده معمولی از ConfigurationManager.AppSetting فقط آخرین value را بر می‌گرداند. راه اصولی برای حل این مشکل استفاده از Config Sectionهای سفارشی بود. حتی می‌شد از &lt;a href="http://www.codeproject.com/Articles/4302/How-to-make-AppSettings-work-with-multiple-values" target="_blank"&gt;راه‌حل‌های پیچیده‌تر مبتنی بر reflection &lt;/a&gt;برای حل مسئله استفاده کرد. اما یک &lt;a href="http://www.knowdotnet.com/articles/appsettingsduplicatekeys.html" rel="nofollow" target="_blank"&gt;راه فوق‌العاده ساده‌تر و کم هزینه‌تر&lt;/a&gt; هم وجود داشت. اضافه کردن یک عدد چند رقمی (بی‌استفاده) به انتهای keyها (تا از یکسان بودن در بیایند) و استفاده از یک foreach و عملیات استرینگی ساده برای به دست آوردن valueها! راه حل آخر را از یک برنامه‌نویس VB.NET یاد گرفتم.&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=wQqukidwry0:5RB3P6AWfgs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=wQqukidwry0:5RB3P6AWfgs:-LR1_4ybTb4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?i=wQqukidwry0:5RB3P6AWfgs:-LR1_4ybTb4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.afsharm.com/2013/04/blog-post.html</link><author>noreply@blogger.com (Afshar Mohebbi)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7752604992674614388.post-1306681938776680550</guid><pubDate>Fri, 19 Apr 2013 09:16:00 +0000</pubDate><atom:updated>2013-04-19T13:49:07.666+04:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">PHP</category><category domain="http://www.blogger.com/atom/ns#">IT</category><category domain="http://www.blogger.com/atom/ns#">CMS</category><category domain="http://www.blogger.com/atom/ns#">.Net</category><title>‫ابزارهای دات‌نتی یا PHP؟</title><description>&lt;div style="direction: rtl; text-align: right;"&gt;
به عنوان یک کاربر دنیای وب هر چند از گاهی که نیاز به راه اندازی یک سایت، وبلاگ، انجمن، فروشگاه اینترنتی و غیره می‌شود نیاز به تصمیم‌گیری درباره انتخاب ابزار مورد استفاده هم می‌شود. برای هر دسته از نیازمندی‌ها ابزارهای متفاوتی وجود دارد. مثلاً برای راه اندازی وب سایت می‌توان از ابزارهای Wordpress، Joomla، Drupal، Orchard یا Umbraco استفاده کرد. فارغ از امکانات و جزییات هر کدام از آنها، اگر سر و کاری با برنامه‌نویسی و توسعه نرم‌افزار داشته باشید، اول بایستی بین سکوی توسعه آنها یا همان زبان برنامه‌نویسی آنها تصمیم‌گیری کنید. در این زمینه دو سکوی اصلی وجود دارند، یکی PHP که لینوکسی است و دیگر .Net که ویندوزی است.&lt;br /&gt;
&lt;br /&gt;
اگر نیازتان صرفاً طراحی سایت یا راه اندازی وبلاگ باشد و الان یا آینده قصد توسعه شخصی سایت، اتصال به نرم‌افزارهای دیگر و غیره و غیره نداشته باشید، مشابه اکثر کاربران این طور ابزارها، تکلیف روشن است. مستقیماً به سراغ ابزارهای PHP بروید. پیشرفته‌تر هستند، امکانات بهتری دارند، جامعه کاربری بسیار بسیار بزرگتری دارند، متخصصین دم‌دستی‌تر و ارزان‌تری دارند، نگهداری و hosting ارزان‌تری دارند و غیره.&lt;br /&gt;
&lt;br /&gt;
اما اگر دستی بر آتش دارید، فعالیت‌تان در زمینه دات‌نت است، سرور ویندوزی دم دست دارید، علاقه کمی به کار با لینوکس و PHP دارید و یا نیاز احتمالی به توسعه و یکپارچگی ابزارها دارید، قضیه فرق می‌کند. در این صورت باید وزن امکانات و مزایای ابزارهای PHP را کمی کمتر کرده و به ابزارهای دات‌نتی نگاه دقیق‌تری داشته باشید. اجازه دهید یک Case Study داشته باشیم راجع به CMSها.&lt;br /&gt;
&lt;br /&gt;
گفته می‌شود که بین CMSهای PHP سه ابزار WordPress، Joomla و Drupal بسیار رایج‌تر هستند. Wordpress پر استفاده‌ترین و ساده‌ترین است. Drupal برای نیازهای پیچیده‌تر ساخته شده و استفاده از آن به راحتی Wordpress نیست. Joomla حالت وسط این دو است. یعنی از Wordpress پیچیده‌تر و کم استفاده‌تر ولی از Drupal ساده‌تر و پر استفاده‌تر است. وردپرس و جوملا به تنهایی ۷۸ درصد سهم بازار را در اختیار دارند. ابزارهای دات‌نتی هم طی سال‌های اخیر رشد خیلی زیادی داشته‌اند. سه ابزار مطرح دات‌نتی عبارت هستند از Umbraco، Orchard و DotNetNuke. از بین این سه Orchard از همه جدیدتر است. گفته می‌شود Orchard معادل Drupal است. DotNetNuke یا همان DNN از همه قدیمی‌تر و رایج‌تر است. بر اساس نظرات برخی کاربران Orchard چیزی از یک CMS کامل کم ندارد. اگر این گفته را صحیح بدانیم باز هم جامعه کاربری خیلی کوچک (نسبت به Wordpress) و متخصصین کم تعداد آن را نباید فراموش کرد. باید توجه کرد که جامعه کاربری کوچک به معنای ابزارهای جانبی، Themeها و امکانات فارسی کمتر نیز می‌باشد.&lt;br /&gt;
&lt;br /&gt;
تجربه شخصی که از نرم‌افزارهای وبلاگ نویسی دارم من را نسبت به نرم‌افزارهای دات‌نتی به شک انداخته است. من مدت‌ها از ابزار blogger برای وبلاگ‌نویسی استفاده کرده‌ام. مدتی هم هست که از BlogEngine.Net به عنوان یک ابزار دات‌نتی استفاده می‌کنم. هر چند که خیلی با ریزه‌کاری‌های وبلاگ‌ها کار نکرده‌ام، اما به طور تجربی حس می‌کنم وبلاگ Wordpress خیلی راحت‌تر و روان‌تر از BlogEninge.Net به عنوان بهترین وبلاگ دات‌نتی کار می‌کند. رسیدن به یقین در مورد این موضوع نیاز به بررسی دقیق‌تر Wordpress و خود BlogEngine.Net هم دارد.&lt;br /&gt;
&lt;br /&gt;
خلاصه موضوع این که فقط Webmasterهای حرفه‌ای که با هر دو دسته از ابزارها کار کرده‌اند می‌توانند نظر قطعی راجع به آنها بدهند. و این که اگر دات‌نتی بودن ابزار، امتیاز خاصی برایتان محسوب می‌شود بهتر است پی کمبود منابع را به تن‌تان مالیده، آستین بالا زده و بعضی نقصان‌ها را خودتان جبران کنید. این طوری می‌توان با ابزارهای دات‌نتی هم به عنوان یک ابزار پر امکانات و خوب استفاده کنید.&lt;br /&gt;
&lt;br /&gt;
منابع&lt;br /&gt;
•&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.rackspace.com/knowledge_center/article/cms-comparison-drupal-joomla-and-wordpress"&gt;http://www.rackspace.com/knowledge_center/article/cms-comparison-drupal-joomla-and-wordpress&lt;/a&gt;&lt;br /&gt;
•&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://webmasterformat.com/blog/top-asp-net-cmss"&gt;http://webmasterformat.com/blog/top-asp-net-cmss&lt;/a&gt;&lt;br /&gt;
•&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.garethelms.org/2011/01/my-take-on-net-cmss-orchard/"&gt;http://www.garethelms.org/2011/01/my-take-on-net-cmss-orchard/&lt;/a&gt;&lt;br /&gt;
•&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.techrepublic.com/blog/programming-and-development/pass-on-orchard-cms-until-the-feature-set-matures/4127"&gt;http://www.techrepublic.com/blog/programming-and-development/pass-on-orchard-cms-until-the-feature-set-matures/4127&lt;/a&gt;&lt;br /&gt;
•&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://w3techs.com/technologies/comparison/cm-artiphp,cm-drupal,cm-orchard"&gt;http://w3techs.com/technologies/comparison/cm-artiphp,cm-drupal,cm-orchard&lt;/a&gt;&lt;br /&gt;
•&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://orchard.codeplex.com/discussions/304259"&gt;http://orchard.codeplex.com/discussions/304259&lt;/a&gt;&lt;br /&gt;
•&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.opensourcecms.com/general/cms-marketshare.php"&gt;http://www.opensourcecms.com/general/cms-marketshare.php&lt;/a&gt;&lt;br /&gt;
•&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.mindfly.com/blog/2012/02/13/wordpress-vs-umbraco-how-do-you-choose/"&gt;http://www.mindfly.com/blog/2012/02/13/wordpress-vs-umbraco-how-do-you-choose/&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=RSzMTezudfM:t8EzfSTQ7aU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=RSzMTezudfM:t8EzfSTQ7aU:-LR1_4ybTb4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?i=RSzMTezudfM:t8EzfSTQ7aU:-LR1_4ybTb4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.afsharm.com/2013/04/php.html</link><author>noreply@blogger.com (Afshar Mohebbi)</author><thr:total>5</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7752604992674614388.post-8649521051898575430</guid><pubDate>Sun, 14 Apr 2013 10:10:00 +0000</pubDate><atom:updated>2013-04-14T14:41:56.112+04:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">Freelance</category><category domain="http://www.blogger.com/atom/ns#">elance</category><category domain="http://www.blogger.com/atom/ns#">Outsource</category><category domain="http://www.blogger.com/atom/ns#">odesk</category><title>‫دریافت پروژه از سایت‌های Freelancing</title><description>&lt;div style="direction: rtl; text-align: right;"&gt;
&lt;br /&gt;
در مشاهدات روزانه از سایت‌های Freelancing در یک ماه گذشته و تلاش برای دریافت پروژه از آنها به نکات زیر برخوردم:&lt;br /&gt;
&lt;br /&gt;
۱- معتبرترین سایت‌های Freelancing عبارتند از odesk.com و elance.com. این دو سایت آنقدر مهم هستند که با مشتری‌های به دست آمده از آنها می‌توان کار Outsource را به طور جدی ادامه داد. قیمت‌های هر دو سایت هم نسبتاً مناسب هستند.&lt;br /&gt;
&lt;br /&gt;
۲- هر دو سایت آمریکایی هستند و بنابراین مطابق تحریم‌ها امکان سرویس دهی به ایران را ندارند. سایت odeks.com با اولین باری که با IP ایران از آن بازدید کنید اکانت شما را متوقف کرده و تا زمانی که کپی پاسپورت یا مدارک این چنینی ارائه ندهید مشکل برطرف نمی‌شود.&lt;br /&gt;
&lt;br /&gt;
۳- سایت Freelancer.com سایت پر ترافیکی برای Freelancing است. این سایت استرالیایی است و تا اینجا هیچ مشکلی با ایران نداشته است. شما می‌توانید با خیال راحت با پرچم ایران فعالیت داشته باشید.&lt;br /&gt;
&lt;br /&gt;
۴- قیمت‌های سایت Freelancer.com خیلی پایین است. گاهی اوقات به ساعتی ۴ دلار هم می‌رسد. حتی اگر قیمت دلار را ۳۰۰۰ تومان بگیریم، بعد از کسر کمیسیون سایت و هزینه‌های انتقال پول و تبدیل به ریال به مبلغ حدود ساعتی ۹ هزار تومان می‌رسیم. این رقم از تصور بسیاری از افراد از درآمد دلاری خیلی پایین‌تر است.&lt;br /&gt;
&lt;br /&gt;
۵- تشخیص کشور محل اقامت در هر سه سایت معرفی شده بر حسب تشخیص خودکار بر اساس IP آن هم در روز ثبت نام است. عوض کردن کشور بعد از ثبت نام معمولاً کار سختی است.&lt;br /&gt;
&lt;br /&gt;
۶- رقابت در دریافت پروژه خصوصاً در Freelancer.com بسیار سنگین است. بیشتر اوقات کارهایی که در ایران بابت آنها یک میلیون تومان خواسته می‌شود در آنجا با قیمت‌هایی در حد ۱۰۰ دلار انجام می‌شود.&lt;br /&gt;
&lt;br /&gt;
۷- افراد بسیار زیادی از کشورهای شرق اروپا مثل اوکراین، روسیه، لهستان، لیتوانی و کشورهای آسیایی مثل هند، پاکستان، چین و بنگلادش بر سر پروژه های ۱۰۰ دلاری با هم در رقابت هستند. اما فقط کشورهای در حال توسعه نیستند که آنجا فعال هستند، در پروژه‌های با قیمت مناسب‌تر سر و کله آمریکایی‌ها، انگلیسی‌ها و بقیه اروپا هم پیدا می‌شود.&lt;br /&gt;
&lt;br /&gt;
۸- در سایت Freelancer.com دو دسته کلی از پروژه‌ها وجود دارند. اولی پروژه‌هایی که که در واقع پروژه نیستند. بلکه کارهای دم دستی یکی دو روزه هستند. مثل استخراج اطلاعات از یک سایت خاص، تبدیل فلان فایل به یک فرمت دیگر، رفع اشکال یک سایت، نرم‌افزارهای کوچک مثل نگهداری اطلاعات فروش کتاب و… شانس دریافت چنین پروژه‌هایی خیلی پایین است. چون این طور پروژه‌های جز کارهای خیلی روتین هستند و مطمئناً افراد بسیاری وجود دارند که تکرار مداوم چنین کارهایی باعث شده که سرعت انجام کارشان خیلی بالا برود و در نتیجه بتوانند چنین کاری را در یکی دو ساعت انجام دهند. بنابراین یک قیمت ۷۰ دلاری چندان هم بد نباشد. دسته دوم پروژه‌های کوچک ولی صفر تا صدی هستند که آنقدر روتین نیستند که نمونه‌های قبلی آنها وجود داشته باشد. از طرفی هر چقدر هم که مهارت و سرعت داشته باشید اما باز هم نیاز هست که مراحل تحلیل، طراحی، برنامه‌نویسی و تست را برای آن انجام دهید. به همین خاطر این طور پروژه‌ها را می‌توان با قیمت‌هایی در حد ۷۰۰ دلار هم گرفت. اما فراموش نکنید درست در چنین پروژه‌هایی است که رقبای آمریکایی و اروپایی که اتفاقاً در پروپوزال نویسی مهارت بسیار بالایی دارند پیدا می‌شود.&lt;br /&gt;
&lt;br /&gt;
۹- در سایت Freelancer.com دو دسته کلی از کارفرمایان هم وجود دارد. یک دسته کارفرمایان دائمی که همیشه کارهایشان را از طریق این سایت انجام می‌دهند و دسته دیگر کارفرمایانی که به دنبال یک نیازمندی خاص و برای اولین بار مراجعه می‌کنند. دسته اول با قیمت‌ها آشنایی کامل دارند و تا آنجا که می‌توانند از قیمت‌های خیلی پایین استفاده می‌کنند. دسته دوم کارفرمایان امتحان پس نداده‌اند، معلوم نیست نیازمندی‌هایشان به اندازه کافی واضح است یا نه و حتی معلوم نیست تا آخر پروژه ادامه می‌دهند یا نه.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
همه تجارب بالا از دیدگاه یک برنامه‌نویس دات‌نت نوشته شده. قاعدتاً برنامه‌نویسان php یا طراحان سایت ممکن است تجربه متفاوتی داشته باشند.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=BuKdPn0Dbfg:f3BcbHzzJHs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=BuKdPn0Dbfg:f3BcbHzzJHs:-LR1_4ybTb4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?i=BuKdPn0Dbfg:f3BcbHzzJHs:-LR1_4ybTb4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.afsharm.com/2013/04/freelancing.html</link><author>noreply@blogger.com (Afshar Mohebbi)</author><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7752604992674614388.post-3146374434157637202</guid><pubDate>Wed, 03 Apr 2013 15:34:00 +0000</pubDate><atom:updated>2013-04-03T20:07:13.390+04:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">Outsource</category><title>‫افراد و شرکت‌ها موقع Outsource کردن به چه چیزی فکر می‌کنند؟</title><description>&lt;div style="direction: rtl; text-align: right;"&gt;
آنها قبل از هر چیز به Outsourcing بد بین هستند. اما بعضی از آنها که تجارب موفقی داشته‌اند توصیه‌هایی برای انجام موفق Outsourcing دارند:&lt;br /&gt;&lt;br /&gt;۱- مشخص و مستند کردن تمام جزییات پروژه بدون استثنا.&lt;br /&gt;۲- داشتن مدیر پروژه یا مدیر فنی در سمت خودشان نه در تیم Outsource.&lt;br /&gt;۳- عدم توقع بابت قیمت‌های خیلی پایین‌تر.&lt;br /&gt;۴- سپردن کارهای خلاقانه‌تر به تیم‌های غیر Outsource.&lt;br /&gt;۵- کار با شرکت‌های معروف‌تر و پرهیز از کار با اشخاص منفرد. بسیاری از شرکت‌های موفق دارای دفاتری در ایالات متحده هم هستند.&lt;br /&gt;۶- در صورتی که می‌خواهید درگیری کمتری داشته باشید از سایت‌های شناخته شده odesk و elance استفاده کنید.&lt;br /&gt;۷- بعد از مدیریت پروژه، داشتن مهارت‌های ارتباطی بالا را خیلی لازم و مفید می‌دانند.&lt;br /&gt;۸- شروع کردن با پروژه کوچک‌تر سپس پروژه‌های بزرگتر.&lt;br /&gt;۹- تفاوت‌های فرهنگی بین کشورهای مختلف از نظر آنها هم بسیار مهم است.&lt;br /&gt;۱۰- بیشتر Outsource از آمریکا به کشورهای دیگر اتفاق می‌افتد.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;دو نکته تکمیلی:&lt;br /&gt;۱- معمولا بیشتر startupها هستند که علاقمند به کار با تیم‌های Outsource هستند.&lt;br /&gt;۲- کشورهای شناخته شده در Outsource شامل روسیه، بلاروس و کلاً اروپای شرقی به عنوان تیم‌های درجه یک و کشورهای هند و چین به عنوان کشورهای درجه دوم. هستند.
&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=XmFYg8O4-tQ:A-6NlmdGj5E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=XmFYg8O4-tQ:A-6NlmdGj5E:-LR1_4ybTb4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?i=XmFYg8O4-tQ:A-6NlmdGj5E:-LR1_4ybTb4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.afsharm.com/2013/04/outsource.html</link><author>noreply@blogger.com (Afshar Mohebbi)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7752604992674614388.post-2901452839629278782</guid><pubDate>Wed, 12 Dec 2012 18:34:00 +0000</pubDate><atom:updated>2012-12-12T22:04:24.242+03:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">ELECOMP</category><title>نمایشگاه الکامپ ۹۱</title><description>&lt;div style="direction: rtl; text-align: right;"&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://afsharm.com/images/blog/elecomp91.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://afsharm.com/images/blog/elecomp91.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
نمایشگاه الکامپ ۱۳۹۱ در تاریخ ۱۹ الی ۲۲ آذر ماه ۱۳۹۱ در محل دائمی نمایشگاه‌های تهران برگزار شد. نمایشگاه ترکیبی بود از شرکت‌های نرم‌افزاری، نشریات کامپیوتری، شرکت‌های سخت‌افزاری و شبکه‌ای، شرکت‌های موبایلی و SMS، ارائه دهندگان Tabletها و غیره. در بازدید از نمایشگاه نکاتی به ذهن خطور می‌کرد از جمله:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
۱- تنها پارک پارک علم و فناوری حاضر در نمایشگاه پارک فناوری پردیس بود. هر چند که اطلاعات غرفه راجع به پارک فناوری چندان جامع و کامل نبود، اما باز جای خوشحالی داشت. ای کاش بقیه پارک‌ها را هم می‌شد در نمایشگاه دید.&lt;br /&gt;
&lt;br /&gt;
۲- حضور بعضی شرکت‌ها پر رنگ تر از آن چیزی بود که می‌شد تصور کرد. از جمله شرکت‌های خدمات SMS و فروشندگان UPS. هر کدام از این دو گروه به مراتب بیشتر از شرکت‌های نرم‌افزاری بودند.&lt;br /&gt;
&lt;br /&gt;
۳- وجود برخی مراکز دولتی مثل مرکز توسعه تجارت الکترونیکی برای علاقمندان فرصت بسیار مناسبی بود تا بتوانند برخی سوالات و ابهامات خود را برطرف کنند.&lt;br /&gt;
&lt;br /&gt;
۴- در حاشیه برخی غرفه‌ها می‌شد شاهد بحث‌های داغ و جالبی راجع به نرم‌افزار، فناوری و تجارت الکترونیک بود. با کمی صبر و حوصله و جستجو می‌شد این مباحثات را ردیابی کرد و Contactهای خوبی ایجاد کرد.&lt;br /&gt;
&lt;br /&gt;
۵- وجود غرفه‌های متعدد از سایت‌های اینترنتی خدماتی و تجاری نشان می‌داد که وضعیت تجارت الکترونیک در ایران آن طور هم که فکر می‌کنیم افتضاح نیست و این طور سایت‌ها آنقدر درآمد دارند که در الکامپ شرکت کنند.&lt;br /&gt;
&lt;br /&gt;
۶- با یک جستجوی هدفمند می‌شد سوژه‌های بسیار مناسبی را پیدا کرد که شاید پیدا کردنشان در بیرون نمایشگاه کار چندان ساده‌ای نباشد. یکی از این سوژه‌ها شرکتی بود که حاضر بود در ایده‌های افراد سرمایه‌گذاری کند. همان چیزی که بعضی کارآفرین‌ها بعضاٌ از عدم وجود این چیزها در ایران شکایت می‌کنند.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=ec7VlXELgOA:8WoJKlKJYPQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=ec7VlXELgOA:8WoJKlKJYPQ:-LR1_4ybTb4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?i=ec7VlXELgOA:8WoJKlKJYPQ:-LR1_4ybTb4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.afsharm.com/2012/12/blog-post_12.html</link><author>noreply@blogger.com (Afshar Mohebbi)</author><thr:total>19</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7752604992674614388.post-6472325955850300287</guid><pubDate>Sat, 01 Dec 2012 08:44:00 +0000</pubDate><atom:updated>2012-12-01T12:14:00.288+03:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">E-Government</category><title>سوء استفاده از خدمات الکترونیک</title><description>&lt;div style="direction: rtl; text-align: right;"&gt;
شاید در هیچ کشوری به اندازه کشور ما به IT، کامپیوتر، اینترنت و خدمات الکترونیک جفا نشده باشد. خود مردم به اندازه کافی به این طور چیزها بی‌اعتماد هستند، دستگاه‌های تبلیغاتی و فرهنگی مدام روی نقاط منفی آن انگشت می‌گذارند، دولت به جای استفاده و توسعه بیشتر آن به تضعیف نظام‌ها و قوانین آن روی آورده و متاسفانه برخی دستگاه‌ها که خود بایستی الگوی استفاده صحیح از دولت الکترونیک و خدمات الکترونیک باشند در حال سوء استفاده و بهره‌برداری از آن تنها به نفع خود و نه نفع عموم از آن هستند.&lt;br /&gt;
&lt;br /&gt;
چند وقت پیش برای ثبت شرکت به اداره ثبت شرکت‌ها مراجعه کرده بودم. یکی از مراحل ثبت شرکت ارسال مشخصات و موضوعات فعالیت شرکت به یک ایمیل خاص بود. مراحل کار به این صورت بود که شما به عنوان متقاضی ثبت شرکت در اولین روز مراجعه به اداره مدارک را تحویل واحد پذیرش می‌دهید. سپس واحد پذیرش به شما می‌گوید مشخصات شرکت و موضوعات فعالیت را به یک ایمیل خاص ارسال کنید و فردا برای ادامه کار مراجعه کنید. شما هم همین کار را کرده و فردای آن روز که تشریف آوردید مسئول پذیرش دریافت ایمیل شما را تایید کرده و به واحد دیگری که کار بررسی موضوعات فعالیت شرکت شما را بر عهده دارد ارجاع داده می‌شوید. در این واحد موضوعات فعالیت شرکت که خودتان ایمیل کرده بودید بر صفحه کامپیوتر کارشناس مربوطه ظاهر گردیده و وی در صورت لزوم با کپی پیست از همانها نامه وزارت ارشاد یا بقیه سازمان‌ها را تهیه می‌کند و به شما می‌دهد.&lt;br /&gt;
&lt;br /&gt;
بله درست حدس زده‌اید! خاصیت این ایمیلی که هیچ وقت جوابی به آن داده نمی‌شود و هیچ استفاده دیگری ندارد این است که مسئول پذیرش موضوعات شرکت را که معمولا در حد ۱۰ خط می‌باشد تایپ نکند. بلکه خودتان به قیمت عقب افتادن یک روزه کار و رفت و برگشت اضافی مربوطه آن را تایپ کرده تا آنها بتوانند با کپی پیست آن هم پرونده شما را کامل کنند و هم نامه‌های مربوطه را آماده کنند. جالب است که اداره ثبت می‌توانست با اضافه کردن یک اپراتور به مجموعه عریض و طویل خودش و دریافت هزینه‌های مربوطه از مراجعین از این رفت و برگشت و تاخیر جلوگیری کرده و در همان روز بقیه کارها را به جریان بیندازد. این طوری استفاده از خدمات الکترونیک، اینترنت و ایمیل در چشم مراجعان ناآشنا تعبیر به ابزار از «سر وا کنی» نمی‌شد. البته باز هم جای شکرش باقیست که اداره ثبت تایپ آن ۱۰ خط را به خود مراجعان سپرده والا ممکن بود بابت آن یک هفته زمان بخواهد.&lt;br /&gt;
&lt;br /&gt;
متاسفانه در ادامه کار متوجه شدم که وزارت ارشاد هم برای صدور مجوز شرکت‌ها از روال مشابهی استفاده می‌کند منتها با سوء استفاده کمتری.&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=pEP3rPWajC8:g0vMAiouvAc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=pEP3rPWajC8:g0vMAiouvAc:-LR1_4ybTb4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?i=pEP3rPWajC8:g0vMAiouvAc:-LR1_4ybTb4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.afsharm.com/2012/12/blog-post.html</link><author>noreply@blogger.com (Afshar Mohebbi)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7752604992674614388.post-8356198911254911804</guid><pubDate>Mon, 26 Nov 2012 08:33:00 +0000</pubDate><atom:updated>2012-11-26T12:03:37.997+03:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">NMTN</category><title>نماتن و منابع اطلاعاتی مفید آن</title><description>&lt;div style="direction: rtl; text-align: right;"&gt;
یکی از مضرات فعالیت در اینترنت این است که فکر می‌کنیم همه چیز به طور مستقیم در اینترنت وجود دارد و هر چیزی که در اینترنت ندیدیم به معنی وجود نداشتن آن است. اینترنت ما را تنبل کرده و در بعضی حالات&amp;nbsp; وسعت دید ما را کاهش داده. ما در اثر استفاده زیاد از اینترنت دچار این توهم شده‌ایم که همیشه از همه چیز خبر داریم و این تنها ما اینترنت‌بازها هستیم که در حوزه تخصصی خودمان یعنی برنامه‌نویسی فعال هستیم.&lt;br /&gt;
&lt;br /&gt;
یکی از مصادیق این مضرت که اخیراً آن را لمس کرده‌ام بی‌اطلاعی از حجم قابل توجهی از تحقیقات و بررسی‌های از قبل انجام شده در زمینه نرم‌افزار و مسائل حرفه‌ای و شغلی آن است. در &lt;a href="http://fardapardaz.com/blogs/pelikan/post/2012/11/18/%D9%86%D9%85%D8%A7%D8%AA%D9%86.aspx" target="_blank"&gt;جستجویی که در رابطه با «نماتن» داشتم&lt;/a&gt; متوجه شدم که خیلی از مطالبی که قبل‌ترها به دنبال آنها بودم یا مشتاق به دانستن‌شان بودم و حتی بعضاً مقدار زیادی وقت برای پیدا کردنشان صرف کرده بودم در مستندات &lt;a href="http://fardapardaz.com/blogs/pelikan/post/2012/11/18/%D9%86%D9%85%D8%A7%D8%AA%D9%86.aspx" target="_blank"&gt;«نماتن»&lt;/a&gt; وجود دارد. &lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://fardapardaz.com/blogs/pelikan/post/2012/11/18/%D9%86%D9%85%D8%A7%D8%AA%D9%86.aspx" target="_blank"&gt;«نماتن»&lt;/a&gt; به معنی &lt;a href="http://fardapardaz.com/blogs/pelikan/post/2012/11/18/%D9%86%D9%85%D8%A7%D8%AA%D9%86.aspx" target="_blank"&gt;«نظام مهندسی و استانداردهای تولید و توسعه نرم‌افزار»&lt;/a&gt; بوده که در سه فاز تدوین شده است. مستندات مختلف &lt;a href="http://fardapardaz.com/blogs/pelikan/post/2012/11/18/%D9%86%D9%85%D8%A7%D8%AA%D9%86.aspx" target="_blank"&gt;«نماتن»&lt;/a&gt; خصوصاً فاز ۳ آن شامل بررسی‌ها، تحقیقات و مقایسات فراوانی راجع به نرم‌افزارِ و توسعه آن، نظام‌های صنفی و نظارتی داخلی و خارجی است. به شخصه علاقه‌مندی زیادی به دانستن چنین مطالبی داشته‌ام و گاهاً منابع اینترنتی زیادی را برای دستیابی به آن زیر و رو کرده‌ام در حالی که بخش زیادی از این مطالب در مستندات &lt;a href="http://fardapardaz.com/blogs/pelikan/post/2012/11/18/%D9%86%D9%85%D8%A7%D8%AA%D9%86.aspx" target="_blank"&gt;«نماتن»&lt;/a&gt; موجود بوده‌اند.&lt;br /&gt;
&lt;br /&gt;
هر چند که &lt;a href="http://fardapardaz.com/blogs/pelikan/post/2012/11/18/%D9%86%D9%85%D8%A7%D8%AA%D9%86.aspx" target="_blank"&gt;«نماتن»&lt;/a&gt; کمی قدیمی شده و تاریخ تدوین فاز اول آن به حدود ده سال پیش بر می‌گردد و از آن تاریخ تغییرات زیادی هم در توسعه نرم‌افزار و هم در ساختارهای مدیریتی کشور به وجود آمده اما باز هم خواندن آن خالی از فایده نیست. برای دریافت مستندات &lt;a href="http://fardapardaz.com/blogs/pelikan/post/2012/11/18/%D9%86%D9%85%D8%A7%D8%AA%D9%86.aspx" target="_blank"&gt;«نماتن»&lt;/a&gt; به &lt;a href="http://www.shci.ir/Portal/Home/ShowPage.aspx?Object=GeneralText&amp;amp;ID=18e52411-614e-4489-a52e-5c2b67423a06&amp;amp;LayoutID=c0927f8d-13d7-4fb7-9381-73baecd44e95&amp;amp;CategoryID=b600c83a-b67a-457b-a880-356f3b44659e" target="_blank"&gt;سایت شورای عالی انفورماتیک&lt;/a&gt; مراجعه کنید. خواندن &lt;a href="http://rezakarami.ir/?p=196" target="_blank"&gt;مطلب رضا کرمی&lt;/a&gt;، یکی از موثرترین افراد در تدوین &lt;a href="http://fardapardaz.com/blogs/pelikan/post/2012/11/18/%D9%86%D9%85%D8%A7%D8%AA%D9%86.aspx" target="_blank"&gt;«نماتن»&lt;/a&gt; هم دید خوبی از &lt;a href="http://fardapardaz.com/blogs/pelikan/post/2012/11/18/%D9%86%D9%85%D8%A7%D8%AA%D9%86.aspx" target="_blank"&gt;«نماتن»&lt;/a&gt; و تاریخچه آن به دست می‌دهد.&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=YWMMJcmnmfg:x73vyCXAH3U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=YWMMJcmnmfg:x73vyCXAH3U:-LR1_4ybTb4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?i=YWMMJcmnmfg:x73vyCXAH3U:-LR1_4ybTb4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.afsharm.com/2012/11/blog-post.html</link><author>noreply@blogger.com (Afshar Mohebbi)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7752604992674614388.post-9183365665195567714</guid><pubDate>Mon, 06 Aug 2012 21:04:00 +0000</pubDate><atom:updated>2012-08-07T01:35:09.522+04:30</atom:updated><title>‫استخدام برنامه‌نویس WPF</title><description>&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 10pt"&gt;&lt;div style="direction: rtl; text-align: center;"&gt;.&lt;br /&gt;  .&lt;br /&gt;  .&lt;br /&gt;  .&lt;br /&gt;  .&lt;br /&gt;  .&lt;br /&gt;  .&lt;br /&gt;  نیاز به همکاری یک نفر برنامه&amp;zwnj;نویس مسلط به WPF به صورت تمام وقت و حضوری (در تهران) داریم. علاقمندان لطفاً رزومه&amp;zwnj;هایشان را به آدرس jobs روی دامنه FardaPardaz.com ارسال نمایند.&lt;br /&gt;  .&lt;br /&gt;  .&lt;br /&gt;  .&lt;br /&gt;  .&lt;br /&gt;  .&lt;br /&gt;  .&lt;br /&gt;  .&lt;br /&gt;  &lt;/div&gt;&lt;/span&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=BE7Kl3RWYCI:xvK-30VVudM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=BE7Kl3RWYCI:xvK-30VVudM:-LR1_4ybTb4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?i=BE7Kl3RWYCI:xvK-30VVudM:-LR1_4ybTb4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.afsharm.com/2012/08/wpf.html</link><author>noreply@blogger.com (Afshar Mohebbi)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7752604992674614388.post-4188810735605526420</guid><pubDate>Thu, 28 Jun 2012 07:02:00 +0000</pubDate><atom:updated>2012-06-28T11:32:53.677+04:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">positiveness</category><category domain="http://www.blogger.com/atom/ns#">Social</category><title>مثبت اندیشی: اخبار خوب</title><description>&lt;div style="direction: rtl; text-align: right;"&gt;
وبلاگ رادمان (علی واحد) پستی گذاشته است با &lt;a href="http://weblog.radmanitd.com/index.php/archives/2945" target="_blank"&gt;عنوان «یک خبر خوب بدهید!»&lt;/a&gt; و در آن از همه دعوت کرده که علیرغم این همه اخبار منفی، کمی مثبت اندیش بوده و به چند خبر خوب هم توجه کنیم. ضمن تشکر از آقای واحد بابت تزریق روحیه مثبت‌نگری و دعوت به همراهی، سهم بنده به شرح ذیل است:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
زمانی که خوابگاه و دانشگاه بودیم خودمان را از تلویزیون و خیلی منابع خبری منفی مثل مسافران تاکسی‌ها، افراد منتظر در صف بانک‌ها و حتی خیلی از روزنامه‌ها ایزوله کرده بودیم و این خیلی برای روحیه ما خوب بود. به کسانی که امکانش را دارند توصیه می‌کنم این عایق‌سازی را تجربه کنند.&lt;br /&gt;
&lt;br /&gt;از اخبار خوب این روزها باید اشاره کنم به این که سهم روشن بودن تلویزیون در منزل ما کم کم دارد به زیر نیم ساعت در روز می‌رسد. دور بودن از تلویزیون و ماهواره خودش کلی آرامش بخش است!&lt;br /&gt;&lt;br /&gt;بیش از شش ماه از فعالیت مستقل (&lt;a href="http://fardapardaz.com/" target="_blank"&gt;فردا پرداز&lt;/a&gt;) می‌گذرد و ما هنوز زنده‌ایم. این خودش برای ما خیلی امید بخش است.&lt;br /&gt;&lt;br /&gt;فرزندمان، پیام، کم کم دارد یاد می‌گیرد چطور سر پا بایستد بدون آن که زمین بیفتد. از تلاش و امیدواری او خیلی لذت می‌برم.&lt;br /&gt;
&lt;br /&gt;
بنده هم در ادامه &lt;a href="http://www.codefirst.info/" target="_blank"&gt;شاهین کیاست&lt;/a&gt; و &lt;a href="http://mybug.blogfa.com/" target="_blank"&gt;احسان زینعلی&lt;/a&gt; را دعوت به دادن اخبار خوب می‌کنم. &lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=rc3b2UQqFTI:fA6EfnRormk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=rc3b2UQqFTI:fA6EfnRormk:-LR1_4ybTb4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?i=rc3b2UQqFTI:fA6EfnRormk:-LR1_4ybTb4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.afsharm.com/2012/06/blog-post_28.html</link><author>noreply@blogger.com (Afshar Mohebbi)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7752604992674614388.post-3029803858738757610</guid><pubDate>Wed, 27 Jun 2012 11:31:00 +0000</pubDate><atom:updated>2012-06-27T16:01:38.509+04:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">repair</category><category domain="http://www.blogger.com/atom/ns#">Computer</category><title>خرابی‌های انتشاری سخت‌افزاری</title><description>&lt;div style="direction: rtl; text-align: right;"&gt;
چه کسی باور می‌کند که خرابی یک پاور باعث خرابی Mainborad خودش و Power و Mainborad کامپیوتر دیگری بشود؟ متاسفانه این خرابی به صورت یک مشکل انتشاری از یک قطعه به یک قطعه دیگر و از یک کامپیوتر به کامپیوتر دیگر به سرعت برای من اتفاق افتاد.&lt;br /&gt;&lt;br /&gt;داستان از این قرار است که یک سرور در حال کار را از دفتر به منزل منتقل کردم (به خاطر قطعی‌های مکرر اینترنت) و در منزل از کار افتاد. لازم به ذکر است که فن پاور سرور مدت‌ها مشکل داشت و من آن را عوض نکرده بودم. اما انتقال سرور به منزل با احتیاط کامل انجام شد. نوع خرابی سرور به این صورت بود که وقتی آن را به برق می‌زدم دکمه‌های جلوی پنل آن شروع به چشمک زدن می‌کردند و هر چقدر که دکمه روشن را می‌زدم چیزی روشن نمی‌شد.&lt;br /&gt;&lt;br /&gt;اولین حدس خرابی پاور بود. فیش اصلی پاور را از کیس جدا کردم و سعی کردم با برقراری اتصال بین آن دو سیم سبز و مشکی معروف آن را روشن کنم. پاور روشن نشد. چندین بار دیگر سعی کردم و در یکی از سعی‌ها در حالی که پاور وصل بود دو سیم دیگر را وصل کردم. این کار آن طور که در نهایت فهمیدم شروع بدبختی‌ها بود. وصل کردن این دو سیم باعث به وجود آمدن جرقه و بلند شدن دود از یک جای خاص مادربرد شد! (البته این احتمال هست که مادربورد با همان خرابی اولیه پاور خراب شده باشد)&lt;br /&gt;&lt;br /&gt;چون نتوانستم کار را از پیش ببرم و هنوز امیدوارم بودم مادربورد سالم باشد، پاور یک سیستم دیگر را روی سرور امتحان کردم.هیچ چیزی روشن نشد. با چندین بار تلاش دیگر باز هم هیچ چیزی روشن نشد. این بار پاور سرور را روی سیستم کمکی سوار کردم. سیستم کمکی هم روشن نمی‌شد. تا اینجای کار برایم مسجل شده بود که مادربرد و پاور سیستم سوخته است. پس بهتر است هارد آن را باز کرده و روی سیستم کمکی بگذارم بلکه سرور دوباره سرپا شود. اما زهی خیال باطل! سیستم کمکی هم با وجود مادربرد و پاور خودش دیگر کار نمی‌کرد. حدس زدم پاور این یکی هم سوخته باشد. هر چند هرگز نشنیده بودم خرابی مادربرد (سرور) بتواند باعث خرابی پاور (سیستم کمکی) بشود. &lt;br /&gt;&lt;br /&gt;روز بعد با یک مادربورد و دو پاور خراب راهی تعمیرگاه شدم. مادربورد ۲۰ تومان هزینه تعمیر، یکی از پاورها ۸ تومان و دیگری ۵ تومان هزینه تعمیر داشتند. همه را برای تعمیر گذاشتم. اما برای یکی از پاورها قرار شد یک ساعت دیگه برگردم. در بازگشت متوجه شدم که پاور قابل تعمیر نیست. به جایش یک پاور دست دوم از همان تعمیرگاه خریدم ۷ تومان. پاور را به منزل بردم و روی سیستم کمکی نصب کردم. روشن نمی‌شد. فردای دوم سیستم کمکی را به هم تعمیرگاه بردم و متوجه شدم این مادربورد هم سوخته است! تا اینجا دو پاور و دو مادربورد! مادربورد و پاور سرور را به منزل بردم و سوار کردم. لعنتی باز هم روشن نمی‌شد. فردای سوم به تعمیرگاه بازگشتم. تعمیرکار مدعی بود که حتما یک وسیله USB مورد دار را به دستگاه وصل کرده‌ام که این طوری شده. قسم و قرآن خوردم که این سرور است و حتی مانیتور و صفحه کلید هم به آن وصل نکرده‌ام. زیر بار نمی‌رفت. قرار شد جای دیگری از مادبورد را دستکاری کند که درست شود. از ترس خرابی‌های مجدد قبول نکردم. به جای آن یک مادربورد مشابه خریدم به مبلغ ۵۰ تومان و روانه منزل شدم. &lt;br /&gt;&lt;br /&gt;حالا بعد از گذشت سه روز، چندین ساعت صرف وقت، خوابیدن سه روز سرور و حدود ۸۰ تومان هزینه‌های مختلف تعمیر و خرید هر دو سیستم مجددا سرپا هستند و در طول چند ساعتی که از روشن شدنشان می‌گذرد دچار مشکل نشده‌اند.&lt;br /&gt;&lt;br /&gt;درس‌هایی که از این مصیبت عظما گرفتم:&lt;br /&gt;۱- همیشه حواسم به Maintanance ویندوز سرور بود اما به Maintance سخت‌افزار آن توجه کافی نکرده بودم. خرابی فن پاور را مدت‌ها می‌دیدم ولی توجهی به آن نمی‌کردم. اگر برنامه منظمی برای Maintance سخت‌افزار می‌داشتم دچار این مشکلات نمی‌شدم.&lt;br /&gt;&lt;br /&gt;۲- به موارد تعمیری نمی‌شود خیلی اعتماد کرد. دفعه اول تعمیر مادربورد، آن را در محل تعمیرگاه امتحان کردم. اما همین که به منزل برگشتم، مجددا از کار افتاد. &lt;br /&gt;&lt;br /&gt;۳- پاساژ کامپیوتر ایران، پایین‌تر از میدان ولیعصر در حال حاضر (تیر ۱۳۹۱) مملو شده از تعمیرگاه‌های مختلف. در صورت ضرورت می‌توان از آنها استفاده کرد.&lt;br /&gt;&lt;br /&gt;۴- اگر به یک سیستم ویندوز ایکس پی برای کارهای تست یا کمکی سرور نیاز داشتید می‌توانید یکی از کیس‌های موجود در این تعمیرگاه‌ها و فروشندگان دست دوم را به قیمت فقط ۱۲۰ تومان تهیه کنید.&lt;br /&gt;&lt;br /&gt;نکته جالب این که در زمان حضور در تعمیرگاه شخصی برای تهیه سیستم Core i 7 مراجعه کرد! سیستمی که هنوز نو آن را خیلی‌ها نمی‌خرند.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://afsharm.com/images/blog/computer-repair.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://afsharm.com/images/blog/computer-repair.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=5MSBYG0aIs4:e4Uh4IX-0rw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=5MSBYG0aIs4:e4Uh4IX-0rw:-LR1_4ybTb4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?i=5MSBYG0aIs4:e4Uh4IX-0rw:-LR1_4ybTb4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.afsharm.com/2012/06/blog-post.html</link><author>noreply@blogger.com (Afshar Mohebbi)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7752604992674614388.post-7264306683966370808</guid><pubDate>Thu, 31 May 2012 13:49:00 +0000</pubDate><atom:updated>2012-05-31T18:21:04.845+04:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">CI</category><category domain="http://www.blogger.com/atom/ns#">NuGet</category><category domain="http://www.blogger.com/atom/ns#">Unit Test</category><category domain="http://www.blogger.com/atom/ns#">TeamCity</category><title>‫تجاربی از CI و Automatic Unit Testing با TeamCity</title><description>&lt;div style='direction:rtl; text-align:right'&gt;
&lt;br /&gt;به سلامتی TeamCity را به قصد راه اندازی CI و انجام خودکار Unit Testها راه انداختیم اما مشکلات و مسائل زیادی به وجود آمد. بعضی‌ها حل شدند و بعضی‌ها نه. خلاصه‌ای از نکاتی که به آن برخورد کردم:&lt;br /&gt;&lt;br /&gt;۱- نصب خود TeamCity خیلی ساده و سریع بود. ولی تا آنجا که فهمیدم فقط با MSBuild می‌شود با آن کار کرد و مثل TFS نیست که بشود با WorkFlow آن کارهای اضافی کرد.&lt;br /&gt;&lt;br /&gt;۲- با آن که از git استفاده می‌کنیم ولی خوشبختانه مسائل ارتباط با git خیلی خیلی کمتر از آنی بود که فکر می‌کردم. حتی بخش CI که بایستی با push کردن هر تغییر تریگر شود بدون کمترین مشکلی کار کرد (اقلاً مشکل خاصی حس نکردم).&lt;br /&gt;&lt;br /&gt;۳- معرفی Build Agentها به دلایلی مثل روشن بودن فایروال، نبودن git در مسیر اجرایی ویندوز و غیره اذیت کرد ولی نه خیلی.&lt;br /&gt;&lt;br /&gt;۴- مشکل NuGet فوق‌العاده شدید بود. به راحتی آب خوردن یکی دو روز از وقتم را گرفت. با آن که تنظیم کرده بودم که دریافت packageها خودکار باشد ولی TeamCity با آن که packageها را دریافت می‌کرد باز هم build error می‌داد. به عنوان یک راه حل موقتی فایل‌های packageها را دستی در Build Agentها کپی کردم. ولی بعد از کش و قوس‌های فراوان تصمیم گرفتم NuGet را کنار بگذارم و همه Assemblyها مورد نیاز در داخل سورس کنترل اضافه کنم.&lt;br /&gt;&lt;br /&gt;۵- مشکل بعدی مربوط به build target در یکی از Agentها بود. اول فکر کردم مشکل به خاطر نصب نبودن MVC 3 (پروژه مورد استفاده ما MVC 3 است) در agent است. اما متوجه شدم آنجام MVC 3 نصب هست و احتمالا مشکل از نصب نبودن Visual Studio 2010 در آنجا است. به هر صورت تصمیم گرفتم کمی کثیف کاری کنم (راه بهتری پیدا نکردم) و فایل ‎.targets مربوطه به agent مشکل دار کپی کنم.&lt;br /&gt;&lt;br /&gt;۶- قدم بعدی انجام اتوماتیک Unit Testها بود. تنظیم آن محدود به یک Build Step ساده بود ولی در اولین قدم معرفی اسمبلی حاوی test کمی مشکل ایجاد کرد که با کمی سعی و خطا حل شد. اگر ساختار فولدر پروژه عوض شود باید آن را هم به روز رسانی کنم.&lt;br /&gt;&lt;br /&gt;۷- مشکل Unit Test محدود به مشکل قبلی نبود. در یکی Agentها که ۶۴ بیتی بود، Unit Testها Run نمی‌شدند. در Unit Testهای مورد اشاره، عملیات دیتابیسی با استفاده دیتابیس داخل حافظه‌ای SQLite تست می‌شد. یادم آمد که SQLite دو نسخه مجزا برای محیط‌های ۳۲ بیتی و ۶۴ بیتی دارد. باید راهی پیدا می‌کردم تا Testها هم در ماشین ۳۲ بیتی اجرا شوند و هم در ماشین ۶۴ بیتی. تازه ماشین‌های development هم همگی ۳۲ بیت بودند و نباید یکپارچگی را از دست می‌دادم. مناسب‌ترین راه حل این بود که در زمان اجرا (Run Time) تشخیص می‌دادم که محیط ۳۲ یا ۶۴ بیتی است و بعد اسمبلی متناظر را به application اضافه می‌کردم. این راه زیادی Low Level بود. یک راه دیگر استفاده از GAC بود. اما من نهایتاً یک راه ساده و کثیف را (اقلا موقتی) انتخاب کردم. نسخه ۶۴ بیتی SQLite را دستی در فولدر Work (مسیر خاص پروژه من) کپی کردم و مشکل حل شد. حالا کل سیستم ۳۲ بیت بود ولی آن Agent خاص برای انجام Unit Testها از نسخه ۶۴ بیت خودش استفاده می‌کرد.&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=OyVaQV4diAs:ElC5zjA91wI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=OyVaQV4diAs:ElC5zjA91wI:-LR1_4ybTb4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?i=OyVaQV4diAs:ElC5zjA91wI:-LR1_4ybTb4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.afsharm.com/2012/05/ci-automatic-unit-testing-teamcity.html</link><author>noreply@blogger.com (Afshar Mohebbi)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7752604992674614388.post-741260946007884224</guid><pubDate>Thu, 31 May 2012 09:26:00 +0000</pubDate><atom:updated>2012-05-31T13:59:11.842+04:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">Sharp Arch</category><category domain="http://www.blogger.com/atom/ns#">Unit Test</category><title>‫‫‫Database Unit Testing در Sharp Arch.‎</title><description>&lt;div style="direction: rtl; text-align: right;"&gt;
&lt;br /&gt;
&lt;br /&gt;
یکی از روش‌های رایج در Unit Test کدهای مربوط به دیتابیس این است که یک دیتابیس داخل حافظه‌ای ساخته شده و همه تست‌ها روی آن انجام شود. در پروژه‌های NHibernate این کار معمولا طی مراحل زیر انجام می‌شود:&lt;br /&gt;
&lt;br /&gt;
۱- انجام تنظیمات دیتابیس Sqlite به صورت داخل حافظه‌ای&lt;br /&gt;
۲- ایجاد خودکار دیتابیس از روی mappingها در مرحله Setup تست واحد&lt;br /&gt;
۳- ایجاد/تزریق داده‌های امتحانی مورد نیاز در ادامه مرحله قبل&lt;br /&gt;
۴- انجام unit test مورد نظر&lt;br /&gt;
&lt;br /&gt;
در پروژه‌های قبلی، مرحله ایجاد دیتابیس و تنظیمات session را به طور کاملا دستی انجام می‌دادیم اما از وقتی که از Sharp Arch. استفاده می‌کنیم می‌توان از روش‌های ساده‌تری استفاده کرد. مراحل انجام کار:&lt;br /&gt;
&lt;br /&gt;
۱- ایجاد ارجاع به SharpArch.Tests&lt;br /&gt;
۲- ارث بری همه testها از RepositoryTestsBase&lt;br /&gt;
۳- initialization اولیه Service Locator در Setup تست&lt;br /&gt;
۴- انجام تست‌های مورد نظر&lt;br /&gt;
&lt;br /&gt;
یک نمونه تست را در ادامه می‌بینیم:&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="direction: ltr; text-align: left;"&gt;
&lt;pre class="brush:csharp"&gt;using ProjectName.Domain;
using ProjectName.Domain.Contracts.Tasks;
using ProjectName.Infrastructure.Repositories;
using ProjectName.Tasks;
using Castle.MicroKernel.Registration;
using Castle.Windsor;
using CommonServiceLocator.WindsorAdapter;
using Microsoft.Practices.ServiceLocation;
using NUnit.Framework;
using SharpArch.Domain.PersistenceSupport;
using SharpArch.NHibernate;
using SharpArch.Testing.NUnit.NHibernate;

namespace ProjectName.Tests
{
    [TestFixture]
    public class SimpleEntityTaskTest : RepositoryTestsBase
    {
        private readonly ISimpleEntityTask _simpleEntityTask;

        public SimpleEntityTaskTest(ISimpleEntityTask simpleEntityTask)
        {
            _simpleEntityTask = simpleEntityTask;
        }

        [SetUp]
        protected override void SetUp()
        {
            ServiceLocatorInitializer.Init();
            base.SetUp();
        }

        protected override void LoadTestData()
        {
            //load test data
        }

        [Test]
        public void FindAll()
        {
            Assert.AreEqual(0, _simpleEntityTask.FindAll().Count);
        }
    }
}
&lt;/pre&gt;
&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=e5giLAFqIb4:U50EDciGcRQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=e5giLAFqIb4:U50EDciGcRQ:-LR1_4ybTb4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?i=e5giLAFqIb4:U50EDciGcRQ:-LR1_4ybTb4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.afsharm.com/2012/05/database-unit-testing-sharp-arch.html</link><author>noreply@blogger.com (Afshar Mohebbi)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7752604992674614388.post-5826300063396522189</guid><pubDate>Wed, 02 May 2012 06:59:00 +0000</pubDate><atom:updated>2012-05-02T11:29:26.480+04:30</atom:updated><title>‫Authentication با استفاده Windows</title><description>&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 10pt"&gt;&lt;div style="direction: rtl; text-align: right;"&gt;  در پروژه&amp;zwnj;های ASP.NET وقتی که نیاز به Authentication/Authorization (ورود و خروج به سایت و سطح دسترسی&amp;zwnj;ها) هست معمولاً از Form Authentication استفاده می&amp;zwnj;شود. در این روش یا از Provider توکار ASP.NET استفاده می&amp;zwnj;شود یا یک Provider سفارشی مثل SqliteProvider ساخته می&amp;zwnj;شود.&lt;br /&gt;  &lt;br /&gt;  اما گاهی اوقات هست که هم عجله داریم و هم این که کاربران سایت در حد دو سه نفر بوده و اتفاقاً آن دو سه نفر هم در سیستم کاربری ویندوز سرور کاربر تعریف شده دارند. این طور وقت&amp;zwnj;ها می&amp;zwnj;توان از یک راه خیلی سریع رفت. در این راه خیلی سریع نیاز به اضافه کردن صفحات login به سیستم و تعریف دسترسی&amp;zwnj;ها در Controllerها یا web.configهای فرعی وجود ندارد. فقط فایل web.config است که تغییراتی می&amp;zwnj;کند.&lt;br /&gt;  &lt;br /&gt;  تغییرات web.config عبارتند از:&lt;br /&gt;  &lt;br /&gt;  ۱- استفاده از حالت Windows در authentication &lt;br /&gt;  ۲- اضافه کردن نود کامل location به طوری که مسیرها و نام کاربری&amp;zwnj;های دلخواه در آن تعریف شده باشد.&lt;br /&gt;  ۳- اضافه کردن locationهای دیگر برای کنترل دسترسی به urlها مختلف سایت.&lt;br /&gt;  &lt;br /&gt;  &lt;/div&gt;&lt;/span&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=WbLg4DDyA5E:urGrLCTGYuE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=WbLg4DDyA5E:urGrLCTGYuE:-LR1_4ybTb4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?i=WbLg4DDyA5E:urGrLCTGYuE:-LR1_4ybTb4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.afsharm.com/2012/05/authentication-windows.html</link><author>noreply@blogger.com (Afshar Mohebbi)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7752604992674614388.post-7581751004404200566</guid><pubDate>Mon, 16 Apr 2012 06:38:00 +0000</pubDate><atom:updated>2012-04-16T11:08:49.977+04:30</atom:updated><title>افشای اطلاعات بانکی و قصورات ما</title><description>&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 10pt"&gt;&lt;div style="direction: rtl; text-align: right;"&gt; در شرایطی که بیش از پیش نیاز به اعتماد سازی کاربران و جلب اطمینان عموم مردم داریم (به عنوان دست اندرکاران و مبلغان کامپیوتر، نرم&amp;zwnj;افزار و اینترنت)، رمز سه میلیون کارت بانکی افشا می&amp;zwnj;شود. حالا چطور می&amp;zwnj;توان به مردم کوچه و خیابان و چه بسا هر آدم غیر کامپیوتری دیگری اثبات کرد که استفاده از خدمات اینترنتی و الکترونیکی باعث سهولت در زندگی، صرفه جویی در وقت، دقت بالا در انجام کارها، کاهش هزینه&amp;zwnj;های جانبی، کاهش ترافیک، حفظ محیط زیست، عدالت اجتماعی و غیره می&amp;zwnj;شود؟ چطور می&amp;zwnj;توان به همه این آدم&amp;zwnj;ها توضیح داد که این کار هک و نفوذ به سیستم نبوده بلکه یک کارمند داخلی که دسترسی قانونی به اطلاعات داشته این کار را کرده و این کار در هر جای غیر کامپیوتری دیگری قابل تکرار است. مثلا کارمند ناراضی ثبت احوال، دفاتر ثبت و حتی کارمند دفتری یک مدرسه هم می&amp;zwnj;تواند اطلاعات دم دستش را به سادگی افشا کند حتی اگر اطلاعات صرفا روی کاغذ ثبت شده باشد؟&lt;br /&gt; &lt;br /&gt; البته شکی نیست که پشت قضیه افشای اطلاعات توسط این شخص (با هر نیتی که بوده) امنیت پایین اطلاعات هم قرار داشته است. یعنی اگر امنیت به اندازه کافی بود امکان افشای آنها توسط حتی یک کارمند داخلی هم به حداقل می&amp;zwnj;رسید. شخص افشا کننده اطلاعات (کارمند یکی از شرکت&amp;zwnj;های دست اندرکار امور بانکی) هم به راست یا دروغ مدعی بوده که با قصد اطلاع رسانی به عموم مردم راجع به پایین بودن امنیت اقدام به افشای اطلاعات کرده. &lt;br /&gt; &lt;br /&gt; آیا این آخرین باری است که چنین اتفاقی خواهد افتاد؟ اگر همه دنیا فکر کنند که این آخرین بار است که چنین اتفاقی می&amp;zwnj;افتد اما ما برنامه&amp;zwnj;نویسان، کامپیوتری&amp;zwnj;ها، اینترنتی&amp;zwnj;ها و خصوصاً کارمندان بخش پشتیبانی شرکت&amp;zwnj;ها می&amp;zwnj;دانیم که این آخرین بار نیست و حتی این که امکان تکرار آن بسیار هم بالاست. چرا؟ چون که:&lt;br /&gt; &lt;br /&gt; ۱- طراحان نرم&amp;zwnj;افزار خیلی کم به فکر Hash کردن یکطرفه (روشی برای رمز نگاری) اطلاعات مهم خصوصاً کلمه عبور، کد ملی، شماره شناسنامه، کارت بانکی و غیره هستند. این یعنی این که اگر دیتابیس به دست آدم نامربوطی برسد در عرض چند دقیقه تمام اطلاعات افراد به سادگی آب خوردن لو خواهد رفت. دسترسی به دیتابیس هم برای یک کارمند داخلی کار چندان سختی حساب نمی&amp;zwnj;شود.&lt;br /&gt; &lt;br /&gt; ۲- معمولا به خاطر ضعف در روش&amp;zwnj;های تست و پشتیبانی، برای آن که یک شرکت پیمانکار بتواند به شرکت کارفرما پشتیبانی نرم&amp;zwnj;افزاری بدهد همه بانک اطلاعاتی آنها را درخواست می&amp;zwnj;کند. اگر مدتی سابقه حضور در یک واحد پشتیبانی را داشته&amp;zwnj;اید حتماً با چشمان خودتان نسخه&amp;zwnj;های مختلف اطلاعات مشتری را در جای جای شبکه، سی&amp;zwnj;دی&amp;zwnj;ها و کامپیوترها بدون هیچ حفاظ و کنترلی دیده&amp;zwnj;اید. اصلاً اگر ایمیل کارمندان پشتیبانی و برنامه&amp;zwnj;نویسی یک شرکت نوعی کامپیوتری را ببنید پر است از اطلاعات حساس مشتریان.&lt;br /&gt; &lt;br /&gt; ۳- بین کاربران ایرانی، چه امور بانکی چه امور غیر بانکی ساده انگاری وحشتناکی در استفاده از رمز عبور وجود دارد. همه رمز همدیگر را می&amp;zwnj;دانند، رمزها سه سال یکبار هم عوض نمی&amp;zwnj;شوند، رمزها بیش از حد ساده و کوتاه هستند و&amp;hellip;&lt;br /&gt; &lt;br /&gt; ۴- استفاده ار پروتکل&amp;zwnj;های امن مثل https در بانکداری الکترونیک و تجارت الکترونیک بنا به دلایلی مثل ممنوعیت&amp;zwnj;های داخلی و تحریم&amp;zwnj;های خارجی بسیار سخت شده است. اگر در حال login به یک وب&amp;zwnj;سایت بدون https هستید، اگر در حال وارد کردن رمز و اطلاعات بانکی خود از تلفن بانک هستید، اگر کلمه عبور یک نرم&amp;zwnj;افزار را از طریق SMS برای کسی می&amp;zwnj;فرستید و&amp;hellip; مطمئن باشید که هر کس دیگری که در فاصله بین شما تا مقصد قرار دارد از جمله همکاران شما در شرکت یا اداره، کارمندان واحد IT، کارمندان شرکت ارائه دهنده اینترنت، کارمندان شرکت تامین کننده فضای اینترنتی و غیره و غیره به اطلاعات شما دسترسی کامل و ساده دارند. فکر نکنید که برای سرقت اطلاعات نیاز به نخبه بودن هست. بلکه ابزارهای زیادی برای این طور کارها وجود دارند که یک فرد اول دبیرستان هم می&amp;zwnj;تواند با کمک آنها هر کاری بکند.&lt;br /&gt; &lt;br /&gt; ۵- استخدام&amp;zwnj;ها و واگذاری پروژه&amp;zwnj;ها به شرکت&amp;zwnj;ها گاهی اوقات بر اساس روابط پسرخالگی، همشهری&amp;zwnj;گری، رفاقتی، همسو بودن گرایشات (...) و غیره انجام می&amp;zwnj;شود. اثر این موضوع خیلی واضح است.&lt;br /&gt; &lt;/div&gt;&lt;/span&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=wvjY9Snbr2o:FkuIODeYYVA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=wvjY9Snbr2o:FkuIODeYYVA:-LR1_4ybTb4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?i=wvjY9Snbr2o:FkuIODeYYVA:-LR1_4ybTb4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.afsharm.com/2012/04/blog-post.html</link><author>noreply@blogger.com (Afshar Mohebbi)</author><thr:total>8</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7752604992674614388.post-3045322805688294220</guid><pubDate>Mon, 02 Apr 2012 06:39:00 +0000</pubDate><atom:updated>2012-04-02T11:09:25.746+04:30</atom:updated><title>‫دانلود برنامه‌های اندروید از Android Market</title><description>&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 10pt"&gt;&lt;div style="direction: rtl; text-align: right;"&gt; برای دریافت یک نرم&amp;zwnj;افزار اندرویدی باید از Android Market که جدیداً به Google Play منتقل شده است استفاده کرد. انجام این کار بایستی از طریق خود گوشی یا Device انجام پذیرد. اما متاسفانه به دلیل تحریم&amp;zwnj;های آمریکایی و محدودیت&amp;zwnj;های اینترنت ایران، انجام این کار به سادگی امکان پذیر نیست.&lt;br /&gt; &lt;br /&gt; دو تا از راه&amp;zwnj;های جایگزین می&amp;zwnj;توانند خرید DVDهای نرم&amp;zwnj;افزارهای اندروید از فروشندگان موبایل مثل پاساژ علا الدین یا استفاده از نرم&amp;zwnj;افزار و سایت ایرانی &lt;a href="http://getbazaar.com/fa/"&gt;&amp;laquo;بازار&amp;raquo;&lt;/a&gt; باشد. مشکل این دو راه حل این است که همیشه به روز نیستند و نمی&amp;zwnj;شود همه چیز را هم در آنها پیدا کرد. به سایت&amp;zwnj;های خارجی هم خیلی نمی&amp;zwnj;شود امیدوار بود. برنامه&amp;zwnj;های اندروید را تقریباً از هیچ جایی به جز Android Market (جدیداً Google Play) نمی&amp;zwnj;توان دریافت کرد. اما برای غلبه بر این مشکلات می&amp;zwnj;توان از یک افزونه Chrome به نام &lt;a href="http://codekiem.com/2012/02/24/apk-downloader/"&gt;APK Downloader&lt;/a&gt; استفاده کرد. بعد از نصب و کمی دستکاری می&amp;zwnj;توان به سایت Google Play رفته و همه Applicationهای رایگان را دانلود کرد. &lt;/div&gt;&lt;/span&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=GHbZvCMrEpM:z5LtnMZtFaU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=GHbZvCMrEpM:z5LtnMZtFaU:-LR1_4ybTb4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?i=GHbZvCMrEpM:z5LtnMZtFaU:-LR1_4ybTb4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.afsharm.com/2012/04/android-market.html</link><author>noreply@blogger.com (Afshar Mohebbi)</author><thr:total>6</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7752604992674614388.post-2606236755757181079</guid><pubDate>Sat, 31 Mar 2012 18:41:00 +0000</pubDate><atom:updated>2012-03-31T23:12:16.853+04:30</atom:updated><title>‫سعی در فهم VoIP</title><description>&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 10pt"&gt;&lt;div style="direction: rtl; text-align: right;"&gt; POTS&lt;br /&gt; سیستم&amp;zwnj;های تلفنی سنتی. گاهی اوقات هم PSTN نامیده می&amp;zwnj;شود.&lt;br /&gt; &lt;br /&gt; FXS&lt;br /&gt; در سیستم&amp;zwnj;های تلفن سنتی (POTS) به پریز دیواری گفته می&amp;zwnj;شود.&lt;br /&gt; &lt;br /&gt; FXO&lt;br /&gt; در سیستم&amp;zwnj;های تلفن سنتی (POTS) به سوکتی گفته می&amp;zwnj;شود که روی تلفن وجود دارد و خط تلفن به آن وصل می&amp;zwnj;شود.&lt;br /&gt; &lt;br /&gt; PBX&lt;br /&gt; در ایران به آن سانترال یا تلفن داخلی گفته می&amp;zwnj;شود. یک PBX هم FXS دارد هم FXO.&lt;br /&gt; &lt;br /&gt; FXO Gateway&lt;br /&gt; به Gateway گفته می&amp;zwnj;شود که خطوط تلفن سنتی را به سیستم تلفنی مبتنی بر IP متصل می&amp;zwnj;کند. مودم&amp;zwnj;های معمولی کامپیوترها که برای اینترنت Dial Up استفاده می&amp;zwnj;شدند را با شرط و شروطی می&amp;zwnj;توان به جای یک FXO استفاده کرد. اما به دردسر آن نمی&amp;zwnj;ارزد.&lt;br /&gt; &lt;br /&gt; FXS Gateway&lt;br /&gt; به Gateway گفته می&amp;zwnj;شود که تلفن&amp;zwnj;های سنتی را به به سیستم تلفنی مبتنی بر IP متصل می&amp;zwnj;کند.&lt;br /&gt; &lt;br /&gt; FXS Adapter&lt;br /&gt; مشابه FXS Gateway است اما برای فقط یک خط استفاده می&amp;zwnj;شود در حالی که Gateway در مقیاس بزرگتری استفاده می&amp;zwnj;شود و برای اتصال همه خطوط یک سانترال عمل می&amp;zwnj;کند. نام دیگر FXS Adapter همان ATA است.&lt;br /&gt; &lt;br /&gt; SIP&lt;br /&gt; نام یکی از پروتکل&amp;zwnj;های مهم VoIP است.&lt;br /&gt; &lt;br /&gt; IVR&lt;br /&gt; در ایران به آن تلفن گویا گفته می&amp;zwnj;شود. مشابه تلفن بانک است.&lt;br /&gt; &lt;br /&gt; VoIP Provider&lt;br /&gt; در برخی کشورهای دیگر مثل آمریکا به شرکت&amp;zwnj;هایی گفته می&amp;zwnj;شود که به مردم سرویس VoIP می&amp;zwnj;دهند. به نظر می&amp;zwnj;رسد که آنها یک شماره VoIP به مشترک خود اختصاص می&amp;zwnj;دهند و مشترک هم می&amp;zwnj;توانند با دیگران مشترکین حتی در فواصل بسیار دور هم با هزینه کم صحبت نماید.&lt;br /&gt; &lt;br /&gt; Asterisk و 3CX&lt;br /&gt; نام دو تا از VoIP Serverهای معروف است. اولی کد باز و رایگان است و مخصوص لینوکس. دومی پولی است و مخصوص ویندوز&lt;br /&gt; &lt;br /&gt; VoIP در بعضی کشورها مثل امارات ممنوع است. نمی&amp;zwnj;دانم وضعیت در ایران چطور است. مثلا آیا پروتکل&amp;zwnj;های مربوطه باز است یا بسته.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; منابع:&lt;br /&gt; &lt;ul&gt;     &lt;li&gt;     http://www.3cx.com/PBX/FXS-FXO.html&lt;/li&gt;     &lt;li&gt;http://en.wikipedia.org/wiki/Comparison_of_VoIP_software&lt;/li&gt;     &lt;li&gt;http://en.wikipedia.org/wiki/Voice_over_IP&lt;/li&gt; &lt;/ul&gt; &lt;br /&gt; &lt;/div&gt;&lt;/span&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=b3oCAe69tq8:PdUAq_4y81c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=b3oCAe69tq8:PdUAq_4y81c:-LR1_4ybTb4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?i=b3oCAe69tq8:PdUAq_4y81c:-LR1_4ybTb4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.afsharm.com/2012/03/voip.html</link><author>noreply@blogger.com (Afshar Mohebbi)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7752604992674614388.post-8466427977899435748</guid><pubDate>Wed, 28 Mar 2012 20:28:00 +0000</pubDate><atom:updated>2012-03-29T00:58:24.656+04:30</atom:updated><title>چرا از فناپ استعفا دادم؟</title><description>&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 10pt"&gt;&lt;div style="direction: rtl; text-align: right;"&gt; با خودم قرار گذاشته بودم هر وقت که از هر شرکتی بیرون آمدم نقدی منصفانه از آنجا داشته باشم تا بلکه به درد بقیه دوستان هم بخورد. این کار را قبلاً در مورد &lt;a href="http://blog.afsharm.com/2010/06/goodbye-faraconesh.html"&gt;فراکنش&lt;/a&gt; و &lt;a href="http://blog.afsharm.com/2011/07/blog-post.html"&gt;پرشیا شبکه&lt;/a&gt; انجام داده بودم و حالا می&amp;zwnj;خواهم نقدی داشته باشم بر ۸ ماه کار تمام وقت در فناپ و مسائلی که منجر به استعفای من شد. قبل از هر چیز باید ذکر کنم که اواخر کار من در فناپ و نحوه قطع همکاری با فناپ و حتی مسائل بعد از آن به صورت ناخوشایندی اتفاق افتادند و این قطعاً موجب شده نتوانم در این نقادی آنقدر که باید منصف و بیطرف باشم. از طرف دیگر فناپ و زیر مجموعه&amp;zwnj;های آن خیلی بزرگ هستند و این درست نیست که کسی صرفاً با تکیه به نظرات من راجع به کلیت فناپ قضاوت مثبت یا منفی داشته باشد. پس سعی می&amp;zwnj;کنم حتی&amp;zwnj;المقدور سربسته و کمرنگ بنویسم. اگر کسی واقعاً نیاز به اطلاعات دقیق&amp;zwnj;تری نیاز داشت با ایمیل من تماس بگیرد.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;a href="http://fanap.ir"&gt;فناپ&lt;/a&gt; یک شرکت بزرگ در زمینه نرم&amp;zwnj;افزارهای بانکی و غیر بانکی، شبکه و دیگر امور فنی است. عمده معروفیت فناپ در دنیای تجاری به خاطر توان انجام پروژه آن در حوزه ICT و در دنیای برنامه&amp;zwnj;نویس&amp;zwnj;ها به خاطر تیم جاوایی Core Banking آن (تیمی که وظیفه نوشتن و نگهداری از معروف&amp;zwnj;ترین نرم&amp;zwnj;افزار فناپ یعنی نرم&amp;zwnj;افزار بانکی آن را بر عهده دارد) و غلظت آکادمیک مدیران و کارمندان آن است (بسیاری از مدیران و کارمندان فناپ فارغ&amp;zwnj;التحصیلان ممتاز دانشگاه&amp;zwnj;های برتر کشور از جمله شریف و تهران هستند). فناپ متعلق به بانک پاسارگاد است و در دو ساختمان اصلی مطهری و میرداماد مستقر است. فناپ دارای واحدهای داخلی و شرکت&amp;zwnj;های اقماری متعددی است. فناپ را (در زمینه Business) با همین سابقه کم می&amp;zwnj;توان رقیب و هم تراز شرکت&amp;zwnj;های معروفی مثل خدمات انفورماتیک، داده پردازی و کیش ویر دانست.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; اواخر کار در شرکت قبلی پیشنهاد همکاری با فناپ را از یکی از دوستان قدیمی دریافت کرده بودم. اهدافم از کار در فناپ عبارت بودند از:&lt;br /&gt; &lt;br /&gt; ۱- همکاری در پروژه&amp;zwnj;های خیلی بزرگ (Enterprise) و هیجان ناشی از آن.&lt;br /&gt; ۲- ارتقا شغلی و افزایش قدرت مدیریتی چه در سطوح انتخاب و چینش تیم، چه در سطوح انتخاب روش و فناوری و چه در بقیه سطوح.&lt;br /&gt; ۳- ماندگاری چند ساله، تمرکز طولانی مدت بر روی یک نوع کار مشخص و مزایای شغلی بهتر.&lt;br /&gt; ۴- افزایش رضایت شغلی ناشی از کار با افراد حرفه&amp;zwnj;ای، با تجربه و به روز در زمینه توسعه نرم&amp;zwnj;افزار.&lt;br /&gt; ۵- خوش رزومه بودن فناپ&lt;br /&gt; &lt;br /&gt; در اثر همین تصورات، اوایل شروع کار در فناپ انگیزه خیلی شدیدی برای کار داشتم اما به دلایلی که در ادامه به آنها خواهم پرداخت این انگیزه&amp;zwnj;ها آرام آرام از بین رفتند و کم کم جایشان را به ضد انگیزه&amp;zwnj;هایی دادند که تحمل هر ساعت حضور در فناپ را برای من عذاب&amp;zwnj;آور کرده بود.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; از مهم&amp;zwnj;ترین عواملی که باعث نارضایتی من از فناپ شده بود می&amp;zwnj;توان به موارد زیر اشاره کرد:&lt;br /&gt; &lt;br /&gt; ۱- بی&amp;zwnj;نظمی و کم تعهدی در امور قرارداد، پرداخت&amp;zwnj;ها، بیمه و&amp;hellip;&lt;br /&gt; ۲- عدم برداشت یکسان از مفاهیم اصلی مثل برنامه&amp;zwnj;نویسی، فناوری، تست و&amp;hellip;&lt;br /&gt; ۳- عدم امکان استفاده صحیح از تجارب شخصی در برنامه&amp;zwnj;نویسی و مدیریت پروژه.&lt;br /&gt; ۴- محیط بسیار پر نویز و نا آرام که به شدت کارایی تیم برنامه&amp;zwnj;نویسی را پایین آورده بود.&lt;br /&gt; ۵- جو نیروی انسانی بیشتر گرایش داشت به رفتارهای رایج در ادارات دولتی تا شرکت&amp;zwnj;های خصوصی.&lt;br /&gt; ۶- نوسانات در اولویت کارها.&lt;br /&gt; ۷- مدیرانی که همیشه در جلسه بودند و امکان صحبت با آنها به سختی فراهم می&amp;zwnj;شد.&lt;br /&gt; ۸- فشار غیر معمول در ساعات شروع و پایان کار و موارد مشابه.&lt;br /&gt; ۹- میل شخصی خودم نسبت به راه اندازی Business جدیدی که گرداننده و مالک آن خودم باشم.&lt;br /&gt; &lt;br /&gt; مسلماً مدیران فناپ هم توضیحاتی برای این مسائل داشتند. اول این که تیمی که من با آنها کار می&amp;zwnj;کردم علیرغم استقرار در ساختمان فناپ، یک شرکت زیر مجموعه فناپ محسوب می&amp;zwnj;شد. به عبارت دیگر از لحاظ حقوقی من کارمند یکی از شرکت&amp;zwnj;های اقماری فناپ بودم نه کارمند خود فناپ. به نظر مدیران فناپ، عمده شکایات من مربوط می&amp;zwnj;شد به این که شرکت اقماری فوق&amp;zwnj;الذکر در حال انحلال و جذب در خود فناپ بود و کارهای اداری و بوروکراسی ناشی از آن باعث این همه تاخیر، بی&amp;zwnj;نظمی و نارضایتی شده بود. دوم این که فناپی&amp;zwnj;ها همیشه مدعی بودند که شرایط بد مورد ذکر من دائمی نیست و باید به چشم یک دوره گذار به آن نگاه کرد.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; حالا (فروردین ۱۳۹۱) که این مطلب را می&amp;zwnj;نویسم بیش از سه ماه از خروج من از فناپ گذشته است. طی این مدت منتظر تسویه حساب کامل بودم تا بتوانم نظری کلی راجع به روند همکاری با فناپ داشته باشم. همکاری با فناپ با همه مشکلاتی که برای شخص من و طبیعتاً مدیران من داشت، اما تجارب جالب و دوستان خوبی هم به همراه داشت. همینجا از همه دوستانم در فناپ، از جمله مجید، امیر علی (عباس)، مسعود، خانم قیصری، رضا، کیکاووس (علیرضا)، مهدی، داوود، آرش و بقیه به خاطر تحمل رفتارهای شاکیانه من در چند هفته آخر عذرخواهی کرده و روزهای خوبی را برای آنها آرزو دارم.&lt;br /&gt; &lt;br /&gt; بعد از فناپ در هیچ شرکت دیگری استخدام نشدم بلکه کار جدید خودم را با همکاری تعدادی از دوستان جدید و پر انگیزه و راه اندازی &amp;laquo;فردا پرداز&amp;raquo; شروع کردم. برای کسب اطلاعات بیشتر به &lt;a href="http://fardapardaz.com/"&gt;وب&amp;zwnj;سایت فردا پرداز&lt;/a&gt;، &lt;a href="http://fardapardaz.com/blogs/fp"&gt;وبلاگ رسمی آن&lt;/a&gt; یا دیگر وبلاگ&amp;zwnj;های آن از جمله &lt;a href="http://fardapardaz.com/blogs/pelikan"&gt;وبلاگ پلیکان&lt;/a&gt; مراجعه کنید.&lt;br /&gt; &lt;/div&gt;&lt;/span&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=yosUhsSmkuQ:WfaGqNjfOLg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=yosUhsSmkuQ:WfaGqNjfOLg:-LR1_4ybTb4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?i=yosUhsSmkuQ:WfaGqNjfOLg:-LR1_4ybTb4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.afsharm.com/2012/03/blog-post.html</link><author>noreply@blogger.com (Afshar Mohebbi)</author><thr:total>15</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7752604992674614388.post-8199459800149540368</guid><pubDate>Fri, 24 Feb 2012 21:59:00 +0000</pubDate><atom:updated>2012-02-25T01:49:51.839+03:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">FardaPardaz</category><category domain="http://www.blogger.com/atom/ns#">Declarative Programming</category><category domain="http://www.blogger.com/atom/ns#">Blog</category><title>وبلاگ جدید در زمینه برنامه‌نویسی</title><description>&lt;span style="font-family: Arial,Helvetica,sans-serif; font-size: 10pt;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="direction: rtl; text-align: right;"&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif; font-size: 10pt;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial,Helvetica,sans-serif; font-size: 10pt;"&gt;پس از راه اندازی &lt;a href="http://fardapardaz.com/"&gt;«مجموعه فردا پرداز» &lt;/a&gt;که به زودی به یک شخصیت حقوقی تبدیل خواهد شد تصمیم گرفتم &lt;a href="http://fardapardaz.com/blogs.html"&gt;سیستم وبلاگ‌های آن &lt;/a&gt;را راه‌اندازی کنم تا همکاران &lt;a href="http://fardapardaz.com/"&gt;«فردا پرداز»&lt;/a&gt; بتوانند در آنجا از تجارب خود در&lt;a href="http://fardapardaz.com/"&gt; «فردا پرداز» &lt;/a&gt;بنویسند. از آنجا که خودم هم از همکاران&lt;a href="http://fardapardaz.com/"&gt; «فردا پرداز» &lt;/a&gt;محسوب می‌شوم یک وبلاگ فنی در آنجا راه انداخته‌ام به نام &lt;a href="http://fardapardaz.com/blogs/mohebbi"&gt;«محبی | نوشته‌های فنی افشار محبی در فردا پرداز»&lt;/a&gt;. وبلاگ فردا پرداز من از نظر محتوا با این وبلاگ هم راستا است. یعنی هر دو راجع به برنامه‌نویسی و مسائل مرتبط هستند ولی هر دو وبلاگ کاملاً از هم مستقل بوده و قرار نیست فعالیت یکی، آن یکی دیگر را تعطیل کند. فعلاً به نوشتن در هر دوی این وبلاگ‌ها ادامه می‌دهم. &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial,Helvetica,sans-serif; font-size: 10pt;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial,Helvetica,sans-serif; font-size: 10pt;"&gt;آدرس وبلاگ فردا پرداز من &lt;a href="http://fardapardaz.com/blogs/mohebbi"&gt;http://fardapardaz.com/blogs/mohebbi&lt;/a&gt; و آدرس فید (خوراک) آن &lt;a href="http://fardapardaz.com/blogs/mohebbi/default.aspx/syndication.axd"&gt;http://fardapardaz.com/blogs/mohebbi/default.aspx/syndication.axd&lt;/a&gt; است. در ضمن فهرست کامل وبلاگ‌های فردا پرداز در &lt;a href="http://fardapardaz.com/blogs.html"&gt;این آدرس &lt;/a&gt;قرار دارد.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial,Helvetica,sans-serif; font-size: 10pt;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=tH5yB3OIM9w:c6pCWLIs84o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=tH5yB3OIM9w:c6pCWLIs84o:-LR1_4ybTb4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?i=tH5yB3OIM9w:c6pCWLIs84o:-LR1_4ybTb4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.afsharm.com/2012/02/blog-post_25.html</link><author>noreply@blogger.com (Afshar Mohebbi)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7752604992674614388.post-6296412739786891968</guid><pubDate>Mon, 20 Feb 2012 21:50:00 +0000</pubDate><atom:updated>2012-02-25T13:59:53.286+03:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">FardaPardaz</category><category domain="http://www.blogger.com/atom/ns#">careers</category><category domain="http://www.blogger.com/atom/ns#">Job</category><title>جذب همکار برنامه‌نویس در فردا پرداز</title><description>&lt;span style="font-family: Arial,Helvetica,sans-serif; font-size: 10pt;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="direction: rtl; text-align: right;"&gt;&lt;div style="text-align: center;"&gt;.&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;.&lt;br /&gt;
&lt;span style="font-family: Arial,Helvetica,sans-serif; font-size: 10pt;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif; font-size: 10pt;"&gt;در گروه &lt;a href="http://fardapardaz.com/"&gt;«فردا پرداز»&lt;/a&gt; به تعدادی برنامه‌نویس با انگیزه، به روز، با پشتکار و خلاق در حوزه فناوری‌های نوین دات‌نت نیازمندیم. محل فعالیت تهران - سعادت آباد می‌باشد اما تحت شرایطی امکان همکاری به صورت دور کاری (مقیم در شهری غیر از تهران) هم فراهم می‌باشد. لطفاً جهت ارسال رزومه از ایمیل jobs روی دامنه FardaPardaz.com استفاده کنید. لطفاً قبل از ارسال رزمه &lt;a href="http://fardapardaz.com/careers-developers.html" target="_blank"&gt;اینجا &lt;/a&gt;را ببینید.&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif; font-size: 10pt;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial,Helvetica,sans-serif; font-size: 10pt;"&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial,Helvetica,sans-serif; font-size: 10pt;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=rc2wItHGOVQ:YdI7W42Ipa4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=rc2wItHGOVQ:YdI7W42Ipa4:-LR1_4ybTb4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?i=rc2wItHGOVQ:YdI7W42Ipa4:-LR1_4ybTb4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.afsharm.com/2012/02/blog-post.html</link><author>noreply@blogger.com (Afshar Mohebbi)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7752604992674614388.post-7362402368573363836</guid><pubDate>Wed, 15 Feb 2012 06:42:00 +0000</pubDate><atom:updated>2012-02-15T15:18:43.713+03:30</atom:updated><title>‫مشکل Jira و مودم D-Link</title><description>&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 10pt"&gt;&lt;div style="direction: rtl; text-align: right;"&gt; جیرا را در سرور نصب کرده بودم و از طریق NAT یک مودم D-Link امکان دسترسی به بیرون را برای آن فراهم کرده بودم. از داخل هیچ مشکلی نداشت اما یکی از کاربران نمی&amp;zwnj;توانست از بیرون با جیرا کار کند. مورد را از طریق یک VPS چک کردم، از آنجا هم جیرا دیده نمی&amp;zwnj;شد. جیرا یک برنامه جاوایی است که توسط Application Server خودش host می&amp;zwnj;شود نه از طریق IIS. بنابراین باید پورت جداگانه&amp;zwnj;ای به آن اختصاص داده می&amp;zwnj;شد. پورت انتخابی من همان پورت پیش فرض یعنی 8080 بود. برای رفع مشکل مراحل مختلفی را دنبال کردم:&lt;br /&gt; &lt;br /&gt; ۱- در اولین مرحله به ISP شک کردم. بلافاصله تماس گرفتم و از آنها خواستم که باز بودن پورت 8080 را بررسی کنند. پورت باز بود. NATهای مختلفی را با کمک ISP امتحان کردیم. وقتی که فقط ۸۰۸۰ در NAT تعریف می&amp;zwnj;شد مشکلی وجود نداشت. وقتی که همه پورت&amp;zwnj;های ۱ تا ۶۵۵۳۵ هم در NAT باز می&amp;zwnj;شد باز هم مشکلی وجود نداشت. اما باز کردن پورت&amp;zwnj;های ۸۰ و ۸۰۸۰ به طور همزمان امکان پذیر نبود. مودم من که در اینجا نقش Router را بازی می&amp;zwnj;کرد یک خاصیت دارد که وقتی در NAT آن پورت ۸۰ باز شود اعلام می&amp;zwnj;کند که پورت وب داخلی به ۸۰۸۰ منتقل شد. در مورد FTP هم مورد مشابهی اتفاق می&amp;zwnj;&amp;zwnj;افتاد. این مورد می&amp;zwnj;توانست سر نخی باشد.&lt;br /&gt; &lt;br /&gt; ۲- در تنطیمات Router قسمتی وجود داشت به نام Acess Control Services. در آنجا اسم تعدادی سرویس فهرست شده بود. همه سرویس&amp;zwnj;ها را غیر فعال کردم. دسترسی به Router را برای همیشه از دست دادم ولی مشکل جیرا حل شد.&lt;br /&gt; &lt;br /&gt; ۳- به نمایندگی D-Link در ایران زنگ زدم گفتند راهی وجود ندارد که Web Server داخلی به پورت دیگری منتقل شود اما بهتر است از telnet استفاده کنید. مودم را مجددا تنظیم کردم و این به بار به جز سرویس telnet بقیه سرویس&amp;zwnj;های Acess Control Services را غیر فعال کردم. با telnet می&amp;zwnj;توانستم به Router وصل شوم. مقدار زیادی وقت گذاشتم ولی امکانات telnet آنقدر زیاد نبود که بتوانم NAT دیگری را تعریف کنم یا Acess Control Services را تغییر دهم.&lt;br /&gt; &lt;br /&gt; ۴- به عوض کردن پورت جیرا رضایت دادم. مودم را مجددا تنظیم کردم و در NAT آن گفتم که پورت ۸۰۹۰ بیرون به پورت ۸۰۸۰ داخل وصل شود. مشکل بیرون با استفاده از پورت جدید حل شد. اما از داخل نمی&amp;zwnj;توانستم با همان آدرس و پورت بیرون کار کنم. سعی کردم پورت خود جیرا را هم به پورت جدید تغییر دهم اما موفق نشدم.&lt;br /&gt; &lt;br /&gt; ۵- مجدداً به عدم دسترسی به مودم رضایت دادم. همه سرویس&amp;zwnj;ها به جز telnet را غیر فعال کردم. مشکل حل نشد. مودم را برای بار چندم مجددا تنظیم کردم و این بار همه سرویس&amp;zwnj;ها را غیر فعال کردم. اما بر خلاف دفعه اول مشکل جیرا حل نشد. اصلا نفهمیدم چرا.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; ۶- یک بار دیگر مودم را به طور معمولی تنظیم کردم. همه پورت&amp;zwnj;های ۱ تا ۶۵۵۳۵ را در NAT تعریف کردم و جیرا کار کرد. اما باز گذاشتن تمام پورت&amp;zwnj;ها اصلا راه عاقلانه&amp;zwnj;ای نبود. آنها را بستم.&lt;br /&gt; &lt;br /&gt; ۷- داشتم نا امیدانه به خرید یک Router درست و حسابی فکر می&amp;zwnj;کردم اما ضمن آن که می&amp;zwnj;&amp;zwnj;ترسیدم عین مشکل در آنجا هم وجود داشته باشد به سرم زد یک بار دیگر با تعریف NAT بازی کنم. با چند بار امتحان دیگر به این رسیدم که اول پورت ۸۰۸۰ را تعریف کنم و بعد پورت ۸۰ را. این روش در اولین قدم کار کرد. یعنی از بیرون هم پورت ۸۰ باز بود و هم پورت ۸۰۸۰. ترسیدم که با خاموش و روشن شدن مودم یا سرور دوباره به حالت اول برگردم. دو بار مودم را Boot کردم ولی هیچ چیزی از کار نیفتاد. بالاخره از کابوس ۸ صبح تا ۳ بعد از ظهر نجات پیدا کردم!&lt;br /&gt; &lt;br /&gt; نکته: اگر فقط از ابزارهای دات نتی به جای جیرا استفاده می&amp;zwnj;کردم مشکلات خیلی کمتری داشتم. حداقلش این بود که نیاز به پورت جدیدی غیر از پورت ۸۰ نبود و با IIS سالهاست که کار می&amp;zwnj;کنم. اما جیرا خیلی قدرتمندتر از آن است که بشود آن را به خاطر چنین مشکلاتی کنار گذاشت.&lt;br /&gt; &lt;br /&gt; &lt;/div&gt;&lt;/span&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=XOqpb297HXg:fdYkwZIIJGI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=XOqpb297HXg:fdYkwZIIJGI:-LR1_4ybTb4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?i=XOqpb297HXg:fdYkwZIIJGI:-LR1_4ybTb4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.afsharm.com/2012/02/jira-d-link.html</link><author>noreply@blogger.com (Afshar Mohebbi)</author><thr:total>6</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7752604992674614388.post-8150384973366885278</guid><pubDate>Wed, 08 Feb 2012 13:12:00 +0000</pubDate><atom:updated>2012-02-08T16:42:35.492+03:30</atom:updated><title>‫راه اندازی FTP با استفاده از Windows Server 2008 R2 و IIS 7.5</title><description>&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 10pt"&gt;&lt;div style="direction: rtl; text-align: right;"&gt; برای راه اندازی FTP در یک سرور معمولاً راهی غیر از IIS پیشنهاد می&amp;zwnj;شود به این دلیل که IIS مشکلات زیادی در این راه دارد. اما از آنجا که من به خاصیت Signle Sign On ارائه شده توسط Active Directory نیاز داشتم مجبور بودم راه IIS و ویندوز را انتخاب کنم. راه اندازی FTP با کمک IIS خیلی راحت است اما به شرطی که Firewall ویندوز را خاموش نگه دارید. به محض آن که فایروال روشن شود حتی اگر پورت&amp;zwnj;های ۲۰ و ۲۱ مستثنا شده باشند نمی&amp;zwnj;توان از FTP استفاده کرد. &lt;br /&gt; &lt;br /&gt; برای نصب FTP روی IIS و ویندوز ابتدا با فرض خاموش بودن فایروال جلو می&amp;zwnj;رویم و بعد از آن راه اندازی آن کامل شد می&amp;zwnj;گوییم که چه کاری باید انجام دهیم تا با روشن بودن فایروال باز هم FTP کار کند.&lt;br /&gt; &lt;br /&gt; ۱- در ویندوز سرور ۲۰۰۸ آر ۲ همه Roleهای مورد نیاز را فعال می&amp;zwnj;کنیم. Role اصلی همان وب سرور یا IIS است. با نگاهی به زیر آیتم&amp;zwnj;های آن می&amp;zwnj;توان به موارد مورد نیاز دیگر پی برد.&lt;br /&gt; &lt;br /&gt; ۲- برنامه IIS را باز کرده و روی مورد Sites راست کلیک کنید.&lt;br /&gt; &lt;br /&gt; ۳- گزینه Add FTP Site را می&amp;zwnj;زنید.&lt;br /&gt; &lt;br /&gt; ۴- گزینه No SSL را در مرحله بعدی انتخاب کنید.&lt;br /&gt; &lt;br /&gt; ۵- در مرحله بعد نوع Authentication را که قاعدتا Basic خواهد بود انتخاب کنید. Basic یعنی کاربران باید به هنگام استفاده از FTP Server نام کاربری و کلمه عبور تعریف شده خودشان را وارد کنند. این که چه کسی به چه فولدری چه دسترسی دارد چیزی است که برای کل سایت در اینجا و به ازای زیر شاخه&amp;zwnj;های آن بعدا به طور جداگانه تعریف می&amp;zwnj;شود. تعیین دسترسی&amp;zwnj;ها در اینجا با عنوان Authorization شناخته می&amp;zwnj;شود.&lt;br /&gt; &lt;br /&gt; ۶- بعد از این که مراحل نصب تمام شد می&amp;zwnj;توانید با کلیک روی هر کدام از شاخه&amp;zwnj;ها و سپس انتخاب گزینه FTP Authorization میزان دسترسی به هر کدام از شاخه&amp;zwnj;ها را تعیین کنید.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; در این مرحله FTP به خوبی کار می&amp;zwnj;کند و هیچ مشکل ندارد. اما با روشن شدن فایروال همه چیز از کار خواهد افتاد. در ادامه مراحل مورد نیاز برای تنظیم صحیح فایروال توضیح داده می&amp;zwnj;شود.&lt;br /&gt; &lt;br /&gt; ۷- فایروال را روشن کنید و پورت&amp;zwnj;های ۲۰ و ۲۱ را باز کنید. هیچ اتفاق خاصی نمی&amp;zwnj;افتد و از بیرون فایروال نمی&amp;zwnj;توان به FTP دسترسی داشت.&lt;br /&gt; &lt;br /&gt; ۸- در IIS روی FTP Server مربوطه کلیک کنید. &lt;br /&gt; &lt;br /&gt; ۹- گزینه FTP Firewall Support را انتخاب کنید.&lt;br /&gt; &lt;br /&gt; ۱۰- شما باید پورت&amp;zwnj;های دیگری غیر از پورت&amp;zwnj;های ۲۰ و ۲۱ را در فایروال باز کنید. اما کدام پورت&amp;zwnj;ها؟ گزینه Data Channel Port Range محدوده این پورت&amp;zwnj;ها را که به عنوان پورت دیتا معروفند را بر عهده دارد. اما گزینه بیشتر وقت&amp;zwnj;ها غیر فعال است و عدد 0-0 را نمایش می&amp;zwnj;دهد.&lt;br /&gt; &lt;br /&gt; ۱۱- عدد 0-0 یعنی از پورت&amp;zwnj;های پیش فرض برای عملیات موقتی TCP/IP که اصطلاحاً Ephermeral نامیده می&amp;zwnj;شود استفاده خواهد شد. این پورت&amp;zwnj;های موقتی در ویندوز سرور ۲۰۰۸ از پورت شماره ۴۹۱۵۲ شروع و تا ۶۵۵۳۵ ادامه دارند. این پورت&amp;zwnj;ها را در فایروال باز کرده و با خیال راحت از FTP استفاده کنید. جهت کسب اطلاعات بیشتر راجع به این پورت&amp;zwnj;ها به &lt;a href="http://www.iis.net/ConfigReference/system.ftpServer/firewallSupport"&gt;اینجا&lt;/a&gt; مراجعه کنید.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;/div&gt;&lt;/span&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=j5ndIp02fqA:ipkG1b2pGUg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=j5ndIp02fqA:ipkG1b2pGUg:-LR1_4ybTb4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?i=j5ndIp02fqA:ipkG1b2pGUg:-LR1_4ybTb4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.afsharm.com/2012/02/ftp-windows-server-2008-r2-iis-75.html</link><author>noreply@blogger.com (Afshar Mohebbi)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7752604992674614388.post-2606709522034954946</guid><pubDate>Tue, 07 Feb 2012 19:28:00 +0000</pubDate><atom:updated>2012-02-07T22:59:11.275+03:30</atom:updated><title>GitAspx Authorization</title><description>&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 10pt"&gt;As a git lover on Windows platform I am always searching for a way to set up a Windows git server. A perfect way is indeed SSH but setting it up on Windows is a really hard task. In addition to it I never succeeded to setup authorization with it. A user could access all git repositories once he has correct user/password.&lt;br /&gt; &lt;br /&gt; One of my favorite git servers in Windows is &lt;a href="http://github.com/JeremySkinner/git-dot-aspx"&gt;GitAspx&lt;/a&gt;. It is over simple HTTP and it has not very secured. It is also a bit slower than native git. But with all disadvantages it is very easy, handy and simple to install. GitAspx can be secured with IIS Basic Authentication. But by default has no obvious authorization. It's a long time that I'm searching for a way to define authorization on GitAspx. Fortunately I have found a way for it inspiring from a question in &lt;a href="http://stackoverflow.com/questions/7794773/iis7-5-how-to-prevent-prompt-for-credentials-when-folder-blocked-by-url-author"&gt;SO&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt; The solution is based on URL authorization in IIS 7.5. GitAspx has not physical folder for each git repo so you can not add a web.config to each folder and set authorization there. Here I used location node in web.config to allow/deny access to different git repositories. This is a sample web.config:&lt;br /&gt; &lt;br /&gt; &lt;pre class="brush:csharp"&gt; &lt;!--?xml version="1.0" encoding="utf-8"?--&gt; &lt;!--   For more information on how to configure your ASP.NET application, please visit   http://go.microsoft.com/fwlink/?LinkId=152368   --&gt; &lt;configuration&gt; &lt;appsettings&gt; &lt;add value="C:\Repo" key="RepositoriesDirectory"&gt; &lt;add value="true" key="ReceivePack"&gt; &lt;add value="true" key="UploadPack"&gt; &lt;/add&gt;&lt;/add&gt;&lt;/add&gt;&lt;/appsettings&gt; &lt;system.web&gt; &lt;compilation targetframework="4.0" debug="true"&gt; &lt;assemblies&gt; &lt;add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"&gt; &lt;add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"&gt; &lt;add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"&gt; &lt;/add&gt;&lt;/add&gt;&lt;/add&gt;&lt;/assemblies&gt; &lt;/compilation&gt; &lt;httpruntime maxrequestlength="1048576" executiontimeout="10000"&gt; &lt;authentication mode="None"&gt; &lt;forms timeout="2880" loginurl="~/Account/LogOn"&gt; &lt;/forms&gt; &lt;/authentication&gt; &lt;pages&gt; &lt;namespaces&gt; &lt;add namespace="System.Web.Mvc"&gt; &lt;add namespace="System.Web.Mvc.Ajax"&gt; &lt;add namespace="System.Web.Mvc.Html"&gt; &lt;add namespace="System.Web.Routing"&gt; &lt;/add&gt;&lt;/add&gt;&lt;/add&gt;&lt;/add&gt;&lt;/namespaces&gt; &lt;/pages&gt; &lt;/httpruntime&gt;&lt;/system.web&gt; &lt;system.webserver&gt; &lt;validation validateintegratedmodeconfiguration="false"&gt; &lt;modules runallmanagedmodulesforallrequests="true"&gt; &lt;security&gt; &lt;authorization&gt; &lt;remove users="*"&gt; &lt;add users="SuperUser" accesstype="Allow"&gt; &lt;/add&gt;&lt;/remove&gt;&lt;/authorization&gt; &lt;/security&gt; &lt;/modules&gt;&lt;/validation&gt;&lt;/system.webserver&gt; &lt;location path="FirstRepo.git"&gt; &lt;system.webserver&gt; &lt;security&gt; &lt;authorization&gt; &lt;remove users="*"&gt; &lt;add users="user1" accesstype="Allow"&gt; &lt;/add&gt;&lt;/remove&gt;&lt;/authorization&gt; &lt;/security&gt; &lt;/system.webserver&gt; &lt;/location&gt; &lt;location path="SecondRepo.git"&gt; &lt;system.webserver&gt; &lt;security&gt; &lt;authorization&gt; &lt;remove users="*"&gt; &lt;add users="user2" accesstype="Allow"&gt; &lt;/add&gt;&lt;/remove&gt;&lt;/authorization&gt; &lt;/security&gt; &lt;/system.webserver&gt; &lt;/location&gt; &lt;runtime&gt; &lt;assemblybinding xmlns="urn:schemas-microsoft-com:asm.v1"&gt; &lt;dependentassembly&gt; &lt;assemblyidentity publickeytoken="31bf3856ad364e35" name="System.Web.Mvc"&gt; &lt;bindingredirect newversion="2.0.0.0" oldversion="1.0.0.0"&gt; &lt;/bindingredirect&gt;&lt;/assemblyidentity&gt;&lt;/dependentassembly&gt; &lt;/assemblybinding&gt; &lt;/runtime&gt; &lt;/configuration&gt; &lt;/pre&gt;&lt;/span&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=OCF2HSgrZoE:WV1Vf-lvkC0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=OCF2HSgrZoE:WV1Vf-lvkC0:-LR1_4ybTb4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?i=OCF2HSgrZoE:WV1Vf-lvkC0:-LR1_4ybTb4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.afsharm.com/2012/02/gitaspx-authorization.html</link><author>noreply@blogger.com (Afshar Mohebbi)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7752604992674614388.post-6708563945540915223</guid><pubDate>Tue, 31 Jan 2012 15:08:00 +0000</pubDate><atom:updated>2012-01-31T18:36:43.599+03:30</atom:updated><title>‫خطایابی در WCF</title><description>&lt;div style="direction:rtl; text-align:right"&gt; log گیری در بیشتر برنامه‌های می‌تواند خطاهایی را که هیچ کس موفق به کشف آن نشده است را پیدا کند. WCF هم در این مورد استثنا نیست. در WCF اگر بخواهید یک enum را از طریق سرویس‌ها انتقال دهید باید روی تک تک اعضای آن از اتریبیوت [EnumMember] استفاده کنید. من یک جا به جای استفاده از [EnumMember] از [DataMember] که مخصوص اعضای کلاس است استفاده کرده بودم. به چیزهایی خیلی زیادی شک کرده بودم، همه آنها را امتحان کردم، از روش‌های مختلف دیباگ هم استفاده کردم ولی نفهمیدم که علت مشکل An existing connection was forcibly closed by the remote host چیست.&lt;br&gt;&lt;br&gt;خدا به گردانندگان و کاربران SO خیر بدهد. از طریق یکی از &lt;a  href="http://stackoverflow.com/questions/7209823/an-existing-connection-was-forcibly-closed-by-the-remote-host-wcf" target='_blank'&gt;سوالات SO&lt;/a&gt; ترغیب شدم که لاگ WCF را فعال کنم. خوشبختانه لاگ تولید شده به من گفت که مشکل از کجاست. فعال کردن لاگ WCF خیلی ساده است، در حد اضافه کردن چند خط به app.config. لطفاً نگاهی به &lt;a  href="http://msdn.microsoft.com/en-us/library/ms732023.aspx" target='_blank'&gt;اینجا&lt;/a&gt; بیندازید.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=T21tG6SzVdo:2q4jyqch9xA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=T21tG6SzVdo:2q4jyqch9xA:-LR1_4ybTb4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?i=T21tG6SzVdo:2q4jyqch9xA:-LR1_4ybTb4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.afsharm.com/2012/01/wcf.html</link><author>noreply@blogger.com (Afshar Mohebbi)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7752604992674614388.post-6877332328419684030</guid><pubDate>Sun, 22 Jan 2012 10:55:00 +0000</pubDate><atom:updated>2012-01-22T14:23:38.464+03:30</atom:updated><title>‫Templify چیست؟</title><description>&lt;div style="direction:rtl; text-align:right"&gt; آیا شما هم از جمله کسانی هستید که هر چند وقت یک بار در شرکت‌تان یک پروژه جدید را new کرده و کار را با کپی کردن از یک سورس پایه و تغییر قسمت‌های مختلف آن از جمله نام پروژه، namespace، اسامی موجود در web.config و غیره ادامه می‌دهید؟ آیا از انجام این کار تکراری خسته شده‌اید؟ آیا اشتباهات ضمنی این کپی کاری آبروی شما را چندین بار در شرکت برده است؟ اگر جواب همه این سوالات مثبت است بهتر است نگاهی به ابزار Templify بیندازید.&lt;br&gt;&lt;br&gt;Templify ابزاری است که در نگاه اول کارش شبیه به Templateهای ایجاد پروژه در Visual Studio و ابزار NuPack به نظر می‌رسد. اما سازندگان این ابزار مدعی هستند Templify کارهایی می‌کند که دو ابزار فوق در انجام آن مشکل دارند. کار Templify ایجاد یک پروژه جدید بر اساس Templateهای از پیش تعریف شده است. فرض کنید پروژه‌ی پایه‌ای که هر روز در شرکت با آن سر و کار دارید یک Visual Studio Solution است که از چند Visual Studio Project با نام‌های BaseProj.Core، BaseProj.Web و BaseProj.Test تشکیل شده است. شما می‌توانید این solution را به صورت یک package به Templify معرفی کنید. من بعد می‌توانید با سادگی چند کلیک از Templify بخواهید که instance جدیدی از این پروژه برای شما بسازد. Templify یک نام از شما می‌گیرد و نام پروژه، namespaceها و دیگر موارد مشابه را خودش تغییر می‌دهد. مثلا اگر نام مورد نظر شما MyProj باشد، نام پروژه‌ها و اسمبلی‌ها و غیره به MyProj.Core، MyProj.Web و MyProj.Test تغییر می‌یابد. برای دیدن یک راهنمای خوب به &lt;a  href="http://weblogs.asp.net/alecwhittington/archive/2010/10/10/using-templify-to-create-a-new-s-arp-architecture-solution.aspx" target='_blank'&gt;اینجا&lt;/a&gt; مراجعه کنید. صفحه اصلی Templify هم در &lt;a  href="http://opensource.endjin.com/templify/" target='_blank'&gt;اینجا&lt;/a&gt; قرار دارد.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt; &lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=hwGDD_NGcR4:kdIVSYFFfFE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Afsharm?a=hwGDD_NGcR4:kdIVSYFFfFE:-LR1_4ybTb4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Afsharm?i=hwGDD_NGcR4:kdIVSYFFfFE:-LR1_4ybTb4" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://blog.afsharm.com/2012/01/templify.html</link><author>noreply@blogger.com (Afshar Mohebbi)</author><thr:total>3</thr:total></item></channel></rss>
