Planet Smalltalk

June 23, 2017

Marten Feldtmann - Gemstone/S, PUM and Unity3D

And again some work is done on the C# wrapper.

The latest work on this topic had been done to make it possible to build an Android app by using the Xamarin toolchain.

Due to that requirements the runtime and the generated application library wrapper contains lots of async/wait and Task<T> usages. This works one all newer platforms (Xamarin and .Net>= 4.0).

For one of your products we considered to make a proof of concept to show, how a visualization of the system would look liḱe and there was a wish by one of our employee to use Unity3D for this task.

The first work in Unity3D was to make WebSockets workable – there is a free git project offering this support. The WebSockets were needed to listen to our 0MQ<->WebSocket Relay, which pushes the information of our 0MQ-Infobus to external clients.

The 0MQ-Infobus is feeded by Gemstone/S. The database pushes telegrams on this bus to inform external application about state changes – so the clients do not need to poll the database on a regular base.

After that we wanted Unity3D to talk to our Gemstone/S database directly – by using our C# wrapper.

But when working with Mono the situation changes and Unity3D makes it even more complicated, because it uses its own Mono version somewhere located between official Mono versions.

So we build a new CodeGenerator in PUM to produce “synchronized, simple” .NET code, created a new runtime (working with Unity3D or .NET < 4.0) and put the stuff together.

Noẃ Unity3D can listen to the event bus and requests additional information via the normal API – just to make a better informative visualization.


Filed under: Smalltalk Tagged: 0MQ, Gemstone/S, PUM, Unity3D, WebSockets

June 22, 2017

Craig Latta - Caffeine :: Livecode the Web!

CaffeineFor the impatient… here it is.

Back to the Future, Again

With the arrival of Bert Freudenberg’s SqueakJS, it was finally time for me to revisit the weird and wonderful world of JavaScript and web development. My previous experiences with it, in my consulting work, were marked by awkward development tools, chaotic frameworks, and scattered documentation. Since I ultimately rely on debuggers to make sense of things, my first question when evaluating a development environment is “What is debugging like?”

Since I’m a livecoder, I want my debugger to run in the web browser I’m using to view the site I’m debugging. The best in-browser debugger I’ve found, Chrome DevTools (CDT), is decent if you’re used to a command-line interface, but lacking as a GUI. With Smalltalk, I can open new windows to inspect objects, and keep them around as those objects evolve. CDT has an object explorer integrated into its read-eval-print loop (REPL), and a separate tab for inspecting DOM trees, but using them extensively means a lot of scrolling in the REPL (since asynchronous console messages show up there as well) and switching between tabs. CDT can fit compactly onto the screen with the subject website, but doesn’t make good use of real estate when it has more. This interrupts the flow of debugging and slows down development.

The Pieces Are All Here

With SqueakJS, and its JavaScript bridge, we can make something better. We can make an in-browser development environment that compares favorably with external environments like WebStorm. I started from a page like try.squeak.org. The first thing we need is a way to move the main SqueakJS HTML5 canvas around the page. I found jQuery UI to be good for this, with its “draggable” effect. While we’re at it, we can also put each of Squeak’s Morphic windows onto a separate draggable canvas. This moves a lot of the computation burden from SqueakJS to the web browser, since SqueakJS no longer has to do window management. This is a big deal, since Morphic window management is the main thing making modern Squeak UIs feel slow in SqueakJS today.

SqueakJS provides a basic proxy class for JavaScript objects, called JSObjectProxy. Caffeine has an additional proxy class called JSObject, which provides additional reflection features, like enumerating the subject JS object’s properties. It’s also a good place for documenting the behavior of the JS objects you’re using. Rather than always hunting down the docs for HTMLCanvasElement.getContext on MDN, you can summarize things in a normal method comment, in your HTMLCanvasElement class in Smalltalk.

Multiple Worlds

With a basic window system based on HTML5 canvases, we can draw whatever we like on those canvases, using the SqueakJS bridge and whatever other JS frameworks we care to load. I’ve started integrating a few frameworks, including React (for single-page-app development), three.js (for WebGL 3D graphics development), and morphic.js (a standalone implementation of Morphic which is faster than what’s currently in Squeak). I’ll write about using them from Caffeine in future blog posts.

Another framework I’ve integrated into Caffeine is Snowglobe (for Smalltalk app streaming and other remote GUI access), which I wrote about here previously. I think the Snowglobe demo is a lot more compelling when run from Caffeine, since it can co-exist with other web apps in the same page. You can also run multiple Snowglobes easily, and drag things between them. I’ll write more about that, too.

