3DDashboard ile Widget Dünyasına Giriş

Bir sonraki yazımın widget programlama ile ilgili olacağından bahsetmiştim. Bugün beraber javascript ile beraber uwa.js kütüphanesini kullanarak bir helloworld yazdıracağız 🙂

Netvibes firmasını 2012 yılında Dassault System firmasının satın almasıyla widget yapısını Enovia’ya entegre etmeye başlıyor ve bu widgetlar sayesinde tek bir ekran üzerinde birden fazla değişik konuları içeren pencereler yerleştirmek mümkün hale getirildi. Kullanıcılara tek bir ekran üzerinden firma ile alakalı tüm bilgi aktarımı sağlanabiliyor. 3Ddashboard hikayesi enovia tarihinde çok eski değil aslında ama şuan çok kullanılmamasına rağmen gelecek zamanlarda fazlasıyla çok önem kazanacak gibi duruyor. Çünkü tüm yönetimsel araçların hepsi 3DDasboard üzerine yavaş yavaş taşınıyor ve üstelik javascript üzerinde çalıştığından klasik enoviadaki gibi arka planda java applet’lere ihtiyaç kalmıyor bu sayede tüm browser’larda sıkıntısız çalışıyor. Biliyorsunuz ki güncel browserların hepsi java applet desteğini çoktan kapattılar bu sebeble klasik Enovia’yı maalesef explorer 11 veya firefox 52 esr ile kullanmak zorunda kalıyorduk, gelecek sürümlerde artık bu sorunlarımız büyük ihtimalle kalmayacak. Bir önceki yazımda MQL arayüzünün admin kısmından kaldırılacağından bahsetmiştim. Customization widget tarafına kaydırılmasından dolayı 3DDasboard tarafının yükselişi kaçınılmaz gözüküyor…

Yavaş yavaş giriş yapalım. Yapacağımız örnekte node.js’in bilgisayarınızda yüklü olması gerekiyor. Buradan yüklemeyi yapabilirsiniz. LTS versiyonunu kurabilirsiniz. Kurulumu tamamladıktan sonra live-server npm paketini yüklememiz gerekiyor bunun için windows command line ekranına;


>npm install -g live-server

demeniz gerekiyor. Bu sayede küçük development serverımızıda yüklemiş bulunuyoruz.


<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:widget="http://www.netvibes.com/ns/">
    <head>

        <!-- Application Metas -->
        <title>Title of the App</title>
        <meta name="author" content="John Doe" />
        <meta name="description" content="A descriptive description" />

        <!-- Application Standalone emulation files -->
        <link rel="stylesheet" type="text/css"
            href="//uwa.netvibes.com/lib/c/UWA/assets/css/standalone.css" />
        <script type="text/javascript"
            src="//uwa.netvibes.com/lib/c/UWA/js/UWA_Standalone_Alone.js"></script>

        <!-- Application JavaScript Source -->
        <script type="text/javascript">
        //<![CDATA[

            /*
                We create the global MyWidget object (it could be any other name).
                This object will be used to store variables and functions.
            */
            var MyWidget = {

                /*
                    The onLoad() function is the first one,
                    it will be triggered by widget "onLoad" event.
                */
                onLoad: function() {

                    // Here we update the content of the widget body.
                    widget.setBody('Hello World!');
                }
            };

            /*
                The "onLoad" event is the very first event triggered when
                the widget is fully loaded or when the preferences are validated.

                Here, we add MyWidget.onLoad() function as "onLoad" event
                listener on the widget.
            */
            widget.addEvent('onLoad', MyWidget.onLoad);

        //]]>
        </script>
      </head>
      <body>
            <p>Loading...</p>
      </body>
</html>

Yukarıdaki kodu index.html dosyasının içene bir code editörü ile kopyalayabilirsiniz. Ben Visual code kullanıyorum ancak sadece deneme yapacaksanız notepad de olur 🙂

istediğiniz bir klasörün içine index.html dosyasını yerleştirin ve aşağıdaki komutu vererek küçük development server ımızı başlatın.


