軟體開發(軟件開發)

網智數位主要提供套裝及客製化的軟體系統解決方案,專為客戶量身訂做客製化的軟體,達成客製化、智慧化及網路化的管理功能。

室內設計、裝潢、窗簾報價估算軟體

網智數位主要提供套裝及客製化的軟體系統解決方案,針對室內設計師、木工、裝潢業產業,量身訂做客製化的軟體,達成客製化、智慧化及網路化的商用軟體。

商用軟體-客製化設計

網智數位主要提供套裝及客製化的軟體系統解決方案,專為客戶量身訂做客製化的軟體,達成客製化、智慧化及網路化的管理功能。

IOT 物聯網-系統開發

根據客戶實際狀況,結合雲端與載具進行客製化物聯網IOT導入與軟體開發

雲端VPS虛擬主機租用

我們的雲端VPS虛擬主機是採用雲端(虛擬化)技術所開發之全新雲端伺服器服務,可以選擇多種作業系統(Windows、Linux等),客戶可載入自訂的應用環境,執行自己所要提供的網路服務,我們的雲端服務可為您的網站提供最完美的解決方案。

ERP軟體客製化導入

ERP軟體客製化導入,室內設計、營造業、裝潢、木作工程、系統櫃工程、會計系統,全面提升公司管理營運效率。

搜尋引擎最佳化SEO

搜尋引擎最佳化(SEO)不僅能提高網站在搜尋結果的排名,更能帶來大量對我們產品或服務真正有需求的訪客。SEO 最棒的特質之一就是不像廣告一樣亂槍打鳥而導致用戶的反感,反而更能提升點閱率跟成交率喔。

服務宗旨

網智數位主要提供套裝及客製化的軟體系統解決方案,專為客戶量身訂做客製化的軟體,達成客製化、智慧化及網路化的管理功能。

我們的成立宗旨就是要以最猛的IT技術讓這個世界更Smart,在我們貫徹我們裡想的同時,我們希望可以把我們所開發的系統帶給台灣的中小企業,除了要推薦好的東西之外,我們也希望做點改變,所以我們的第一目標就是要使用最好用的系統再加上您寶貴的創意,不僅僅可以節省你大量的荷包,還可以有一個像樣的網站。我們可以幫你做的有

企業管理
  • 策略管理
  • 目標管理
  • 行銷管理
  • 財會管理
  • ERP導入
  • 企業流程自訂
資訊管理
  • 網站架設
  • 虛擬化/雲端架設
  • 主機代管
  • 私有雲建制與導入
軟體開發
  • UML設計
  • 版本控管
  • 企業軟體開發
  • APP開發
  • 網頁設計
資訊安全
  • 網頁弱點掃描
  • 主機弱點掃描
  • 木馬檢測
  • 資安鑑識
  • 設計網路架構
  • 資安監控
行銷
  • 關鍵字SEO
  • 社群網路行銷
  • 部落格行銷
  • FaceBook 粉絲團
其他
  • 協助企業申請Google Email
好玩工具開發

講出你的創意吧!沒有甚麼是資訊辦不到的

顯示具有 數位 標籤的文章。 顯示所有文章
顯示具有 數位 標籤的文章。 顯示所有文章

2016年8月11日 星期四

虛擬主機架設維護

      今天受委託協助處理舊客戶的網頁設計、虛擬主機架設,該客戶是委託我們開發量身定做的設備清單管理軟體,但網頁一直是另外委託其他網頁設計公司處理,無意中在軟體開發會議中,提到內部系統移轉到雲端的解決方案跟價格評估,忽然其他同仁提到公司網頁也要轉移(因為原本委託其他公司的費用一年竟然高達台幣3萬元,只是簡單的網頁),所以開完會後,回到公司了解客戶的網頁程式語言與資料庫,原來客戶委託的網頁設計公司使用了很早的 ASP 語法寫的網頁(不是 ASP.NET)而且還使用了已經快找不到的早期元件(Component),而主機代管公司不是網頁設計的廠商,該主機廠商為了能運作,只好把一直保留一台 Server ,作業系統是老舊的 Windows Server 2003,而安裝的獨立主機,為了滿足老舊的網頁程式語法。