Fitting Into the JavaScript Ecosystem

To get the full-featured debugger UI I wanted, I wrote a Chrome extension called Caffeine Helper, currently available on the Chrome Web Store. It exposes the Chrome Debugging Protocol (CDP) support in the web browser to SqueakJS, letting it do whatever the CDT can do (CDT, like SqueakJS, is just another JavaScript-powered web app). The support for CDP that I wrote about previously uses a WebSocket-based CDP API that requires Chrome to be started in a special way. The Caffeine Helper extension provides a JavaScript API, without that requirement.

I also wrote support for generating Smalltalk code from JavaScript, using the esprima parsing framework, and vice-versa. With my debugger and code generation, I’m going to try developing for some file-based JS projects, using Smalltalk behind the scenes and converting to and from JavaScript when necessary. I think JS web development might actually not drive me crazy this way. :)

Please Try It Out!

So, please check out Caffeine, at caffeine.js.org! I would very much appreciate your feedback. I’m particularly interested to hear your use cases, as I plan the next development steps. I would love to have collaborators, too. Let’s build!


June 21, 2017

ESUG news - Announcing the Smalltalks 2017 conference

To continue with our tradition, FAST is organizing Smalltalks, the free conference on Smalltalk based technologies, research and industry applications.

This year the conference will be held on November 15, 16 and 17 at Universidad Nacional de La Plata, in La Plata, Argentina.

We encourage you to start thinking about:

  • Talks you want to present
  • Workshops you want to organize
  • Assistance you might be able to provide

Also, if your company/institution is interested in participating as a Sponsor, this year there will be plenty of opportunities like:

  • Helping with the expenses of distinguished speakers and students wanting to travel to the conference
  • Hosting special events
  • Adding your brand to conference materials (banners, souvenirs, etc.)

We will be releasing more details on this shortly, but there's no need for you to wait, contact us about sponsoring options now!

Specific dates for submissions will be published soon. We will post the updated information on our website and social media accounts, but we'll also make sure to let you know by mail.

Follow us at @fast_arg to keep up to date with news and announcements.

ESUG news - Announcing the Smalltalks 2017 conference

To continue with our tradition, FAST is organizing Smalltalks, the free conference on Smalltalk based technologies, research and industry applications.

This year the conference will be held on November 15, 16 and 17 at Universidad Nacional de La Plata, in La Plata, Argentina.

We encourage you to start thinking about:

  • Talks you want to present
  • Workshops you want to organize
  • Assistance you might be able to provide

Also, if your company/institution is interested in participating as a Sponsor, this year there will be plenty of opportunities like:

  • Helping with the expenses of distinguished speakers and students wanting to travel to the conference
  • Hosting special events
  • Adding your brand to conference materials (banners, souvenirs, etc.)

We will be releasing more details on this shortly, but there's no need for you to wait, contact us about sponsoring options now!

Specific dates for submissions will be published soon. We will post the updated information on our website and social media accounts, but we'll also make sure to let you know by mail.

Follow us at @fast_arg to keep up to date with news and announcements.

ESUG news - Announcing the Smalltalks 2017 conference

To continue with our tradition, FAST is organizing Smalltalks, the free conference on Smalltalk based technologies, research and industry applications.

This year the conference will be held on November 15, 16 and 17 at Universidad Nacional de La Plata, in La Plata, Argentina.

We encourage you to start thinking about:

  • Talks you want to present
  • Workshops you want to organize
  • Assistance you might be able to provide

Also, if your company/institution is interested in participating as a Sponsor, this year there will be plenty of opportunities like:

  • Helping with the expenses of distinguished speakers and students wanting to travel to the conference
  • Hosting special events
  • Adding your brand to conference materials (banners, souvenirs, etc.)

We will be releasing more details on this shortly, but there's no need for you to wait, contact us about sponsoring options now!

Specific dates for submissions will be published soon. We will post the updated information on our website and social media accounts, but we'll also make sure to let you know by mail.

Follow us at @fast_arg to keep up to date with news and announcements.

ESUG news - Announcing the Smalltalks 2017 conference

To continue with our tradition, FAST is organizing Smalltalks, the free conference on Smalltalk based technologies, research and industry applications.

This year the conference will be held on November 15, 16 and 17 at Universidad Nacional de La Plata, in La Plata, Argentina.