> cd d:\js\denemeWidget
> live-server --port=8079

İlk görüntü

liver-server ın default olarak yayın portu 8080 dir. Genelde de 8080 kullanıldığından ben 8079 olarak ayarlıyorum. Bu arada bu portu kullanmak zorunda değilsiniz bilgisaayarınızdaki dolu portları görmek için windows command line ekranına;


> netstat -a

komutuyla bakabilirsiniz.

Şimdi gelelim oluşturduğumuz bu widgeti admin modda açtığımız 3DDashboard’a eklemeye;

Admin modda widget’ınızı eklediğinizde tüm kullanıcılarda eklediğiniz ekran aktif hale gelmiş bulunuyor.

http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/google_48.png http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/myspace_48.png http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/facebook_48.png http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/yahoobuzz_48.png http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/twitter_48.png

Kayıp Puzzle’ın parçaları: 3DEXPERIENCE

Tasarım alanındaysanız, özelliklede makine mühendisi iseniz,  bir tasarım programını kullanmışsınızdır. Peki PLM tarafı hakkında ne biliyorsunuz? Süreçlere ne kadar hakimsiniz? Veya ne kadar hafife almalısınız… Bugün sizlere biraz 3DEXPERIENCE’ın alt yapısına değineceğim.

3DEXPERIENCE platformu MatrixOne ve VPM V6’nın birleşmesi ile oluşuyor. VPM V6 temeli C++ dili ile yazılmış bir katmana dayanıyor. Temel katman tamamen müşteri istek, özelleştirmeler ve filtrelemeleri yapabilmek için güzel bir ortam sağlıyor ve CATIA içersindeki  iş süreçlerini özelleştirebilmek için daha rahat bir ortam sunuyor. Temelde data modeli genişletmek ve bazı özelleştirmeler için uygun ortamı sağlıyor ancak programı tekrar derleyip baştan başlatmak gerekiyor. Orta katmanda ağırlıklı C++ kernel ile beraber yazılmış bir java web serverı kullanılıyor. Bu kernel her java server başladığında java süreçlerinin içine yükleniyor. Buna kısaca Java’da RMI ( Remote Method Invocation ) deniyor.

Matrixone içerisindeki iş kuralları güvenlik ve attribute’leri değiştirebilmek için Matrix kernel ile database arasında iletişimi sağlayan  orta katman dili olarak MQL(Matrix QueryLanguage) dili kullanılıyor. Bu güçlü dil aslında biraz tuhaf syntax’a sahip ve kaynak kodu üzerinde çalışma kontrolü (hata ayıklama modu) yok. Aynı zamanda commit edilen komutların geri dönüşüde yok. Kullanıcı arayüzü ise JSF ile yazıldığından doğal olarak değişikliklerde JSF(Java Server Faces) ile yapılıyor. JSF’deki internationalization sayesinde dil dosyaları ile multi-language olabiliyor. Ön yüz JPO(Java Program Object)’lar ile Database verilerini ön yüze taşıyabiliyor. Bu JPO’lar Spring framework’ü ile yaratılıyor ve yönetiliyor. Bu katmanda tüm java class’lar derlenmiş geldiğinden çok fazla özelleştirme yapılamıyor, MQL ile bu yapıya dokunmadan özelleştirme yapmak mümkün ancak kullanımı çok kolay olmadığından bu konuda bilgili kişiler tarafından yapılıyor. Gerçi Galaxy-based arayüzü ile MQL arayüzü kaldırılacağı açıklandı. JPO’lar database katmanı ile MQL üzerinden anlaşmaya devam edecekler ancak kullanıcı arayüzü dışarıya yakın gelecekte kapatılacak. Bu geliştirmeler daha çok Dashboard üzerine kaydırılıyor. Yakın gelecekte özelleştirmeler Dashboard üzerine kaydırılacağından Dashboard daha da bir önem kazanacaktır.