image


     而我為了幫客戶減少不必要的年費用支出,真的只是一個公司外部網頁跟小功能程式,我迅速改寫了裡面語法,重新的架設到一台 Windows Server 2012 主機,資料庫也改寫,這樣只要簡單再轉移到虛擬主機,一年費用減少超過一半再多,客戶只要用三分之一的預算就可以了,有時候真的幫客戶解決不該花的預算,投入真正的核心系統,也是我們網智數位對客戶的態度與用心。

網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

2016年6月28日 星期二

業務擴展,辦公室地址遷移

親愛的客戶,因為業績的成長,公司辦公司地址遷移可以容納團隊更多人數的座位,目前正在陸續遷移至辦公室新地址,如果客戶您來訪時,請來至新辦公地址。

新公司地址:104 台北市中山區錦州街 25 號 5 樓


網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

2016年4月14日 星期四

Android 實作教學 - 隨機驗證碼(軟體開發)

一、問題描述
熟悉web開發中高手們都知道為了防止惡意破解、惡意提交、刷票等我們在提交表單資料時,都會使用隨機驗證碼功能。在Android應用中我們同樣需要這一功能,該如何實現呢,下面我們就自定義一個隨機驗證碼View控件實現這一需求,並且具備通用性,需要的時候在界面中直接加入這個View組件即可。

下載
二、案例介紹
案例運行效果
案例所涉及組件
1、CheckView 自定義的驗證碼控件,主要重寫onDraw方法實現圖形繪製
2、Config:用於對驗證碼控件參數的配置,像畫點點數、劃線數、背景顏色的設置
3、CheckUtil:驗證碼相關工具類,實現例如隨機的點坐標、隨機線段起始和結束點坐標、驗證碼校驗等功能
4、MainActivity:測試應用
三、功能實現
1、撰寫 Config 組件
/*** 功能:用於對驗證碼控件參數的配置
* */public class Config
{ // 驗證碼更新時間 public static final int PTEDE_TIME = 1200;
  // 點數設置 public static final int POINT_NUM = 100;
  // 線段數設置 public static final int LINE_NUM = 2;
  //設置背景顏色 public static final int COLOR=Color.BLUE; //隨機數據長度 public static int TEXT_LENGTH=4;
  //設置驗證碼字體大小 public static int TEXT_SIZE=30;
  }

2、CheckUtil組件
/*** 功能:驗證碼相關工具類
* */public class CheckUtil
{ /** * 產生隨機數字 * @return
*/ public static int [] getCheckNum()
{ int [] tempCheckNum = new int[Config.TEXT_LENGTH];
   for(int i = 0; i < Config.TEXT_LENGTH; i++)
{ tempCheckNum[i] = (int) (Math.random() * 10);
   }
  return tempCheckNum; }
/**
* 隨機產生劃線的起始點坐標和結束點坐標
* @param height 傳入CheckView的高度值
* @param width 傳入CheckView的寬度值
* @return 起始點坐標和結束點坐標
*/ public static int[] getLine(int height, int width)
{ int [] tempCheckNum = {0,0,0,0};
  for(int i = 0; i < 4; i+=2)
{ tempCheckNum[i] = (int) (Math.random() * width); tempCheckNum[i + 1] = (int) (Math.random() * height); }
return tempCheckNum; }
/**
* 隨機產生點的圓心點坐標
* @param height 傳入CheckView的高度值
* @param width 傳入CheckView的寬度值
* @return
*/ public static int[] getPoint(int height, int width)
{ int [] tempCheckNum = {0,0,0,0}; tempCheckNum[0] = (int) (Math.random() * width); tempCheckNum[1] = (int) (Math.random() * height ); return tempCheckNum; }
/**
* 驗證是否正確
* @param userCheck 用戶輸入的驗證碼
* @param checkNum 驗證控件產生的隨機數
* @return
*/ public static boolean checkNum(String userCheck, int[] checkNum){ if(userCheck.length() != 4 )
{
      return false; } String checkString = "";
  for (int i = 0; i < 4; i++)
{ checkString += checkNum[i]; }
  if(userCheck.equals(checkString))
{ return true; }
  else { return false; }
}
/**
* 計算驗證碼的繪製y點位置
* @param height 傳入CheckView的高度值
* @return
*/ public static int getPositon(int height)
{ int tempPositoin = (int) (Math.random() * height);
   if(tempPositoin < 20){ tempPositoin += 20; }
  return tempPositoin; }
}

3、自定義驗證碼控件CheckView
public class CheckView extends View
{