We encourage you to start thinking about:

  • Talks you want to present
  • Workshops you want to organize
  • Assistance you might be able to provide

Also, if your company/institution is interested in participating as a Sponsor, this year there will be plenty of opportunities like:

  • Helping with the expenses of distinguished speakers and students wanting to travel to the conference
  • Hosting special events
  • Adding your brand to conference materials (banners, souvenirs, etc.)

We will be releasing more details on this shortly, but there's no need for you to wait, contact us about sponsoring options now!

Specific dates for submissions will be published soon. We will post the updated information on our website and social media accounts, but we'll also make sure to let you know by mail.

Follow us at @fast_arg to keep up to date with news and announcements.

Torsten Bergmann - CLAP (Command Line Argument Parsing) in Pharo

June 20, 2017

Torsten Bergmann - Calypso 0.7.0 for Pharo

There is a new version of Calypso browser (version 0.7.0) for Pharo supporting navigation history

 

ESUG news - UK Smalltalk User Group meeting - Monday, 26th June

The next meeting of the UK Smalltalk User Group Meeting will be on Monday, 26th June.

We'll meet at our usual venue The Counting House at 7pm.

If you'd like to join us, you can just show up at the pub. You can also sign up in advance at the meeting's Meetup page: https://www.meetup.com/UKSTUG/events/240660858/ .

See you there!

June 19, 2017

BioSmalltalk - Convert rehh output to UCSC Bed file

The rehh (Relative Extended Haplotype Homozygosity) R package provides several scores for detecting recent natural positive selection taking as input SNP data. Resulting regions with high p-values can be considered as candidates for selective sweeps.

The following BioSmalltalk script reads rehh output files from ihs and rsb functions (ihh2ihs() or ies2rsb()), and for each chromosome, collects peaks given by p-values to generate an UCSC BED file (Browser Extensible Data). BED files can be used to view the genome annotations in significant regions using Genome Browsers, such as the Animal Genome Browser, through the "add custom track" option.