V6 dönemin sonuna kadar, dışarı ile haberleşmek için SOAP (Simple Object Access Protocol) xml haberleşme framework’ü kullanıldı. Bu protokol, geniş ve esnek programlama imkanı sağlıyordu ancak eski bir protokoldu. Daha sonra V6 için XPDM versiyonunu tanıttı. Bu daha fazla propramlama gerektriyordu ve dahası bazı firma entegrasyonu(yazılım konnektörleri) için kısıtlı olanaklar sunuyordu.

Dassault Systèmes bu sorunun farkına vardı ve bu sorunu hızlı çözmek için PLM Express paketi hazırladı. DS SmarTeam yazılımı 2009 yılında satın aldı ve Smarteam Enovia ürünlerin datalarını yönetmekte gerçektende marifetliydi. PLM express ürünü ile Smarteam, ilk data modelini tanıtılar. 2010x den başlayan bu süreç 3DEXPERIENCE 2017x daha ileriki sürümlerinde customizasyon yerine daha çok konfigurasyonu cloud veya kurulu platform tool’ları üzerinde yapmaya yöneldiler.

 Data Model: Kayıp Puzzle’ın Parçası:

Puzzle’ın diğer parçası ise data modelin kendisidir. VPM V6 için IRPC ve E/R için Matrixone DS için eski sürümlerde bazı sorular yaratıyordu. Bu sorunların çözümü için 3DEXPERIENCE 2015 versiyonunda unified type ilk olarak tanıtıldı. Temel olarak fikir, data kaybını önlemek, objectler arasında hakları belirlemek entityler arasındaki ilişkileri düzenlemek idi. Böylece aynı toollar ile herhangi bir objenin data modellerini otomatik farklı attributeler ekleyip genişletebileceklerdi.

Kullanıcı Arayüzü: Web 3.0 yolunda

DS netvibes firmasını satın almasıyla widget yapısını Enovia’ya entegre etmeye başladı. Tüm konfigurasyonlar ve geliştirmeler yavaş yavaş dashboard üzerinde yürütmek için çalışmalara başladılar. 2014x’e kadar tüm kullanıcı içerikleri CATIA, DELMIA ve SIMULIA gibi programların kendi arayüzleri vardı. Bu arayüzler widget teknolojisi ile beraber 3DDashboard’a entegre edilip yeni 3Dcompass ile beraber tüm widgetler birbiri ile konuşabiliyor hale getiriyorlar. Gelecekte tüm JSP teknolojisi Web3.0 – HTML5/CSS3 ile yer değiştirileceğini yeni sürümlere gelen kodlarla görüyoruz. Bunun da en büyük artısı olarak artık yazılan kodları derlemeye gerek kalmıyor ve bu widgetler birbirinden bağımsız olarak çalışabiliyor.

Widget teknolojisi ile beraber ikinci büyük yenilik ise REST(Representational State Transfer) web servislerinin implemantasyonudur. Tüm SOAP servisleri yavaş yavaş REST web servisleri ile yerdeğişmeye başladı bile.

Peki gelecekteki müşteri geliştirmeleri nasıl olacak;

  • Erişim kontrolü: Eski framework altyapısı attributeler için hala devam edecek.
  • Data model: Unified type yapısına geçiliyor. V5 ile oluşturulmuş yapı yavaş yavaş bu yapıya geçiriliyor. MQL hayatını devam ettirilecek ancak gerekmedikçe kullanılmaması tavsiye ediliyor.
  • Kullanıcı arayüzleri: JSP yenazaran HTML5 ve CSS3 alt yapısına doğru kayıyor. Özelleştirmeler için Javascript ve rest servisler üzerinde yoğunlaşacak.

Bir sonraki yazımı widget programlama üzerine yapacağım. Biraz Node.js birazda uwa.js üzerine bir yazı olacak. Takipte kalın,

Gökhan – 14.12.2018

http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/google_48.png http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/myspace_48.png http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/facebook_48.png http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/yahoobuzz_48.png http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/twitter_48.png

Using Jlink in Eclipse

Hello again,