  Context mContext;
int [] CheckNum = null;
Paint mTempPaint = new Paint();
 
// 驗證碼
public CheckView(Context context, AttributeSet attrs)
{
super(context, attrs);
mContext = context; mTempPaint.setAntiAlias​​(true);
mTempPaint.setTextSize(Config.TEXT_SIZE);
mTempPaint.setStrokeWidth(3);
}

public void onDraw(Canvas canvas)
{
canvas.drawColor(Config.COLOR);
final int height = getHeight();

//獲得CheckView控件的高度
final int width = getWidth();
//獲得CheckView控件的寬度
int dx = 40;
for(int i = 0; i < 4; i ++)
{
//繪製驗證控件上的文本
canvas.drawText("" + CheckNum[i], dx, CheckUtil.getPositon(height), mTempPaint);
dx += width/ 5;
}

int [] line;

for(int i = 0; i < Config.LINE_NUM; i ++)
{
//劃線
line = CheckUtil.getLine(height, width);
canvas.drawLine(line[0], line[1], line[2], line[3], mTempPaint); }
 
// 繪製小圓點 int [] point; for(int i = 0; i < Config.POINT_NUM; i ++)
{
//畫點
point=CheckUtil.getPoint(height, width);
canvas.drawCircle(point[0], point[1], 1, mTempPaint);
}
}

public void setCheckNum(int [] chenckNum)
{
//設置驗證碼
CheckNum = chenckNum;
}
public int[] getCheckNum()
{
    //獲得驗證碼
    return CheckNum;
}
public void invaliChenkNum()
{
 
invalidate(); }
}


4、編寫MainActivity測試代碼
public class MainActivity extends Activity implements View.OnClickListener
{
private CheckAction mCheckView ;
private TextView mShowPassViwe;
private EditText mEditPass;
private Button mSubmit;
private Button mRef;

// 驗證碼:
private int [] checkNum =null;

public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
    initView(); initCheckNum();
}

public void initView()
{
mCheckView = (CheckView) findViewById(R.id.checkView);
mShowPassViwe = (TextView) findViewById(R.id.checkpass);
mEditPass = (EditText) findViewById(R.id.checkTest);
mSubmit = (Button) findViewById(R.id.submit);
mRef = (Button) findViewById(R.id.ref);
mSubmit.setOnClickListener(this);
mRef.setOnClickListener(this);
}

// 初始化驗證碼並且刷新界面
public void initCheckNum()
{
checkNum = CheckUtil.getCheckNum();
mCheckView.setCheckNum(checkNum);
mCheckView.invaliChenkNum();
}

public void onClick(View v)
{

switch (v.getId())
{
    case R.id.submit:
    String erInput = mEditPass.getText().toString();
if(CheckUtil.checkNum(userInput, checkNum))
{
setPassString("通過");
Toast.makeText(this, "通過", 1200 ).show();
}
else
{
setPassString("未通過");
Toast.makeText(this, "未通過", 1200).show();
}
break;
case R.id.ref: initCheckNum();
break;
default: break;
}

}

public void setPassString(String passString)
{
mShowPassViwe.setText(passString);
}

}


網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫行動號碼:0920-883-870
黃先生 Allen

2015年7月8日 星期三