The collector object first filter valid (not null) -log10(p-value)'s which are greater than ylim parameter, this is done to find significative p-values. Then scans resulting collection to detect a peak range, checking if difference between two adjacent SNP's is greater than the nbases parameter. Finally the output is exported to BED file format (#dumpAsUCSCBedFile, #dumpAsEnsembleBedFile or #dumpAsEnsembleBedFileBothStrands), ensuring each feature is written in correct order


| minChr maxChr cwd nbases |
minChr := 1.
maxChr := 29.
cwd := 'c:\...'.
nbases := 1000000.

minChr to: maxChr do: [ : chrNumber |
| inputFilename outputFilename |
inputFilename := 'chr_' , chrNumber asString , '.rsb.txt'.
outputFilename := 'peaks_chr' , chrNumber asString , '.bed'.
BioRehhLogPValueCollector new
cwd: cwd;
ylim: 2.0;
nbases: nbases;
chrNumber: chrNumber;
inputFile: inputFilename;
outputFilename: outputFilename;
collectPeaks;
dumpAsEnsembleBedFileBothStrands ]

June 18, 2017

Torsten Bergmann - Amber Smalltalk 0.19.1

Torsten Bergmann - UK Smalltalk User Group meeting - Monday, 26th June

UK Smalltalk - UK Smalltalk User Group Meeting - Monday, 26th June

The next meeting of the UK Smalltalk User Group will be on Monday, June 26th.

We'll meet at our usual venue, the Counting House, from 7pm onwards.

If you'd like to join us, you can show up at the pub. You can also sign up in advance on the meeting's Meetup page.

June 17, 2017

Pharo Weekly - Github Pharo 70 dev on the starting blocks

Hi,

in fact the development of Pharo 7 has already started. But in a limited mode.
For Pharo 7 we have the #development branch on GitHub (pharo-project/pharo)
…and we are already merging pull requests.
We currently have (mostly technical) problems with the infrastructure so the monkey is not running. But we have a temporary CI jobs that can check specific pull request (that means that we bootstrap Pharo for them and run tests for all platforms).
The latest Pharo 7 image can be found here:
The image is currently not uploaded to files.pharo.org and it is not accessible by zero-conf scripts, sorry.
If you want to try to create own pull request directly from Pharo 7, you need to do this:
– create own fork of pharo-project/pharo repository on GitHub and keep it in sync
– download Pharo 7 image
– clone pharo-project/pharo repository into the image directory, the directory with the clone MUST be named “pharo-core”
– checkout the development branch or better checkout the commit from which the Pharo 7 image was bootstrapped (SystemVersion current commitHash). Beware, in that case you will be in detached head state (you need to create own issue branch later to be able to commit something). The checkout to a particular commit cannot be done currently from Iceberg, you need to use git
– add your fork repository as a remote and mark it as default push target
– create issue on FogBugz to get issue ID
– create a branch for this issue (can be done easily from the repository context menu in Iceberg [Pharo], this option is valid only if you cloned pharo-project/pharo repository)
– commit the fix to your fork repository
– create the pull request (can be done easily from the repository context menu in Iceberg [Pharo], this option is valid only if you cloned pharo-project/pharo repository)
– add link to the pull request into the FogBugz issue entry
Pull requests can be done from Pharo 6 too. Then you do not need to have clone in “pharo-core” directory, it can be everywhere, and you mast create your branches from the master branch (and create pull requests on #development)
Because we currently have limited possibilities to check pull requests, we prefer to merge PRs needed for start of the new integration process. We really do not need to break the system in this fragile state 😉
Cheers,
— Pavel

Pharo Weekly - Geo location data reading with Zinc: a Breeze

|client znResponse|
client := ZnClient new.
client host: ‘www.geoplugin.net’.
client addPathSegment: ‘json.gp’.
client queryAt: ‘ip’ put: ‘188.194.228.195’.
client contentReader: [ :entity | STONJSON fromString: entity contents ].
znResponse := client get; contents.


Pharo Weekly - While waiting for the PullRequest menu in Pharo70

Hi,

Of course we just want you to have to

  • enter a bug entry
  • and create a pullrequest using a magic button to send a fix to Pharo.

Now before getting there, here is a description of what we will use.

Stef

Hi

we still do not have official guidelines but this should help you:
1) you need own fork of pharo-project/pharo repository
2) clone pharo-project/pharo into directory named “pharo-core” in your working directory. You can do it from Iceberg (Clone repository) or by this script:
Iceberg enableMetacelloIntegration: true.
target := ‘pharo-core’ asFileReference ensureCreateDirectory.
repository := IceRepositoryCreator new
remote: (IceRemote url: ‘git@github.com:pharo-project/pharo.git’);
location: target;
subdirectory:’src’;
createRepository.
repository backend checkoutBranch: ‘master’.
repository addRemote: (IceRemote name: ‘myFork’ url: ‘git@github.com:yourGitHubAccount/pharo.git’).
repository register.
Do not forget to change your fork URL. If you will do  it from Iceberg, you need to add remote manually.
3) set your fork remote as default push remote
4) create issue on FogBugz. You will obtain issue number e.g. 12345
5) in repository context menu in Iceberg and do Pharo-Create new branch from FogBugz issue, you will enter the issue number and the dialog wil fill the full branch name
6) do you changes and commit (and push) them to your fork repository
7) in repository context menu in Iceberg do: Pharo-Create pull request. Login, by default the title will be set to the branch name, let it be, comment is not needed. “From” will be your fork and your issue branch. “To” will be pharo-project/pharo and “development” branch
8) as soon as you create the pull request, add URL to this pull request to the FogBugz issue and mark it as resolved (fix review needed).
You need not to do it exactly this way, e.g. you can create the pull request from Github web interface, but the pull request name must contain the the issue number. And your issue must contain link to the pull request.

June 16, 2017

Noury Bouraqadi - Open PhD Position on Infrastructure and language kernels for IoT Systems

Over the last years, the RMOD team of INRIA Lille and the CAR theme of IMT Lille Douai have been working together on creating tiny language cores. For example, Guillermo Polito demonstrated in his PhD a fully reflective kernel that fits into 80 kb of memory and that it is possible to have hyper specialized… Continue reading

June 15, 2017

ESUG news - VA Smalltalk V9.0 Beta Invitation

Invitation to Participate: VA Smalltalk v9.0 64-bit Beta Program!

You're invited to try out the next generation 64-bit virtual machine for VA Smalltalk by joining the v9.0 Beta program.

Mpre infos http://mailchi.mp/instantiations/vast-v90-beta-invitation

June 14, 2017

Torsten Bergmann - Quick, write me a Redis client

Redis is an open source, in-memory data structure store, used as a database, cache and message broker. Sven wrote a new article on Medium on "Quick, write me a Redis client"