Today, I’m going to show you how to use Creo jlink in Ecilipse. First of all, you have to install Ecilipse enterprise edition (called Eclipse-EE and you can download it from here.)

After install it, creating a new java project.

then create Creo configuration file in project folder.

First file is config.pro. it must contain following statement.

jlink_java_command C:\Program Files\Java\jdk1.8.0_121\bin\java.exe -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n

Please take consider that jdk folder can be different in your computer. please check version of the java from your computer.

other file is protk.dat.

name updatewithxml
startup java
java_app_class updatewithxml
java_app_start startApp
java_app_stop stopApp
allow_stop true
delay_start false
text_dir C:/Users/frost_tiger/workspaceEE/ZFxmlUpdater/text
java_app_classpath C:/Users/frost_tiger/workspaceEE/ZFxmlUpdater/bin/
end

you can see following picture files of folder.

Now I’m supposing you know all details configuration of creo jlink. Just I want to give you a couple of tricks.

for compiling the project, as you already know that run and debug button don’t work. we have to built project. You can see clearly where the button locates in eclipse.

then we can see class files in bin folder.

however, If I want to debug my program simultaneously with Creo. We have to use Remote Java Application.

before click remote java application. Creo must be opened.

with clicking debug button. Eclipse is listening what you are doing in creo until catch your breakpoint.

I hope that it is useful for all of you.
BestRegards,
Gökhan

http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/google_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/myspace_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/facebook_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/yahoobuzz_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/twitter_48.png

Set System Environment Variables for J-link

Hello again,

I’m standing front of you about setting system environment variables for jlink today. I have expressed lots of things about setup Jlink connection in the time that before but I have to reformat my operating system and lost everything that I had. 🙁 I have installed PTC Creo and faced some problems about setting variables that creo need. Meanwhile I figure out how to solve this solution again.

We have two variables that we have to set:

PRO_COMM_MSG_EXE =C:\Program Files\PTC\Creo 3.0\M090\Common Files\x86e_win64\obj\pro_comm_msg.exe

PRO_DIRECTORY = C:\Program Files\PTC\Creo 3.0\M090\Parametric

Regards,
Gökhan

http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/google_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/myspace_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/facebook_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/yahoobuzz_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/twitter_48.png

Java – Jaro Winkler algoritması ile String karşılaştırma

Merhabalar,

Bir text mining konusu ile karşınızdayım. Kardeşim, iki kelimeyi karşılaştırıp benzerlik oranını yüzde olarak ifade edebilecek bir program yazmamı istemişti. Kısa bir araştırma sonrası  bu konu ile ilgili bir çok araştırma ve makaleye rastladım. Bugünkü blog yazımda bu araştırmalardan biri olan Jaro-winkler algoritmasından bahsedeceğim. tabiki arkasındaki çalışan matemetik algoritmasından değilde daha çok programınıza nasıl yerleştireceğinizden bahsedeceğim.

https://github.com/tdebatty/java-string-similarity

yukarıda verdiğim github adresinden tüm karşılaştırma sınıflarını indirebilirsiniz. indirdiğiniz dosyayı herhangi bir sıkıştırma programı ile açıp ecilipse’ın src klasörünün altına info.debatty.java.stringsimilarity şeklinde klasör oluşturun. Jaro-Winkler ile ilgili dosyaları bu klasörün altına koyun.

basit bir main sınıfı koyarak aşağıdaki gibi bir test simülasyonu yapabilirsiniz.

http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/google_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/myspace_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/facebook_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/yahoobuzz_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/twitter_48.png

Changing Creo Parameter with J-link

Hello again,
I will stay another topic in front of you today and explain changing parameter in PTC Creo with using j-link.
J-link give more flexibility to customize design but it’s limited version of J-toolkit. You can find lots of document to explain what is differences between J-link and J-toolkit. Due to the lack of toolkit license, I keep working on going projects with J-link.

Let start;

Before starting to explain, I have to warn readers for using swing library. I had tried many times working with swing library and j-link together. At the beginning time. everything is working out all right however after clicking buttons or whatever, the GUI hags. In order to avoid this situation, I will use JDialog frames.