新合作、新契機、邁向新挑戰、尋找夥伴

          最近公司跟一個在行銷創新、創投人脈、在知名外商服務許久,非常有經驗的團隊合力共組一個比賽團隊,是要經營 Platform(平台),跟以往公司專注軟體專案、系統建置委外模式完全不同,但經營一家公司我思考了很久,才現在的穩定現金流模式下,我必須大膽嘗試不同合作模式,共同組成一個合作團隊,有時創業真的更多時間選擇什麼要先放棄,集中資源到一個機會發展性可能有更大突破的,所以在這樣的前題下,我馬上答應(事實上我心裡想,知道困難度很高,但心中有個力量就是要去跟各種不同的人一起合作,可以互相學習。








          在新團隊各自分工情況下,我當然負責投入公司最擅長的軟體資訊技術,規劃系統架構,前端的網頁程式、Android  APP、iPhone APP、RWD,以及後端採取的技術 SQL Server、WebAPI、爬蟲程式撰寫,不過接下了任務才發覺因為這個合作過程,竟然幾乎每個星期陌生客戶尋求軟體開發承包,竟然詢問度忽然比以往多了2~3成要求報價,有時真的要嘛客戶都沒上門,要嘛都忽然同時出現,但也因為新團隊合作,我答應在先所以我必須負責的態度,所以很多新開發的合作案,都必須延後甚至捨棄(我很心疼,公司想多賺點錢,有公司開銷啊),希望新客戶能夠體會,如果有機會,「網智數位﹣軟體開發」非常願意承包各種開發案,也更期待可以用心服務每個客戶。

          不過,最近除了開發各種 WPF User Control給舊客戶的軟體開發人員使用外,挪出了好多時間研究 Amazon Product Advertising API 、eBay API、Walmart Open API 、FB API、Llinkedin API, 真的發覺每個大型電子商務平台、社群平台的API複雜度,以及提供的白皮書技術文件每個幾乎都超過700頁,真的是一個不知道哪來的勇氣....後續還要培養 Android 、RWD的人投入開發,真的是機會也是累死人的挑戰,如果有軟體開發人員有興趣,對整合這些大型官網的API有興趣研究,想要參與一個未來有可能性被創投投入一定金額的團隊,那你可以寫信給我 ( allen@netqna.com ) , 加入這個團隊,你會發覺學到東西不一樣哦,而且真的是經營網路產業(互聯網),不是專案型公司哦,普遍來說專案公司這幾乎都是幸苦爆肝(當然也不是絕對啦)。

          另外網智數位資訊公司,也特別徵求有 Java 開發經驗、.Net 開發經驗的人,目前非常缺人,待遇基本上都是超過5萬以上,如果有意願可以一樣寫信給  Allen (allen@netqna.com) 。



2015年6月5日 星期五

SCRUM用一半的時間做兩倍的事-CH1 好的引文


     最近我跟合夥人拜訪多家廠商,建立一個未來努力發展的市場,因為只有出去接觸各產業的客戶,才能發覺某產業在資訊系統所能提供的效益與期待,但創業過程是艱辛是有各種說不出來的障礙,但同時確實最快樂的,因為可以掌握自己想衝刺方向,有時累了,就會靜下來看看各類書籍,沒錯我是讀書愛好者。








     因為我看書可以在閱讀過程中,產生各種自我的檢討與審視,把以前經歷的失敗,徹底重新拿出來思考錯誤點,甚至沒有遇到的經驗,可以提早吸收前人、專家已經歷過、統整過的知識,今天下午抽出時間看了一本暢銷書籍「SCRUM用一半的時間做兩倍的事」,第一章有個引文是來自前美國總統老羅斯福於1910年在巴黎索邦大學的演說「民主國家的公民權利」,我看到這個引文很有感觸,因為記得幾年前我離開某上市大公司出來接案,很多人不看好,但是我連客戶在哪我都不知道,但我深信堅持努力,隨時根據市場的反應,做出調整,在努力過程,真的你會遇到各種批評、不被看好、認為你沒本事等等言論,而這個引文真的可以用來勉勵即將創業、我的團隊、任何現在遇到瓶頸的人,大家一起堅持目標,努力奮鬥。

榮譽並不屬於批評的人;亦不屬於指出勇者如何失敗,或點出別人哪裡應該做得更好的人。
榮譽是屬於實際身處在競技場中、臉上沾滿塵土與血汗,仍英勇奮戰的勇者;他們會犯錯,而且一錯再錯,因為錯誤與缺失必會伴隨著努力而來;但是他們都確切地知道要奮戰不懈、知道要充滿熱誠、全心投入;獻身於崇高的志業。
他們最好的結局是終於功成名就;就算是失敗,最差的下場只不過就是在勇敢奮戰後落敗。他們的定位絕非那些冷漠懦弱、不知勝利與失敗為何物的人所能相提並論。

但我們確定有一個目標,哪怕是小小的,我們都應該嘗試,因為就算失敗了,那又如何,你還是沒損失,因為我們依然還在原點,只是我們享受努力的過程了 。


2015年5月5日 星期二

網智數位正式轉型為數位資訊公司

很開心,最近經過幾年的努力,網智數位擁有越來越多的客戶合作機會,也因此為了更認真、更專業的態度服務客戶,我們正式成立網智數位有限公司,也會繼續堅持專業技術與企業的領域知識不斷的深入了解客戶的實際需求,量身定做符合客戶的IT整體規劃,不論你有軟體客製化、APP開發、網路行銷、美工設計,我們團隊皆有服務,也感謝舊客戶以及新客戶給我們網智數位每個服務機會。





網智數位 團隊 感謝您....

洽談合作方式
黃先生 Allen
allen@netqna.com
0920-883-870