June 13, 2017

Cincom Smalltalk - Student-Created Application Provides an Adaptable and Flexible Programming Environment for the Visually Impaired

At Universidad Nacional de Quilmes in Buenos Aires, Argentina, two students, along with the backing of their professors, elected to tackle a challenge that was affecting their visually impaired classmates: […]

The post Student-Created Application Provides an Adaptable and Flexible Programming Environment for the Visually Impaired appeared first on Cincom Smalltalk.

Torsten Bergmann - CloudFront support in AWS SDK for Pharo Smalltalk

The AWS SDK for Pharo Smalltalk enables Smalltalk developers to easily work with Amazon Web Services. It now has support for CloudFront.

Torsten Bergmann - Material Design Lite in Pharo video

Video from DevFest Belgium October 2016 - Philippe Back - Material Design Lite in Pharo


Smalltalk Jobs - Smalltalk Jobs – 6/13/17

A company in North Rhine-Westphalia Germany is looking for an experienced smalltalk developer for a 6 month contract with renewal.  They require experience in claims management and probably are requiring that you can work in Germany.   Just for reference Cologne is one of the cities in this German state.


Filed under: Employment

Torsten Bergmann - PharoCloud focuses on Ephemeric Cloud

Mike announced some news about http://pharocloud.com. I already tried the Ephemeric cloud this week - just ZIP a Pharo image with a server running on port 8080 and upload it. The most easy way to get your Pharo web application into the cloud!

Pharo Weekly - Pharo 6 snap package for Ubuntu

Hi Everyone,

I’ve updated the Pharo 6 snap package for Ubuntu.

The major advantages of using the snap package are:

– No need to install all the 32 bit dependencies on a 64 bit system,
they’re all contained and isolated within the snap package.
– Automagically distinguish between 32 bit and 64 bit images and run the
appropriate VM (as with the ZeroConf package, the 64 bit VM still
needs more testing).

To get Pharo up and running on Ubuntu 16.04 or later:

# Install Pharo
$ sudo snap install –candidate pharo –classic
# If your system isn’t configured for threaded heartbeat:
$ sudo pharo.config
# Download the latest Pharo 6 image
$ pharo.getimage
# Go…
$ pharo.ui Pharo.image
# or:
$ pharo Pharo.image eval 4+3

To get a list of available commands:

$ snap info pharo

If you’re on Debian or Ubuntu 14.04 you’ll need to install snapd, see
https://snapcraft.io/docs/core/install

The VM is the threaded heartbeat, dated 201705310241.

The installation flags are:

–candidate – The edge and beta channels are for development versions.
It progresses to candidate and then stable.
–classic – Snap packages are normally sandboxed for security
reasons.  Since Pharo is a development environment
in which we want to be able to run any executable,
or load any library, it is installed with access to
the entire system (as the running user).

Why use snap packages?

– They include all dependencies.  In particular, for the 32 bit
versions, this means that it isn’t necessary to install all the 32 bit
architecture and associated dependencies.
– Including dependencies means that there shouldn’t be any problems with
incompatible library versions when upgrading.

Why not use snap packages?

– It’s a relatively new technology, with a number of rough edges.
– There may still be issues with its sandboxing that I haven’t
discovered yet.
– Because the package uses classic confinement, it isn’t
cross-distribution in practice (unfortunately).

Please let me know of any other advantages or disadvantages you think
should be listed here.

If you don’t trust me to configure your system correctly (which requires
sudo):

– All the scripts that make up the sub-commands are visible, e.g.
pharo.config can be viewed at /snap/pharo/current/usr/bin/CONFIG

The packaging code is at: https://github.com/akgrant43/pharo-snap

Cheers,
Alistair


June 12, 2017

ESUG news - Deadline of IWST has been postponed

Deadline of IWST has been postponed to June 21th AoE. However, we ask you to submit at least an abstract for June 16th. Only papers submitted before this date could be modified until June 21th. See here for more infos

June 11, 2017