public class JLHW_Btn1_CmdListener extends DefaultUICommandActionListener {

// Handler for button push
//
@Override
public void OnCommand () {
try {
//Btn1_callback();
session.SetConfigOption("regen_failure_handling", "resolve_mode");
JDialog f = new JDialog();
JButton jb = new JButton("Değiştir");
JLabel jl1=new JLabel("İç Çap:");
JLabel jl2=new JLabel("Dış Çap:");
jtIc=new JTextField(String.valueOf(getDiameter(DiameterType.INNER)));
jtDis=new JTextField(String.valueOf(getDiameter(DiameterType.OUTER)));
jb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
changeDiameter(Integer.valueOf(jtDis.getText()), DiameterType.OUTER);
changeDiameter(Integer.valueOf(jtIc.getText()), DiameterType.INNER);
} catch (Exception ex) {
try {
DisplayMessage(ex.getMessage());
} catch (Exception ex1) {
Logger.getLogger(jlinkhelloworld.class.getName()).log(Level.SEVERE, null, ex1);
}
}

}
});
f.setAlwaysOnTop(true);
f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
f.setLayout(new FlowLayout(FlowLayout.LEFT));
f.add(jl1);
f.add(jtIc);
f.add(jl2);
f.add(jtDis);
f.add(jb);
f.pack();
f.setModal(true);
f.setVisible(true);
}
catch (Exception e) {
writeLog("Exception thrown by Btn1_callback method: " + e.toString());
}
}

In order to enable to regenerate the model, we have to set “regen_failure_handling” mode to “resolve_mode”. Please look at the line 9 above codes. Otherwise program will throw exception. As my experience, previously, unfortunately I couldn’t find any solutions for these exceptions.

Above picture also shows how program looks like. When the button is pressed. code calls following codes;


public void changeDiameter(int cap,DiameterType diameterType) {
Parameter param=null;
try {
model = App.session.GetCurrentModel();
switch(diameterType){
case OUTER:
{
param=this.model.GetParam("DISCAP");
ParamValue paramVal= pfcModelItem.CreateIntParamValue(cap);
param.SetValue(paramVal);
}
case INNER:
{
param=this.model.GetParam("ICCAP");
ParamValue paramVal= pfcModelItem.CreateIntParamValue(cap);
param.SetValue(paramVal);
}
}
} catch (jxthrowable ex) {
ex.printStackTrace();
}
finally{
try {

((Solid) model).Regenerate(null);
model.Display();
} catch (jxthrowable ex) {
try {
DisplayMessage(ex.getMessage());
} catch (Exception ex1) {
Logger.getLogger(jlinkhelloworld.class.getName()).log(Level.SEVERE, null, ex1);
}
}
}
}

there are two different parameters to controlling diameter of outer and inner of ring. Outer diameter is controlled by “DISCAP” and inner diameter is called “ICCAP” in parameter table.

However, before the Jdialog comes to screen, these parameters are read by following code in advance. User can see easily what the parameters values are, on Jdialog form.


public int getDiameter(DiameterType diameterType) throws Exception {
model = App.session.GetCurrentModel();
switch (diameterType) {
case OUTER:
{
Parameter param=model.GetParam("DISCAP");
ParamValue paramVal=param.GetValue();
model=null;
return paramVal.GetIntValue();
}
case INNER:
{
Parameter param=model.GetParam("ICCAP");
ParamValue paramVal=param.GetValue();
model=null;
return paramVal.GetIntValue();
}
default:
return 0;
}

}

I have already uploaded all this algorithm files in my GitHub account. You can find download following link.

https://github.com/FrostTiger/changingCreoParameter

But for using this codes you must adjust some following details:

  • C:\Users\[User folder]\Documents\NetBeansProjects\jlinkhelloworld – folder address must be the same.
  • must be checked config.pro, protk.dat and run.bat files. File paths of content of these files must be checked according to user computer.

Regards,
Gökhan

http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/google_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/myspace_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/facebook_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/yahoobuzz_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/twitter_48.png

Netbeans Cache Temizleme

Merhabalar,

Bugün karşılaştığım ilginç bir durumdan bahsetmek istiyorum, paketimin altında bulunan java dosyalarımın hiçbirinden derlenme hatası almama rağmen proje simgesinin üzerine hata uyarı simgesi gözüküyordu. İnternette kısa bir araştırma sonrası, cache klasör içeriği temizlendiğinde hatanın simgelerin düzeldiğini öğrendim.

Cache klasörünün bulunduğu yer;

C:\Users\“Bilgisayar kullanıcı adı”\AppData\Local\NetBeans\Cache\8.1

Kırmızı belirttiğim yer sizin kullanıcı adınızdır. Buradaki tüm dosya ve klasörleri sildikten sonra Netbeans’i çalıştırın ve göreceksiniz ki yanlış uyarı simgeler normale dönmüş. 🙂

İyi akşamlar,
Gökhan

http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/google_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/myspace_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/facebook_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/yahoobuzz_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/twitter_48.png

Github kullanımı

Merhabalar,

Bugün sizlere benimde yeni öğrendiğim github kullanımı ile ilgili bir video paylaşacağım. Daha önce gerekli tanımlamaları yaptıysanız. Aşağıdaki videoyu izleyerek github’ı nasıl kullanıldığını öğrenebilirsiniz.

Herşey init diyerek başlıyor 🙂

hangi klasör içeriğini yönetmek istiyorsanız o klasöre gelerek sağ tıklayarak “Git bash here” seçiyorsunuz. Böylece bash sizin istediğiniz klasörün içinde olacak şekilde başlıyor.

Bash ekranında ilk komut;


git init

Localde dosya yönetmek istiyorsanız. Göstereceğim bu komutlar işinizi görecektir ancak github sitesinde dosyalarınızı yönetmek istiyorsanız videonun sonunda bu komutları anlatıyor. Aslında bende yazacağım 😉

Klasörün içindeki dosyaların değişik yapılıp yapılmadığına dair son durumu görmek için aşağıdaki komutu kullanmanız gerekiyor;


git status

klasörün içerisine bir adet txt ekleyerek “git status” yazıp enter tuşuna bastığınızda;

yeni eklediğiniz dosyanın untracked(takip edilmeyen) bir dosya olduğunu bize belirtiyor, bunun için “add” komutu ile dosyayı tracked haline getiriyoruz;


git add .

“.” eğer nokta koyarsak, program klasörün içindeki tüm dosyaları tracked olarak işaretliyor.

ve son olarak var olan dosya commit edilerek yapılan değişiklikler geçerli kabul ediliyor.


git commit -m 'Deneme'

Kodda farklı dallanmalar yaratılarak, birden fazla kişinin eş zamanlı olarak çalışmasına olanak veriliyor.


git branch MyBranch
git checkout MyBranch

yukarıdaki kodları bash ekranına yazdığınız zaman yeni bir çalışma alanı yaratılıyor.

Bu komuttan sonra yaptığınız tüm işlemler master çalışma alanının dışında, oluşturduğunuz yeni alanda geçerli olur.

Burada yaptığınız değişikliklerin ana alana aktarılması için;


git status
git add.
git commit -m 'deneme2'
git merge master

Buna ekstra olarak bu kodları github’a aktarmak için;


git push origin master

Sizden kullanıcı adı ve şifre isteyecek. Bunları doğru girdiğiniz takdirde dosyalarınız github sitesine aktarılacaktır.

Video, benim yazımdan daha etkili olmuş 🙂 bence yazıyı okumaktansa videoyu izleyin daha anlaşılır.

Esen kalın efendim 🙂
Gökhan ŞAMAN

http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/google_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/myspace_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/facebook_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/yahoobuzz_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/twitter_48.png

PTC CREO j-link parametre değişimleri

creo-homepage-banner[1]

Merhabalar,