Smalltalk Jobs - Smalltalk Jobs – 6/10/17

  • Tualatin – near Portland, Oregon Software Engineer 3 at Lam Research
    • Required Skills:
      • Bachelor of Science Degree in Computer Science/Computer Engineering or equivalent
      • 4-6 years of experience in large (10+engineers) software development programs
      • Proficient in one or more of the following programming languages: Visual Basic, C, C++, Java, SmallTalk, Pearl
      • Knowledgeable with network protocols
      • Proficient in two or more of the following OSs: MS Dos, MS Windows, Linux, Unix (Any derivative)
      • Knowledgeable in MS Coding standards.
    • Wanted Skills:
      • Prior knowledge in proprietary LAM software big plus
  • Wilmington, MASoftware Engineer Intern at Rudolph Technologies, Inc.
    • Required Skills:
      • At least one year in an engineering in an accredited engineering degree program or a Computer Science degree program.
      • Object Oriented Programming skills
      • An interest in electronics, servo systems, optics and/or image processing
      • Outstanding problem solving skills
      • Serviceable written and verbal communication skills
      • A dynamite work ethic with a desire to achieve
    • Wanted Skills:
      • Smalltalk
      • C++
      • Python
      • Control Systems (servo, stepper, robotics) course work and preferably lab experience. Academic setting is acceptable.
      • Digital electronics
      • Image processing using a popular image processing toolkit such as Halcon, MIL, Cognex, IPP, or OpenCV
      • Knowledge of embedded system development environments such as RTEMS, VxWorks or similar environment
      • Knowledge of SQL for a popular DB like PostgreSQL, Oracle, MySQL
      • Knowledge of Matlab or Octave programming language
  • Santa Clara, CAMTS Software Engineering (Job Number: 17002764) at GLOBALFOUNDRIES
    • Required Skills:
      • Bachelor’s degree in Mechanical Engineering, Electrical Engineering, or Computer Science
      • Seven (7) years of experience as a Software Engineer, Software Developer, or Programmer/Analyst
      • Alternately, will also accept a Master’s degree in Mechanical Engineering, Electrical Engineering, or Computer Science plus five (5) years of related experience
      • Demonstrated programming skills in Perl, tcl, PHP or other similar computer language
      • Demonstrated experience with Angular JavaScript or similar web application framework
      • Demonstrated experience in Oracle SQL and IBM DB2 relational database management
      • Demonstrated programming skills in the Smalltalk or similar object-oriented programming languages
  • Centurion Gauteng, South AfricaSmalltalk Developer through EOH Microsoft Resources
    • Required Skills:
      • Relevant Degree
      • 5-8 years’ experience as a software developer.
      • At least 5 years experience with Object Orientated development languages
      • At least 2 years experience with SQL
      • Experience in build, release and test automation.
      • Knowledge of enterprise, SOA and development patterns and practices.
      • In-depth knowledge of unit and integration testing.
    • Wanted Skills:
      • IBM MQ
      • Gemstone Smalltalk
    • Additional listings: A1L Realizations
  • Bend, OregonEquipment Integration (EI) Software Engineer (m/f) at SYSTEMA
    • Required Skills:
      • A degree in Computer Science / Information Technology / Software Engineering / Electrical Engineering.
      • Professional experience in high-tech manufacturing
      • Familiarity with SECS/GEM, MES, SOA, MOM, AMHS, APC, and SPC in semiconductor, electronics or photovoltaic manufacturing
      • Possess high interest in Computer Integrated Manufacturing (CIM) or Equipment Integration
      • Have a passion for system design and programming in manufacturing environments
      • Knowledge in C/C++, Java, Smalltalk and Delphi
      • Willing to occasionally travel domestic and international
      • Worked with relational database design, SQL development, version control
      • Automated software production and test systems
      • JEE
      • Eclipse
      • Microsoft.NET
  • Bend, OregonManufacturing Execution Systems (MES) Software Engineer (m/f) at SYSTEMA
    • Required Skills:
      • A degree in Computer Science / Information Technology / Software Engineering / Electrical Engineering
      • Professional experience in high-tech manufacturing
      • Familiarity with SAP ERP, SECS/GEM, SOA, MOM, AMHS, APC, and SPC in semiconductor, electronics, photovoltaic or discrete manufacturing
      • You have an understanding of quality metrics used in a manufacturing flow
      • Experience developing custom screens or modules for common MES systems such SiView, WorkStream, Stationworks, SAP ME, FAB300, Promis MES or EYELIT MES systems
      • Knowledge in C/C++, Java, Smalltalk and Delphi
      • Willing to occasionally travel domestic and international
      • Worked with relational database design, SQL development, version control
      • Automated software production and test systems
      • JEE
      • Eclipse
      • Microsoft.NET
Good luck with your job hunting,
James T. Savidge

View James T. Savidge's profile on LinkedIn

This blog’s RSS Feed


Filed under: Employment