Bugün çizilen bir modelin içindeki parametreleri değiştirebilmeniz için gerekli kodu sizlerle paylaşacağım.


BaseParameter param=model.GetParam("Sizin parametreniz");
int myvalue=400;  /*Yeni atanan değer*/
ParamValue kk = new pfcModelItem().CreateIntParamValue(myvalue);
param.SetValue(kk);

Yukarıki kodda “Sizin parametreniz” olarak belirtilen alana sizin parçanızda daha önce atadığınız parametre ismini yazmanız gerekiyor. Kodu çalıştırdıktan sonra Creo ekranına gelerek regenerate tuşuna basarak parçanızı güncelleyebilirsiniz.

İyi çalışmalar
Gökhan

http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/google_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/myspace_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/facebook_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/yahoobuzz_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/twitter_48.png

Creo J-link Debugging with Netbeans

creo-homepage-banner[1]

Merhabalar tekrar,

Tam gaz hızla Creo j-link java programlamayı geliştirmeye devam ediyoruz 🙂 Bugün sizlere  Netbeans ile nasıl senkronize olarak nasıl debug yapıldığını anlatacağım. İlgisini çeken arkadaşların aşağıdaki belirttiğim makaleleri okumalarını tavsiye ederim.

bir gün önce ecilipse de aynı konuyu denemedim ama malesef derlediğim dosyayı bir türlü çalıştıramadım. Bunun sebebinin derleme komutunun javac ile değil javaw ile yapıldığını farkettim. Googleda yaptığım araştırmalara göre javac consol uygulamaları için gerekli derleyici, javaw ise GUI arayüzü olan programların derlenmesi için kullanılıyor. Anlıyacağınız ecilipse de bu işi beceremedim. 🙂 ancak Netbeans ile daha rahat debug yapılabileceğini PTC’nin kendi sitesinde gördüm. Yazılanları uyguladım ve uygulama güzel bir şekilde çalışıyor. Şimdi konuya gelirsek;

Netbeans’i bilgisayarınıza yüklüyorsunuz artık orasını anlatmayacağım. File → New Project’e tıklayarak Java Class Library seçili tutularak projeye isim veriyorsunuz1

Finish Tuşuna bastıktan sonra jlinkhelloworld.java dosyasının içeriğini buraya yapıştırıyorsunuz. ve aşağıdaki ekranda göründüğü gibi pfc ve otk jar kütüphanelerini programa ekliyorsunuz.

2

üst menuden Run→Built up’a basarak projemizi derliyoruz.

3

C:\Users\Frosty\Documents\NetBeansProjects\jlinkhelloworld klasörünün altına protk.dat ve config.pro dosyalarını kopyalıyoruz ve içeriğini aşağıdaki gibi değiştiriyoruz.

Protk.dat

name jlinkhelloworldapp
startup java
java_app_class jlinkhelloworld
java_app_start startApp
java_app_stop stopApp
allow_stop true
delay_start false
text_dir C:/Users/Frosty/Documents/NetBeansProjects/jlinkhelloworld/text
java_app_classpath C:/Users/Frosty/Documents/NetBeansProjects/jlinkhelloworld/build/classes
end

Config.pro

jlink_java_command C:\Program Files\Java\jdk1.8.0_92\bin\java.exe -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n

Tüm bu ayarlamaları yaptıktan sonra Netbeans’e geri dönüp Debug → Attach Debugger… tuşuna basıyoruz

5

Aşağıdaki gibi bir ekran karşımıza gelecek;

6

Dinleme portunu 8000 yazarak OK tuşuna basıyoruz ve IDE Creo’yu bağlanıp dinlemeye başlıyor.

7

Creo içinden  programı başlattığınızda karşınıza yukarıdaki resimdeki gibi bir ekran çıkıyor.

Direk Netbeans projesini indirmek isterseniz link’ine aşağıdan ulaşabilirsiniz.

indirme linki

Şimdiden kolay gelsin

G. ŞAMAN

http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/google_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/myspace_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/facebook_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/yahoobuzz_48.png
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/twitter_48.png